Posts Tagged ‘Evan Delodder’

Jun
8

Xcelsius SDK Tips

During everyday development with the Xcelsius SDK there are quite a few things that can be taken for granted once you get comfortable with the technology and process. These “for-granteds” can often be points overlooked by developers getting started with the SDK and can cause considerable pain if they’re not properly evaluated and accounted for up front.

Here are 3 points to be aware of that I’ve been meaning to cover. I was reminded of all of them again this week while fielding various related questions from people getting started with the SDK. Hopefully they can help you out.

1. Flash Shared Local Objects just got more slippery

With the most recent release of Flash Player 10.3, users can now delete Shared Local Objects with ease. Individuals could always clear out SLO’s but the most recent player release made it quick and easy to accomplish. In short, if you’re developing custom components for Xcelsius that rely on the use of SLO’s, you may want to brace for more support calls and also document and alert your users on how SLO’s are leveraged. You can bet people will be inadvertently deleting them.

2. XLP’s and XLX’s should be archived

XLP’s, or Xcelsius Add-On Packager Files, generate unique XLX installer files so that end users can install your custom components in their Xcelsius environments. XLP’s stamp XLX’s with unique ID’s that are used by the Xcelsius Add-On Manager to determine if a component that is attempting to be installed already exists in that Xcelsius environment. Long story short, if you lose your original XLP file that you used to generate and distribute your original XLX file(s) and you have to create a new XLP file and generate new XLX files for subsequent distribution to end users, you’re likely going to encounter installation issues that require any preexisting component by the same fully qualified name to be uninstalled before the new one can be installed. This obviously isn’t the end of the world but it can create confusion and should be avoided if possible.

3. Common Component Classes – First in Wins

If you have multiple add-ons that you maintain and some or all of those components leverage a set of base classes and those components and the base class functionality that they rely on can potentially or do evolve (get released) at different paces, be keenly aware that the Flash Player operates using first-class-loaded-wins. This means that any components that rely on a common class will be using the first version of that class that was loaded by the Player. If there are any inconsistencies between the first class loaded and the class functionality that a given component is actually expecting, this can create some obvious and not so obvious behaviors and/or bugs at runtime. Be sure to nail down a strategy that allows all of your components to coexist and evolve peacefully.

Evan DeLodder is CTO at Centigon Solutions, an SAP Partner focused on the development of cutting edge mapping technologies in the Business Intelligence space. To learn more about him, please visit our Gurus page.

Mar
29

Extending the Xcelsius SDK

The Xcelsius SDK as it stands today is a set of core functionality that provides developers with the ability to inject virtually any type of Flex application or component into the Xcelsius designer. The SDK offers a great deal of flexibility and essentially gives developers a blank canvas to start from.

With all of this flexibility available, which is what most developers ultimately want, the SDK can often times be a stumbling block for people trying to get started on custom component development. It never was for me personally, I took a look at some of the examples that came bundled with the SDK and was quickly off and running. However, I think that I picked it up faster because I had a lot of experience in Flex and Xcelsius, so there wasn’t a fundamental gap in my mind as to how all of the pieces fit together.

I think that the gap that causes a lot of developers who are new to the SDK to spend a lot of time up front, is trying to figure out how the entire platform fits together and how their component fits into that picture.  This makes sense, because most developers want to know what’s going on in the grand scheme of things so they can make the right development decisions at the component level.

With the way the current SDK is set up, there’s no really, really clear path for even fairly talented Flex developers (that are unfamiliar with Xcelsius) to jump in and get started without first getting mired down in the technical minutia. Like I said, the SDK offers a great deal of flexibility. It’s the brick, mortar, wood and nails you need to build a house. My thought is; is there a way to repackage the SDK to where all of this flexibility still exists, but at an easier to use level? Instead of wood and nails, could we give people highly configurable frames and still achieve the same ultimate objective?

I think this is definitely possible and have started to spec out a framework that would enable a Flex developer to come into the SDK, drag and drop a few components onto a property sheet, and with absolute minimum customization, facilitate even the most complex of Xcelsius integrations. The goal is to bypass the finer details of boiler plate property sheet operations and integrations and instead focus attention on what matters most – the guts of the actual component and making a great UI for the property sheet.

My parting questions to developers invested in the SDK are:

  1. Do you like how it’s currently structured?
  2. What if anything did you find challenging?
  3. What would make it easier to work with?
  4. What are the top 3 features you’d like to see included?

I’m gathering this feedback for a labs project that I’m working on for the upcoming ASUG event and will be able to share the result with other SDK developers. All input is welcome.

