|
This is one of the places where the Web way of doing things conflicts with the CICS programming paradigm.
In essence, a browser-initiated Transaction is single-shot (one in and one out) whereas CICS Pseudo Conversational Transactions keep going over lots of user interactions with information being passed between the Transaction Instances via a commarea or TSQs etc.
Regrettably, the way to do this is to either use cookies or URL re-writing or more usefully, hidden fields in the Web pages. These hidden fields can contain data to be passed around between the Web-initiated transactions so giving the equivalent of a commarea.
The way I do this nowadays is to create a BTS process to anchor process-level containers. The process lasts as long as required (and certainly over a CICS transaction boundary) and so the Containers can hold as much data as you want over the lifetime of the Web interaction (don't forget to delete the process or else it will last forever but you can use a bit more complex BTS processing to schedule deletion after hours). The process name has to be unique and you pass this name in hidden HTML fields so that the application reading the flow from the browser can use this setting to re-acquire the BTS process and so get hold of the relevant saved state.
On the CICS Web site one of my papers goes into BigCommarea processing that also has some background on BTS concepts that are very relevant to this technique.
|