GT04 - CICS Transaction Server for Programmers
Duration5 Days (customisation)

Course Description

This course covers CICS command level application programming statements and is aimed at:

  • programmers who will be coding or maintaining CICS applications.
  • Programmers who wish an introduction to on-line processing concepts and commands.
  • Anyone who needs CICS Command Level coding expertise.
  • Project Managers, System Designers, System Programmers who work in CICS.

In summary:

  • A review of the concepts and commands is given.
  • A complete multi-program sample application is included for completion by the delegates. (The application is available in Assembler, COBOL and PLI formats.)
  • The future of CICS is discussed.
  • Time is left for general discussion.


The delegate should be familiar with the z/OS host environment, together with a working knowledge of either COBOL or PL/I program development using TSO / ISPF. Prior attendance of the CICS Introduction course would be useful but not essential.


On completion of this course the student will be able to:

  • Code programs with embedded CICS Commands.
  • Understand the concepts of on-line processing through CICS.
  • Understand the fundamentals of Pseudo-conversational Programming, COMMAREA, and Modified Data Tags (MDT's).
  • Code and have a working knowledge of Basic Mapping Support (BMS).
  • Understand and code CICS Commands to access VSAM files in CICS.
  • Use CICS facilities such as TS, TD, Multitasking, Re-entrancy, etc.
  • Code efficient CICS programs.


For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.

Course Details

We discuss on-line processing, what CICS is.
Basic terminology is explained including Pseudo-conversational programming (what it is, how we code it).
Transaction and program concepts are introduced.
CICS command format syntax is covered in detail.
(It is assumed that delegates will have prior awareness of CICS see pre-requisites.)
The workshop VSAM file is created.
IBM Supplied Transactions
An overview of the CICS Supplied application Transactions is given.
CEBR is explained in the context of both Temporary Storage and Transient Data
CEMT is explained, with its dangers.
CEDF is used in a hands-on environment.
CEDX is explained, and used subsequently in the module on Interval Control.
CECI concepts and capabilities are demonstrated.
CEDA is explained to aid the creation and modification of resources during the course.
(All the above is performed as hands-on exercises.)
Exception Handling
HANDLE CONDITION command, options and techniques.
The RESP option is presented showing structured programming in CICS.
Future exception processing trends options and techniques are presented.
HANDLE AID command.
Execute Interface Block is explained together with DFHAID.
Terminal Communication
Telecommunications concepts and VTAM are introduced. 3270 processing fundamentals are explained.
Data transmission via maps is presented, and Basic Mapping Support (BMS) to build maps is introduced (map generators are discussed).
Generating a BMS Map
Physical Map and DSECT concepts are explained.
Defining a Mapset, the DFHMSD macro, with its options and defaults.
Defining a Map, the DFHMDI macro, with its options and defaults.
Defining a Field, the DFHMDF macro, with its options and defaults.
The map preparation is discussed
Two exercises are performed both to aid understanding of how to deal with generation errors and to produce the menu for subsequent exercises.
Program Structure and Control
Program designed considerations are discussed outlining the balance between performance and ease of maintenance.
The difference between conversational and Pseudo conversational are discussed and the impact on maintaining the state of the program.
The role of the Execution Interface Block is discussed
LINK, LOAD RETURN and XCTL Commands are discussed.
Sample programs in Assembler, COBOL and PLI are available for review.
The steps of program preparation are discussed and an exercise performed.
The initial menu program will be compiled.
Map Commands
The SEND MAP command to output the BMS map with its functions is explained.
The MAPONLY/DATAONLY concepts to reduce transmission costs are offered.
The RECEIVE MAP command to input data Pseudo-conversationally.
DSECT copybook fields are explained in detail. The length, attribute and erased flags along with the input and output data fields are discussed. Extended attributes (color, highlighting etc.) are presented.
The use of Modified Data Tags (MDT) is discussed.
Two exercises are performed to demonstrate use of SEND and RECEIVE by completing the menu program.
File Control
VSAM file concepts are introduced. CICS/VSAM interaction is explained.
KSDS/ESDS/RRDS file commands (READ, WRITE etc.) along with their options are explained.
Record Level locking and simultaneous updating problems are explained.
Generic DELETE pitfalls are shown.
Several exercises are performed to demonstrate file process by completing a single enquiry program and a file update program.
File Browsing
BROWSE functions (forward and backward) are presented.
The issues relating to browsing via Alternate Index are discussed with working examples
A browsing program is completed.
Temporary Storage
An overview of Temporary Storage, which will emphasize the scratch pad concept, is presented along with examples.
The commands and problems with suggested solutions are presented.
CEBR is explained.
Future changes in Temporary Storage are explained.
An exercise is undertaken to demonstrate the use of TS rather than COMMAREA to maintain program state information.
Transient Data
INTRAPARTITION and EXTRAPARTITION queues are explained and differences set out.
The TRIGGER LEVER and REUSE=YES are discussed together with how many companies currently use them.
How TD queues are created through Destination Control Table entries (DCT) is covered.
The WRITEQ TD, READQ TD and DELETQ TD commands are explained with examples.
Interval Control
INTERVAL and TIME options to commands are explained.
The need for asynchronous processing (multi-threading) is discussed.
The sample file delete program is completed to produce an audit trail via a TDQ.
A Background transaction program is completed to process the TDQ.
Channels and Containers theory
Channels and Contains are described
The methods of creation of Channels and Containers.
The issues they address and why they might be used.
Discusses the choice either COMMAREA or CONTAINER.
The commands that exploit them are discussed.
The scope of availability in a sequence of programs is also discussed.
Channels and Containers the commands
Simple GET and PUT commands are described
Moving Containers between Channels is described.
Deleting Containers is described.
The issue of processing a unknown container is addressed via the STARTBROWSE, GETNEXT and ENDBROWSE commands.
How to obtain the Channel name is discussed.
Replacement programs are completed using Channels and Containers rather than COMMAREA.
Supplementary Exercises
This module includes a number of additional exercises such as:
How to use COBOL CALL rather than EXEC CICS LINK.
Starting a background task.
How to the CLEAR key
How to browse a KSDS via its PATH
How to browse a KSDS directly via its AIX.
How to handle CLEAR at the initial menu
Exploiting the WEB 3270 Bridge.
WEB API Commands and their use
Design considerations, such as Symbolic Lists, DOCTEMPLATES, and WEB-aware versus 3270:
The following WEB commands are discussed; EXTRACT, PARSE URL, STARTBROWSE, and READNEXT (in respect of HTTP headers), DOCUMENT CREATE, DOCUMENT INSERT, SEND, RECEIVE, WRITE .
There are three related exercises which also include the use of z/OS UNIX System Services .

Course Format

Interactive involving each student. Hands-on and workshop oriented.