I have an application which reads data from our MySQL database into a CDT and th

I have an application which reads data from our MySQL database into a CDT and then converts this data into an Excel spreadsheet using the 'ExportCDTtoExcel' Smart Service. Once the data is in the spreadsheet, a form is displayed with a link to the spreadsheet data. This is working without problem.

Unfortunately, between extracting the data from MySQL and converting it to Excel, I need to call a Web Service for each row of the extracted data, which goes off to the company's main DB2 database for additional data.

I have been asked to create a 'holding form' saying 'Please wait while the data is fetched' which should appear as soon as the application starts and which disappears, to be replaced by the form containing the link to the data once it is available.

We have been trying to do this by having a Boolean variable 'isTheDataReady'. This is initially set to False. It gets set to True at the appropriate time. The holding form contains an exception...

OriginalPostID-120907

OriginalPostID-120907

  Discussion posts and replies are publicly visible

  • ... which terminates the form when the variable is set to True. The problem we have is that the holding form does not chain into the form with the link.

    Any suggestions as to how we can achieve this?
  • There is a default timeout of 8 seconds for clicking on an activity-chained form and the next task displaying. If that holding form has to wait longer than 8 seconds, then the chaining will timeout and the next task will just be added to the user's task list.

    This property can be extended with the custom.properties configuration of
    conf.suite.REQUEST_TIMEOUT_IN_SEC

    Consider though that increasing this beyond the default of 8 seconds might lead to extremely poor end user experience and will give the user an impression that the site is slow/hanging.
  • I've had this issue as well, and since you cannot chain an exception path I have had to add a "Check Status/Continue" button that chains to an XOR, continues on if the value has been met or chains back to the holding form if processing is not yet completed. You can also keep a status variable updated with the amount of completed MNI instances (tp!instanceindex output from the MNI) vs the amount of total rows (length(pv!Row1)) to display as "xx of xxx completed, click 'Check Status/Continue' periodically.."