Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

This is the fourth part of my blog series about data connections provided by Xcelsius 2008. The previous parts are about XML Data, Flash Variable and FS Command.

Most content is from my latest book about Xcelsius co-written with Evan Delodder published by SAP Press which is also available on Amazon.  

Xcelsius is not an isolated island. Withthe help of External Interface Connection (EIC), data from the SWFfile can now be passed into or out of a specific cell range, using push/pull technology.Note that thecommunication is initialized by the container. In other word, it’s theJavaScript that invokes the External Interface exposed by your dashboard.

ExternalInterface is very similar to a FS Command but is more flexible, in that you canpass as many arguments as you want to any JavaScript function on the HTML pageand receive a return value. It can work in the opposite way as well, fromJavaScript to Flash. In a word, data communication between Xcelsius and itscontainer (HTML file) is bi-directional.

 

One powerfuluse of this connectivity is when you want to enable communication between 2 dashboards created by Xcelsius. Forexample, you have created 2 fancy dashboards one to display sales revenue foreach branch and the other to display some info of a branch such as its map andimages. You may want to take use of this connectivity to pass the selectedbranch between them.

 

To enable data communication in or out ofyour dashboard, in the Property panel you need specify a cell range in theembedded spreadsheet as the source of the data sent out or the destination ofdata passed in, and specify whether it can be read, written, or both. Afterunderstanding this mechanism, you can know what to do with the Property panelof an External Interface Connection.

In the Property panel, click the buttonwith a plus (+) sign to add a range, which will be used as the Source, theDestination or both. The properties are per range, as explained below.

§   Name

You specify a name for the range by eitherentering a text directly in the Range Name field, or clicking the Bind buttonto bind it to a single cell in the embedded spreadsheet. This name is not justused to make the range meaningful and easy to understand – it will be used inexternal JavaScript function later.

§   Range Type

You then set the Range Type by selectingone from the drop-down list. If you want to pass a single value, select Celland later bind Range to a single cell in the spreadsheet. Similarly, chooseRow/Column if you want to pass data in a one-dimensional array, and chooseTable if the data is 2-dimensional, with multiple rows and columns.

§   Range

Depending on what Range Type you haveselected, you specify Range by clicking the Bind button to bind to a cell, arow or column, or a table in the embedded spreadsheet. For inboundcommunication, external data will be inserted here. For outbound, data in thespecified cell range will be sent to external applications.

§   Access

Here you specify the access type of thecell range, by selecting one among Read, Write and Read/Write. If the data ofthe cell range will be sent to external applications, choose Read. If the cellrange is used as the destination of data passed in from external, choose Write.If both might be used, choose Read/Write.

You can add as many Ranges as you wish inone External Interface Connection, by clicking the button with a + sign. Todelete a range you defined before, simply click to select it and click thebutton with a  minus (-) sign.

Note that different from any other connectivity mentioned before, you cannot change the name of the connectivity –you have to use the default name of “Connection 1” or “Connection 2” etc.

Figure 1 below shows a screenshot of theProperty page of an External Interface Connection:

 Figure 1. Definition of an External Interface Connection.

 

Also note that there’s no Usage tab here, whereyou might want to define when to trigger the connection. The reason is thatthis connectivity is not triggered by itself, but by JavaScript functions inits container HTML file.