This course is ideal for:
- Programmers who will be coding or maintaining CICS applications
- Programmers who wish an introduction to on-line processing concepts and commands
- Project Managers, System Designers, System Programmers who work in CICS
- Anyone who needs CICS Command Level coding expertise
Delegates will benefit from having attended our CICS Concepts and Facilities introductory course. Some coding experience in C, COBOL, PL/1 or Assembler will also be helpful.
4 days. Hands on.
After completing this course, delegates 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).
- Have a working knowledge of, and know how to code, Basic Mapping Support (BMS).
- Understand, and be able to code, CICS Commands to access VSAM files in CICS.
- Be confident using CICS facilities such as TS, TD, Multitasking, Re-entrancy, etc...
- Be able to code efficient CICS programs.
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.
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.
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.
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 rile 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.
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.
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.
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.
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.
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 and TIME options to commands are explained.
The need for asynchronous processing (multi-threading) is discussed.
START, RETRIEVE, DELAY, CANCEL, ASKTIME, FORMATTIME commands are covered.
START vs. RETURN IMMEDIATE is debated.
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.
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 (5th day - optional)
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.
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.