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.
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
Related Q&A from Robert Crawford
For better mainframe capacity planning, how do I convert CPU hours to MIPS? And is there a way to calculate the relationship between MIPS and MSUs? Continue Reading
I have two years of experience in mainframe technology, currently working as a mainframe developer. I want to change to Java technology. Continue Reading
I want to replicate DB2 from the mainframe to an AIX box since it's cheaper and the copy can be used for testing. Is this possible? Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.