Problem solve Get help with specific problems with your technologies, process and projects.

Using Web-CICS direct connect programming language is COBOL

I'm writing my first application utilizing Web-CICS direct connect programming language in COBOL, but how do I pass data from one task to another?

I'm writing my first application utilizing Web-CICS direct connect programming language in COBOL. My program now sends a first screen when entering and http address in browser: http://

My question is, how do I pass data from one task to another? I can't use EXEC CICS RETURN TRANSID COMMAREA(DFHCOMMAREA) the regular way to pass data between program executions since there is no transaction ID involved. Also, I can't check EIBCALEN to check commarea length (if any info was passed from previous task). Hence, I'm unable to validate any action done on my screen (button pressed, text entered).

I browsed through tons of IBM posted information and still did not find an answer to my problem. If you would be able to help me move forward from the freezing point, I'd really appreciate it. Thank you.

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.

Dig Deeper on IBM system z and mainframe systems

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.