CICS Transaction Flow for Beginners
Learn how a CICS transaction moves from terminal input to program execution and response display.
CICS is used for online transaction processing on mainframes. While batch jobs process large volumes in scheduled runs, CICS programs respond to user actions in real time.
What is a CICS transaction?
A transaction is a short code entered by a user or invoked by an application. The transaction code maps to a program. When the transaction starts, CICS loads or links to the program and manages the runtime environment.
Example:
Transaction code: CUST
Program: CUSTINQ
Purpose: Customer inquiry
Basic transaction flow
A simple CICS screen flow:
1. User enters a transaction code.
2. CICS identifies the associated program.
3. Program sends a map/screen.
4. User enters data.
5. Program receives input.
6. Program validates and retrieves data.
7. Program sends response screen.
Common CICS commands
Developers often see:
EXEC CICS RECEIVE MAP('CUSTMAP') MAPSET('CUSTSET') END-EXEC.
EXEC CICS SEND MAP('CUSTMAP') MAPSET('CUSTSET') END-EXEC.
EXEC CICS RETURN END-EXEC.
Other common commands include READ, WRITE, REWRITE, LINK, XCTL, and START.
Pseudo-conversational design
CICS applications should avoid holding resources while waiting for user input. In pseudo-conversational design, the program sends a screen and returns control to CICS. When the user responds, CICS starts the next part of the flow.
This improves scalability because the system does not keep a program active for every user while they think or type.
Practical support view
When supporting CICS issues, check:
- transaction code
- program name
- map/mapset
- abend code
- input values
- DB2 or VSAM response codes
- recent changes to programs or maps
Conclusion
CICS is event-driven mainframe processing. Understanding transaction mapping, screen send/receive flow, and pseudo-conversational design gives beginners a strong foundation for online application support and development.