Evan DeLodder is CTO at Centigon Solutions, an SAP Partner focused on the development of cutting edge mapping technologies in the Business Intelligence space. To learn more about him, please visit our Gurus page.

Feb
1

Basic Custom Data Grid Component for Xcelsius

Basic Data Grid

Recently, a person new to the SDK asked how to create a custom read-only data grid component for Xcelsius.  Luckily, this is fairly easy to achieve with one read-only property integration with the SDK. This basic example could be extended to include style and selector functionality and can hopefully serve as a base for anyone interested in developing a custom grid. This isn’t performance optimized and is meant to be very simplistic, so if you do decide to run with it, you’ll need to do some basic housekeeping to get your component up to snuff.

Why would someone want this?

Most likely due to performance enhancement opportunities, word-wrapping and dynamic formatting and/or dynamic selection capabilities, which are all common features desired by many who use the list view and grid-type components. If you’d like to see some of these features implemented in a subsequent blog post, leave a comment on which one(s) you’d like.

You can download the source files for the data grid here.

Evan DeLodder is CTO at Centigon Solutions, an SAP Partner focused on the development of cutting edge mapping technologies in the Business Intelligence space. To learn more about him, please visit our Gurus page.

Dec
9

HTML5 + Xcelsius: Local Data Storage

Xcelsius does not have a built-in feature that allows the storage of local data, a commonly requested piece of functionality. Up until very recently there has been no really easy way to accomplish it with simple client tools, and one way or another it required jumping through several hoops. Fortunately, HTML 5 brings us a feature called localStorage, which allows HTML pages to store data locally across browser sessions and after the closing of the browser window. This is one of many capabilities that HTML5 brings to the table, transforming the browser into a tool with much more potential for serving up fast, more powerful and lightweight applications.

(more…)

Sep
27

Breaking Boundaries with Custom Components Pt 2

Last week we showed you how to share data between swf files in an SCDD dashboard. One limitation was that the shared data was not coming back up through the SCDD Excel model in a manner that native SCDD components could consume. This week, that problem has been eliminated as the example below illustrates. By using a very simple “input” and “output” component, we can share large volumes of data, not only between custom components, but with the entire SCDD model.

(more…)

Sep
16

Break Boundaries with Custom Components

A commonly requested feature in SCDD custom components (formerly Xcelsius 2008) is the ability to share data between custom components, across separate SWF files. Usually, developers turn to Flash Vars or other methods of workaround, which present limitations and additional work. Fortunately, there is another more streamlined approach if you wish to share data between 2 SCDD swf’s. This method comes with a couple of caveats, the first being that the swf’s need to be loaded via the SCDD SWF Loader component, and second, that the 2 SWF’s share the same Application Domain (the “This” option on the SCDD SWF Loader). If you can live with these 2 requirements, this can be a powerful approach for passing large volumes of data from component-to-component while completely bypassing the Excel model, if desired.

How it’s done

To accomplish component-to-component communication across swf’s is fairly straight forward. All you need is a ModelLocator-type singleton that both component’s share data through. The components don’t even need to be the same, they just need to refer to the same ModelLocator class and corresponding ModelLocator variables in order to share data. You can see how this is done by downloading the sample source code.

Next week, we’ll explore the possibilities of sharing data globally between swf’s using this approach. Globally, meaning that any SCDD component can access the data exposed by our custom component that leverages the ModelLocator.

Evan DeLodder is a Senior Software Engineer focused on the development and application of cutting edge Rich Internet Application technologies in the Business Intelligence space. To learn more about him, please visit our Gurus page.

Aug
18

NEWS: First FleXcelsius Bootcamp!!

Interested in learning how to use the Xcelsius SDK?  Then don’t miss this one time opportunity to learn from the best of best, none other than the FleXcelsius Gurus, as Centigon Solutions hosts the first ever FleXcelsius Bootcamp!

In this is a one of a kind boot camp, you will learn how to transform Flex components into configurable Xcelsius add-ons as well as learn how to maximize the Xcelsius SDK with your existing Flex development skills and create brand new components. Our bootcamp instructors will arm you with enough hands on experience and sample code to tackle custom component and connections for your organization’s Xcelsius dashboard initiatives.

At this Bootcamp you will receive:

  • 2 days of intensive hands on Flexcelsius training
  • Training material + labs source code
  • 2 functional components with source code included
  • Lunch is provided on both days
  • Perfect San Diego weather!
  • And more….

Unfortunately we only have a few seats left so Register Now!

Evan DeLodder is a Senior Software Engineer focused on the development and application of cutting edge Rich Internet Application technologies in the Business Intelligence space. To learn more about him, please visit our new FleXcelsius page.

