refreshing connections

I’ve got a few connections working in xcelsius, grabbing data from aspx files which generate xml. Looks great but takes a while to load as I’ve got them all set to refresh on open.

Given that the data in the source system is only updated daily from the live database, it makes sense to just refresh the xcelsius dashboard daily. But the connection set up doesn’t seem to allow for a refresh time - just an “every x minutes”.

Questions

  1. How do I get it to refresh at the end of the data mart load each day (I can get the ETL job to set a watchfile, or rather I know a man who can!)
  2. Where is the day’s data held until the next refresh? If it’s in the actual xcelsius XLF, how does it save itself? At the moment I just have empty cells that populate on loading but don’t save.

I’m getting there, one small step at a time…
:yesnod:
Thanks

Debbie


Debbie :uk: (BOB member since 2005-03-01)

  1. You could count the number of minutes in a day for a refresh time…ugly but it works.

  2. The data is in the SWF in the form of flash variables, which were populated when you triggered the queries to assign values to them. The SWF will hold the values assigned until refreshed again. The xlf doesnt hold any dynamic values…thus you’ll never see any data in the Xcelsius cells while looking at the XLF.


Cairmor :us: (BOB member since 2008-06-05)

Thanks. That makes sense - I think.

So presumably I’d have to set the connections to refresh every 24 hours by actually physically amending them at whatever time of day I want to 24 hour cycle to start from? Or would the 24 hour cycle start from when I created the SWF file?

Thanks

Debbie


Debbie :uk: (BOB member since 2005-03-01)

The timer starts when the dashboard is initialized. So if the refresh rate were at 60 seconds…the data will refresh every 60 seconds from the point that someone actually opened the dashboard. This is only really useful if your data is changing constantly, and you users are going to have the dashboard SWF literally open all day.

The dashboard doesn’t refresh at all while no one has an instance of it open. I think you are thinking that the dashboard acts like a table, and can hold data. This is only true if you populate teh excel sheets with static data. When the dashboard is closed, you cant change that data that exists on the excel sheets, as it is embedded in the swf file (at least I dont know of a way).

Sorry, I misunderstood your initial question.

All you need to do is refresh your tables daily, like you said earlier.

Then set your web connections (data manager in Xcelsius) to refresh on Load. Once the SWF initializes, the swf will pull the current data in the tables.

Alternatively, you could place a Web Services button on the dashboard…and let your users click it. You can bind all or some of your services to the button instead. When the button is clicked, the SWF will pull whatever data is in the table.

I hope I am addressing your question…sorry if not.


Cairmor :us: (BOB member since 2008-06-05)

Don’t worry - I’m not even sure what my question is myself! :shock:

I don’t particularly want to refresh on open as there are a lot of separate queries grabbing data from disparate sources. I’ve got the DBA to build me aggregate tables and I’m trying to get the database to do as much of the processing beforehand as possible. But it is still taking time to load.

From what you are saying, I have to refresh on open to get any data to display at all. After that, if my data is sufficiently dynamic, I can set it to refresh every x seconds, depending on how frequently I need to see fresh data. Given that at present my data only changes daily, there’d be no advantage to this, so the best I can get is “refresh on open” and I’ll have to try to get even more work done at database level.

You’re right. I was thinking that somehow xcelsius “stored” the data from the last time it was opened. This is probably due to the fact that I’ve been designing with static data (cut & pasted from SQL), just so I have something there to see while I’m playing around. I’m wrong - it’s’ just a shell to hold the data from the first hit on the database(s) when the dashboard is opened.

I appreciate your time and clarity of explanation. Sorry if thsi is wordy but I thought others might benefit from my long and tortuous route to deliver something that the users aren’t all that bothered about anyway…

Thanks

Debbie


Debbie :uk: (BOB member since 2005-03-01)

Sounds like you are on the right track now.

Here is another technique that might be useful:

If your dashboard is taking a long time to load…dont rule out using the web services button rather than OnLoad.

I have a very large dashboard that uses 10 aggregated tables as a source. From those tables I needed 42 QaaWs to represent different metrics. I only preload one of them.

I divided my dashboard up into 6 different tabs with the Tab component, each with a unique web services button that runs the specific services that correspond to metrics on that tab. The user has to click the button, true, but doing things that way mean that I only have 5-6 QaaWS running at once…the response time from Click to Display is about 4 seconds.

the end users never really complained about waiting a few seconds, and most people understand that they need to click a button to see data.


Cairmor :us: (BOB member since 2008-06-05)

That sounds worth looking at. I’ve already split up my displays into separate dashboards to speed up load times. And thankfully the powers-that-be have decided we don’t have to use QAAWS as I was dreading having to step backwards and create a Bob universe and objects to supprt the SQL I’ve already written. So we’re going to be using our own web services, which means I have to bid for time from our web development team, but such is life…

Thanks for your help - much appreciated!

debbie


Debbie :uk: (BOB member since 2005-03-01)

Flynet Web service generator comes with Xcelsius Engage Server , so you could generate them yourself. All you need is a basic knowledge of SQL and the OLEdb or ODBC drivers on the machine hosting the Web service for your database.


ianlearmonth (BOB member since 2008-10-22)

Resurrecting this as I have other ideas I want to bounce around…

Given that some of our source data only changes annually, I don’t want to refresh this dashboard on opening as it’s pointless querying the database twenty times a day if the data never changes.

I can write an aspx that generates an xml file that I can connect to in xcelsius. But this still queries the database. So my question is: can I run this aspx early in the morning after the warehouse load and simply store the xml output effectively as a text file somewhere? And then can I connect to this xml file from xcelsius (rather than the original aspx)? This would mean only hitting the database once a day.

Any thoughts anybody? You wouldn’t believe how useful I find this forum in telling me what’s possible and where to go and look. I’ve learned so much.

Thanks

Debbie


Debbie :uk: (BOB member since 2005-03-01)

Debbie , when you said ‘anually’ did you mean daily? If you did mean anually then you could just enter that in the Excel Model in Xcelsius , as long as you remember at year end to refresh it :slight_smile:

The Data connection manager allows you to specify the ‘Refresh Every’ up to a maximum of 24 hours for XML and Web service connections so yes so could do it that way.

Personally we have found Web services to be more reliable. The beauty of Xcelsius is that you do have the option to mix and match. so you could have a Web service refreshing data every 5 minutes say ,via a Web service mapped to a cell in Excel , and also data that doesn’t need to be refreshed so often either static in the Excel model , or refreshed once a day via XML maps in the way you described if you wanted. All in the same dashboard.


ianlearmonth (BOB member since 2008-10-22)

No, I meant annually! Some is annual, some monthly, some daily, some will probably never be changed! (yes, I know - that’s the public sector for you…)

If I type it in manually, it will mean that it will become my job forever, plus there’s a danger it will get forgotten, or there won’t be resources available to re-publish it to a web portal, whatever. I’d far rather automate the entire process. The annual data will be stored inside a very simple one-table SQL Server database so shouldn’t take more than a microsecond to run, even if I do it daily.

And if I use the data manager to refresh every however-often, I still have to refresh on load every time the dashboard is opened. I’d just rather refresh from an already-generated xml file, instead of running an aspx to generate it on the fly.

Web services is the other option - but I have to bid for techie time for that, whereas I can write aspx myself …

debbie

Edited to add: XML Maps. Thank you - you’ve told me where to go to look for more info. There’s a whole chapter in the back of the book I got off Amazon! :lol:


Debbie :uk: (BOB member since 2005-03-01)