Documente Academic
Documente Profesional
Documente Cultură
CICS-Prg 1
Terminal Handling (More)
CURSOR Positioning (in SEND MAP)
Symbolic Cursor Positioning (Preferred!)
CURSOR – with no position parameter!
Specify the FIELD where the CURSOR goes
Place –1 in the LENGTH Attribute of the field
where the cursor is to be placed
‘FIELD NAME’ with ‘L’ appended is LENGTH
If more than one – FIRST position is used.
BINARY HALFWORD - PIC S9(04) COMP.
CICS-Prg 2
Terminal Handling (More yet)
Determining the position of CURSOR
when the user types an AID key.
EIBCPOSN – in EIB Block (binary halfword)
READ only-Available before RECEIVE MAP
Can be used to determine user selection
instead of requiring user to enter character
CICS-Prg 3
Attribute Modification
Symbolic Map includes Attribute byte
‘Field Name’ with ‘A’ appended
Cryptic ‘bit’ codes and names used
Copy library supplied by IBM (Horrible)
Most shops have their own copy book
We do have ‘extended attributes’!
CICS-Prg 4
Editing Input Data
All data entered should be validated
Required data must be present
Numeric data needs to be ‘normalized’
Alpha data should not be spaces
Meaningful error messages displayed
Very tedious coding required!
Do checking from ‘bottom to top’!
CICS-Prg 5
Misc CICS Commands
EXEC CICS
SEND TEXT FROM(data-area)
[ LENGTH(data-value) ]
[ ERASE ]
[ FREEKB]
END-EXEC
NOTE: No FREEKB user must hit RESET!
CICS-Prg 6
Misc CICS Commands
EXEC CICS
HANDLE AID
option(procedure name)
…
END-EXEC
CICS-Prg 7
Misc CICS Commands
HANDLE AID Options:
PA1-PA3 Program Attention Keys
PF1-PF24 Program Function Keys
ENTER The ENTER Key
CLEAR The CLEAR Key
ANYKEY Any key not Specified
(Except the ENTER key)
CICS-Prg 8
Handle AID Example (Old)
EXEC CICS
HANDLE AID PF3(900-MENU)
CLEAR(850-CLEAR)
ENTER(700-ENTER)
ANYKEY(750-ERROR)
END-EXEC
NOTE: HANDLE AID sets up RECEIVE MAP!
Not executed when encountered! In OLD Progs.
CICS-Prg 9
Error Processing
There are over 70 CICS error Conditions
Mercifully only a few are handled
TWO Methods of handling exceptions:
HANDLE CONDITION (Old Method)
Similar in function to HANDLE AID
RESPONSE Code checking
Allows cleaner program structure
CICS-Prg 10
Strange Exception - MAPFAIL
MAPFAIL Condition
Raised by RECEIVE MAP with no data
User entered no data but pressed AID key
User pressed CLEAR key or PA key
Simplest to PREVENT it from occurring
Check EIBAID to see what key was pressed
Don’t issue RECEIVE MAP if PA or CLEAR hit
Include ‘DUMMY’ field with MDT set ON
CICS-Prg 11
HANDLE CONDITION (Old!)
EXEC CICS
HANDLE CONDITION
condition(procedure-name)
condition(procedure-name)
… up to 16 per statement
END-EXEC
CICS-Prg 12
HANDLE CONDITION
Common CONDITIONS
DUPREC Record already exists
MAPFAIL No data sent by user
NOSPACE No space left in file
NOTOPEN Data set not OPEN
NOTFND Record not in file
PGMIDERR Program not in PPT
ERROR ALL conditions not coded
CICS-Prg 13
HANDLE CONDITION Example
EXEC CICS
HANDLE CONDITION
MAPFAIL(500-NO-DATA)
DUPREC(600-DUPLICATE)
NOTOPEN
END-EXEC
NOTE: Condition by itself will nullify it!
CICS-Prg 14
HANDLE CONDITION (Notes)
Not an executable command
Establishes paragraph to correct error
Can issue multiple times
Last one executed is in effect
Causes ‘GO TO’ to paragraph named
Done BEFORE CICS Command executed
OLD method of coding – AVOID!
CICS-Prg 15
RESPONSE CHECKING (NEW!)
ADD ‘RESP’ option to CICS Command
Define binary fullword PIC S9(8) COMP
Name that field in each RESP option
COPY of EIBRESP from EIB
EIBRESP2 (RESP2) also available
Not many CICS Commands use it
Seldom needed as RESP is usually enough
CICS-Prg 16
USE General ERROR Handling
Most good shops have a standard error
handling method
If not, use sample linkage on Page 255
Sample program is on Page 257
Called whenever a condition is not
handled in the program
Displays error to user and terminates
CICS-Prg 17
LINKAGE SECTION
Used to access data left by previous
execution of a program
Data should be moved to your W/S!
Each execution starts with initial W/S
Define COMMAREA in Working-Storage
DEFINE DFHCOMMAREA in Linkage
RETURN references Working-Storage
CICS-Prg 18
Executive Interface Block
EIB definition added by CICS Compiler
In Linkage Section after DFHCOMMAREA
Contains several useful fields
EIBCALEN, EIBAID, EIBCPOSN, EIBDATE,
EIBTIME, EIBTRNID, EIBTRMID, EIBRSRCE
Most kept current by CICS (Page 258)
You can update a few of them-EIBTRNID
CICS-Prg 19
EIB Useful Fields
EIBCALEN Length of COMMAREA
EIBAID Current AID Key pressed
EIBCPOSN Position of CURSOR
EIBDATE Task DATE (00YYDDD)
EIBTIME Task Time (0HHMMSS)
EIBTRNID Transaction of Task
EIBTRMID Terminal ID of Task
EIBRSRCE Recently used Resource Name
EIBDS Recently accessed Data Set
CICS-Prg 20
DEBUGGING EIB FIELDS
EIBFN Last CICS Command
EIBRESP Completion Status
EIBRESP2 More Completion Status
EIBRCODE Response Code (OLD)
EIBRSRCE Recent Resource Name
MAP Map Name
PRG CTL Program Name
FILE CTL Data Set Name
CICS-Prg 21
Access to Heavy Stuff
CWA Common Work Area
Installation defined (Sometimes handy)
CSA Common System Area
TWA Transaction Work Area
TCTUA Terminal Control Table
User Area
Must establish Addressability if needed
CICS-Prg 22
Infrequently Needed Stuff
EXEC CICS
ADDRESS CWA(pointer)
[ CSA(pointer) ]
[ TWA(pointer) ]
[ TCTUA(pointer) ]
END-EXEC
CICS-Prg 23
Infrequently Needed Stuff
EXEC CICS
ADDRESS CWA(ADDRESS OF CWA)
END-EXEC
CICS-Prg 24