NonblockingReports

10/02/2009 1:36 PM

None Blocking Reports

Abstract

Many of the reports that can be added to Operator Suite require large amounts of data mining to produce the required output. As a result of this they often run for extended periods of time, occasionally timing out the web server. None blocking reports should solve this problem. The basic idea is that the user hits a button that starts the report processing in the background. The user can then continue on with other tasks and periodically check back to see if the report has finished processing, at which time the user can view the report.

Data Structure

  • alter tblReports to contain a bit field named longReport.
  • create tblReportTables with prtFileName varchar(128), rpttbl varchar(64), updateDate DateTime, lastRunTime int, bit running
    • this table keeps track of the intermediate tables that each report is based on. These are pulled out of the .rpt file when it is imported.
    • the rpttbl field holds the names of the intermediate tables. For each intermediate table there must be a stored procedure of the same name that updates it.

Associated Methods

import::

  1. insert the appropriate values in tblReports (if this is not a longReportthen terminate)
  2. load the report as a crystal reports object and use the DataStore.DataQueryString and parse it for the intermediate tables it is dependent on.
    1. add these to tblReportTables

update::

  1. set the running bit to true
  2. start the stored procedure running in a none blocking fasion
  3. make the line in the TreeList disabled (grayed out)

Update Finished::

  1. the stored procedure must update the table, set the last update date and running time fields and then set the running bit to false just before the stored procedure is terminated.
  2. once the running bit is false the row in the TreeList is enabled again and the user can click view to see the report.

Interface

Report TreeList

File NameReport TitleReport DescriptionCreation DateLast Updated OnEstimated Run Time
report1.rptReport 1This report is likely to take a long time to generateJune 22nd, 2006Feb 12th, 20075 minUpdateView
report2.rptReport 2This report will run quickly and thus doesn't need to be a longReportJuly 10th, 2006------------View
Tags:
Home: WikiStart
What's new: Recently changed articles
You can subscribe to this wiki article using an RSS feed reader.