I have a report that can be initiated by users when they select a 'product family' and 'time period' (currentmonth, currentyear etc..) as input parameters. [note: timeperiod is passed as a string parameter, not mapped in xacute query, I compute SD and ED within the transaction so that caching will work].
The transaction then calls an R/3 RFC, and does quite a bit of data manipulation with that result before returning it to the user.
The R/3 side transaction is a bit of a dog, and can take as long as 15minutes to return. [Actually better than the week it used to take an intern to assemble this report 😉 ]
Fortunately the data doesn't change much on a daily basis, so I have setup query caching within the xacute query for 7 days. The caching works great, however I would rather not have several users each week draw the unlucky card and end up waiting a significant amount of time.
What I am hoping to do is create a scheduled job that runs nightly to refresh any queries that have gone out of date. What would be the most graceful method to accomplish this? My first idea was to create a BLS transaction to iterate through the list of parameter combinations passed in via the scheduler and call the report, however it doesn't appear that you can call an Xacute (where the caching is handled) from within BLS.
Any help would be appreciated.