Get Xcelsius EIC connection to work properly in IE9

The EIC (External Interface Connection), is a key feature of Xcelsius that allows the creation of sophisticated integrated dashboard. It’s a programmatic way to pass information through javascript to and from the html container that embeds the Xcelsius swf object. If you never used it, be sure to check off this capability and at least understand it, so you can have a fuller picture of the product.
Xcelsius ships with some EIC connectivity samples that are used throughout as the base for implementation in projects. These samples represent best practice, and i typically start my coding with them. Well, recently, i ran into problems with teh EIC connectivity, especially with modern browsers, and particularly with IE9. With the invaluable help of my colleague Robert Blackburn (whose outstanding blog, http://rwblackburn.com/ is a tremendous resource) , we were able to narrow down the EIC connectivity issues to the javascript function used to call the swf object in the EIC samples, get Movie(). The getMovie() function is used in the EIC sample code as a utility function to obtain a reference to the swf object that you are working with. However, this function was written some years ago, and some of the js and html standards that existed at the time it was written have changed, in particular, IE9 is breaking some new grounds with its support (or non support) for functionality that is widely used and accepted in other browsers, such as firefox or chrome. In any case, we were able to identify the root cause for the EIC failures in the getMovie function and fix it. So, if you are having any problems with EIC values not working properly in IE, simply replace the getMovie() function with the one below:
function getMovie(movieName) {
var movie = undefined;
if (navigator.appName.indexOf(“Microsoft”) != -1) {
movie = document.getElementById(movieName);
} else {
movie = document[movieName];
}
return movie;
}

This entry was posted in Xcelsius and tagged . Bookmark the permalink.

7 Responses to Get Xcelsius EIC connection to work properly in IE9

  1. Hi Guys, some time ago I tried to connect two dashboards using EIC, each dashboard besides was using one Query Direct connection pointing to Bex queries. I published both dashboards as swf in my local machine, the EIC worked fine but I had to logon in both swf files everytime I open the html file.
    My quetion here is if I could avoid the logon screen, because if I have four dashboards connected, I should to log on four times!. is it possible save swf and html file into Launchapad??
    Thanks in advance for your help!!

    • Ron Keler says:

      Hi Lucas, to bypass the logon in the dashboard you need to generate a logon token and pass it to the dashboard as a flash variable called “CELogonToken”

  2. Loreno says:

    Hello,

    In version 4.1, EIC seems to be mobile compatible.
    Does someone know how to use that ?

    Thanks !

    • Ron Keler says:

      Hi Loreno, EIC is a javascript interface between the dashboard generated SWF and the container serving it (the html page). Since Dashboards in SAP are exposed inside the SAP Mobile application on mobile, and not as “free style” html5, you will probably need to find a way to programatically work with the mobile app SDK to modify aspects of it to pass information between the dashboard and the container app.. Sounds interesting, can you please provide the reference you read that describes the EIC mobile compatibility?

  3. Jim Perkins says:

    Ron – thank you for publishing your fix. This solved my problem getting my XCelcius EIC to work in Internet Explorer. However, the same code doesn’t work in Mozilla Firefox for some reason. It seems like the reference to the flash object isn’t working in this browser but I’m not entirely sure to be honest.

  4. Esteban says:

    I was having problems with IE10, it used to work my dashboard with eic in IE8, but know that we upgraded, the dashboards simply stop working. With these code it all came back to normal. Thanks a lot guys

Comments are closed.