Skip to Content

Running a scheduled report in Back Date

Hi All,

I have scheduled a report in CMC, which runs every day for systemdate -1 Day (Yesterday).
Now what is happening that ETL load is getting delayed many times, so we need to run all reports manually for 5-6 day, resulting into lot of rework.

What I was looking for is some setup where we can use single instance to pass a value (e.g. 25May - 30May) and it will generate all Daily reports for this 6Days using single instance.
M not sure where to start with.Scheduler is not helping to rerun multiple reports.

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

1 Answer

  • Best Answer
    Jun 13, 2018 at 04:06 PM

    The simple way to do this would be to make a copy of the report that contains a start date and end date parameter instead of the systemdate -1 condition.

    Something that could be done long-term to make sure the report doesn't run unless the ETL load is complete would be to create a file event. In BOBJ, a file event registers the presence of a specific file after it has been absent for at least one cycle of the event server - it doesn't look at the contents of the file or its timestamp. Your ETL job would require a slight change to delete a file when it starts and then create the blank file when it finishes. The report schedule would be updated to to run at a specific time but also to depend on the file event. That way the schedule won't start until after the file event occurs, even if it reaches its scheduled time.


    Add comment
    10|10000 characters needed characters exceeded

    • Long term the scheduling based on multiple events - one for each required ETL load - is still a possibility.

      You'll still have to update the report, but here's a possibility for it:

      1. Add a parameter for "Date Type". Possible options are "Yesterday" and "Selected Dates". You can do this in the universe or in the report itself, depending on which is best for you. If this same logic will be needed for multiple reports, it might be better to put it in the universe.

      2. Add optional parameters for the start and end dates.

      3. The date logic in the report, or in a universe filter, will look something like this:

      (([Date Type] = "Yesterday" AND [Date Dimension] = systemdate -1) OR
      ([Date Type] = "Selected Dates" AND [Date Dimension] >= [Start Date] AND [Date Dimension] <= [End Date]))

      Your "standard" schedule will have the date type set to "Yesterday".

      You could then write a program using the RESTful Web Services SDK to schedule the report for specific dates. The beauty of the RESTful Web Services is that they are not language-specific. You can use any programming language you want or, alternatively, you could use a third-party tool like SoapUI to log in and schedule the report. All of the calls for this SDK are HTTP GET, POST, etc. and the information about the schedule is configured in either XML or JSON, so it's pretty easy to work with.