Jul
8

Custom Component Style Preservation

During my time as a custom UI component developer for Xcelsius, I have encountered user interface styling and skinning loss at Xcelsius runtime and recently spoke to several developers who have experienced this issue as well. Fortunately, the workaround to preserve styles is fairly easy to apply.

The problem:

You may develop a button, canvas, list box, tree viewer or other UI component in Flex, apply inline styling directives, package it up for use in Xcelsius and view it in the Xcelsius designer without issue.  However, when you enter runtime mode in Xcelsius, your component may lose some or all of its inline styles, rendering it partially unusable or invisible. This is due to the parent Flex Xcelsius application inadvertently stripping away styles at runtime.

The solution:

For a generic solution to skinning and styling reapplication, you’ll need to reference in your project library path, the haloclassic.swc swc in the Flex SDK directory (a path similar to this C:\Program Files (x86)\Adobe\Flex Builder 3\sdks\2.0.1\frameworks\themes\haloclassic.swc). Once you have referenced the swc, create a CSS file for your component(s) that specifies all of the default skins and styles to their halo default or desired style as shown in the sample code below (full code here). This set of steps will need to be implemented as needed on a per-component basis if your components are experiencing style loss. Once you have defined your CSS file, the next step is to reference it in your component file as you would any other CSS asset.

.myButton {
backgroundAlpha: 1.0;
backgroundSize: “auto”;
bevel: true;
borderAlpha: 1.0;
borderCapColor: #919999;
borderColor: #B7BABC;
borderSides: “left top right bottom”;
borderSkin: ClassReference(“mx.skins.halo.HaloBorder”);
borderStyle: “inset”;
borderThickness: 1;

…..

<mx:Style source=”myButtonStyle.css” />
<mx:Button label=”My Button” styleName=”myButton”/>

There is an alternate to this approach, which would be to reapply styles with ActionScript code. However, this approach is more compact and has little to no impact on your actual component files. As a best practice for visual Xcelsius components, define your styles in CSS as opposed to inline to prevent the build up of redundant style specifications.

Evan DeLodder is a Senior Software Engineer focused on the development and application of cutting edge Rich Internet Application technologies in the Business Intelligence space. To learn more about him, please visit our new FleXcelsius page.

May
19

The Future of Flash in the BI Space

With the recent back and forth battle between HTML5 and Flash and their place in the future gaining even more extensive tech-media coverage, we’ve been keeping a close ear to the arguments and have attentively followed both sides of the story since our core products and supporting technology rely heavily on Flash and Flex.

As the marketing and PR battle rages on between Apple and Adobe, blanket statements are being tossed around regarding the viability of both HTML5 and Flash technologies as if they’re competitors. So far, this debate has only served as a disservice the community in general as the misinformation train continues to board people in high places who don’t completely understand the technologies and begin to make decisions for their organizations that are driven by the general influence of external, biased companies promoting their own product interests, as opposed to properly assessing project technology needs based on other factors that have more, real world substance.

Many people have voiced their opinions on this topic and it’s certainly not breaking news though we thought it beneficial to speak directly on the future viability of Flash and Flex for enterprise Rich Internet Applications, specifically in the Business Intelligence space.

(more…)

May
11

Mico’s 2010 Update – 3 New Xcelsius Gurus Must Have Books!

Hi All,

I know it’s been some time since I’ve last posted and there is soooo much going on in the Xcelsius community. To start, we now have over 1,000 members in our LinkedIn group, over 600+ followers in Twitter and we just created a new LinkedIn group dedicated to the Xcelsius SDK, FleXcelsius…and the excitement continues! I was also recently nominated to be an SAP Mentor, the first to solidly represent Xcelsius in the SAP world, a huge honor.  Most exciting is the opportunity to bring the Xcelsius Gurus network to the SAP Business Object Community (aka BOC).  I will provide a separate blog post on how this will have a positive impact on the Xcelsius Gurus network and how I see things coming together. I invite everyone to benefit and be a part of it.  Last but not least, I have spent most of the year getting the commercial side of EverythingXcelsius up and running and we are scheduled to go live before the summer.  So this is quite exciting, as we have worked with so many clients, but now will have a separate presence to display what we’ve done. :)

Now that I got that mouthful out of the way, I have been adding to my book collection and had to share three exciting new books that you must purchase. These books were written by our fellow community members, and are MUST HAVES for Xcelsius and BI Developers. You can purchase all 3 on SAP Press under the BusinesObjects category, or if you’re like me and use Amazon, feel free to purchase directly from our new reading list!
(more…)