Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 30

1.

INTRODUCTION TO CICS
2. COBOL-CICS PGM
A. DESIGN THE BMS SCREEN
B. CODE THE COBOL-CICS PGM
C. HOW TO COMPILE
D. HOW TO SETUP THE CICS ENVIRONMENT
E. EXECUTE THE TRANSACTION 3-4 SESSION 90% THOERY , 10% TO DO A
PRACTICAL
3. COBOL-CICS - SUBPGM (NAVIGATION B/W SCREEN)
4. DATA PART:
1. COBOL-CICS-DB2 PGM - SCREEN - PGM - LINK -
SUBPGM - XCTL - NAVIGATION - DB2
2. COBOL-CICS-FILE PGM =-= KSDS CLUSTER - FILE - ERROR HANDLING
- PRACTICal
3. COBOL-CICS-QUEUE (TSQ - TDQ) - SCCREN - PGM -
DB2 - TSQ
5. SOME OF THE CICS COMMAND
6. ERROR HANDLING
===================================================================================
=====================
6. ERROR HANDLING
--------------------------------------------

IN CICS IF WE EXECUTE ANY COMMAND -- IT MAY GO SUCCESSFUL / GO FAIL -- CONDITION/


ERROR CONDITION..

WHENEVER CICS COMMAND FAIL --> ERROR CONDITION..

BY DEFAULT - SYSTEM WILL ABEND THE PROCESS..

READ -> RANDOM -> C1234 (C1235) -- READ COMMAND IN CICS -> NOTFND ==>
SYSTEM WILL BE ABEND THE PGM

TO HANDLE THE ERROR CONDITION IN CICS - 2 THINGS

1. TELL THE SYSTEM TO DO SOMETHING


2. TELL THE SYSTEM TO DO NOTHING

IN CICS TO HANDLE ERROR WE HAVCE 4 WAYS:

1. HANDLE CONDITION COMMAND:


==
1.THIS COMMAND IS USED TO TELL THE SYSTEM , WHERE THE CONTROL SHOULD GO
IN CASE OF ERROR..
2. THIS SHOULD BE FIRST COMMAND OF CICS-COBOL PGM..

EXEC CICS HANDLE CONDITION


NOTFND(9999-NOT-FOUND-PARA) ==> MOVE 'RECORD NOT FOUND '
TO MESSAGEO - PERFORM SENDMAP-PARA
LIST OUT -=15 ERROR CODE...

ERROR(9999-CONTACT-PARA) --> MOVE 'CONTACT ADMIN FOR


SUPPOIRT TO MESSAGEO =- SEND
END-EXEC.

2. RESP OPTION/PARAMETER:

U CAN CODE THIS RESP PARAMETER IN ANY COMMAND..


EXEC CICS READ FILE..... RESP(WS-RESP-CODE)

IF WS-RESP-CODE = DFHRESP(NORMAL) = SUCCESS


ELSE
IF WS-RESP-CODE = DFHRESP(NOTFND) -= MOVE 'RECORD NOT FOUND ' TO
MESSAGEO - PERFORM SENDMAP-PARA

IOERR

SEND , RECEIVE , RETURN , READ , BRWOSE , WRITE , REWRITE ,

1. S1304.CICS.EMPKSDS
2. EMPMSET - FILEPGM - TRNF
3. EMPKSDS

1. IN CICS:
1 - PPT --> MAP & PGM
2. PCT - TRANS
3. FCT

COBOL-CICS-FILE PGM =-= KSDS CLUSTER - FILE - ERROR HANDLING - PRACTICal

==========

MAINFRAME => 1960 --->


DB2 -> 1990 30 YEAR -> DATA TO BE STORED IN FILES

CICS /ONLINE -WE NEED TH DATA TO ACCESS QUICKLY... PS FILE

VSAM ->
DATASET -> CLUSTER - COBINATION OF 2 COMPONENTS 1. DATA
2. INDEX
IN VSAM -> 4 TYPES OF CLUSTER

1. ESDS == RANDOM == RBA =>USER /DEV


- RBA - NOT USED
2. KSDS -- KEY SEQ DATASET ---> DATA +
INDEX
3. RRDS -- RELATIVE RECORD -->
10,20,30 = NOT USED
4. LDS

KSDS --> ORGANIZATION - INDEXED


ACCESS MODE - SEQUNEITAIL , RANDOM , DYNAMIC

INDEXED FILE -- SEQUENTIAL FILE


1. SORTED ORDER (23) 1. DO NOT CARE
2. NO DUPLICATES (22) 1. U CAN HAVE ANYTHING
ACCESS MODE

00 - SUCCESS
10
21,22,23,24 -- KSDS INDEXED
35

=== CICS =-- VSAM -KSDS CLUSTER

IF I WANT TO USE A VSAM KSDS CLUSTER IN MY COBOL-CICS PGM - CHANGES:

1. ID DIVISION NO CHNAGES
2. ENVIRONMENT DIVIISON -- WE DO NOT DEFINE FILE IN ENV DIVISION.
3. DATA DIVISION.
WORKING-STORAGE
COPY FILE-LAYOUT.

4. PROCEDURE DIVISION.

COBOL-FILE -=> OPEN , PROCESS , CLOSE


COBOL-FILE-CICS
- WE DO NOT NEED TO OPEN AND CLOSE THE FILE -> SYSTEM WILL TAKE
CARE.

FILE OPERATION: 1. BROWSE -- DYNAMIC ACCESS MODE


>> RANDOM + SEQ

1. SET THE POINT TO A RECORD => EXEC CICS STARTBR


FILE(NAME) RIDFLD(VARIABLE) END-EXEC
2. READ THE RECORD POINTED ---> EXEC CICS READNEXT
FILE() INTO(LAYOUT)
EXEC CICS READPREV FILE()
INTO (LAYOUT)
3. END THE BROWSE EXEC CICS ENDBR FILE(NAMEA)
END-EXEC.

EX: 1 2 3 4 5 6 7 8 9 10

1. STARTBR --> 3 -> 3RD IS WHAT WE SEE...


>>AFTER STARTBR -- READNEXT / READPREV - SYSTEM WILL READ
THE POINTED RECORD ONLY .=== 3RD

2. STARTBR --> 3 -> F7 -NEXT/ F8-PREV

RN , RN , RN , RP , RP ,RP , RN ,RN RN(??) 5??


3 4 5 5 4 3 3 4 5 =+> RIGHT

>> RN - RP OR RP-RN -- WILL GET U SAME RECORD

2. READ -- RANDOM ACCESS MODE >> RANDOM

RANDOM --> EXEC CICS READ FILE(NAME) INTO (LAYOUT) RIDFLD(KEYVALUE)


END-EXEC.

3. WRITE

EXEC CICS WRITE FILE() FROM() RIDFLD() END-EXEC -- KSDS CLUSTER


=- RRDS/ ESDS
EXEC CICS WRITE FILE() FROM() RIDFLD() RRN END-EXEC
RRDS
EXEC CICS WRITE FILE() FROM() RIDFLD() RBA END-EXEC
ESDS

4. REWRITE & 5. DELETE --> BEFORE DO ANY CHANGE TO THE RECORD - WE NEED TO
LOCK THE RECORD

BATCH JCL -- DISP=OLD == LOCK THE FILE

IN ONLINRE - WE NEED TO LOCK THE RECORD // NOT THE FILE == HOW TO DO


A LOCK OF THE RECORD...

EXEC CICS READ FILE(NAME) INTO (LAYOUT) RIDFLD(KEYVALUE) UPDATE END-EXEC.


LOCK THE RECORD....
-->
HOW TO UNLOCK THE RECORD?

REWIRTE/DELETE -COMMAND === UNLOCK

WHAT IF I SKIP THE RWRITE /DELETE COMMAND BECAUSE OF SOME CONDITION WAS NOT
SATISFIED..

EXEC CICS UNLOCK FILE(NAME) END-EXEC

COBOL-CICS-FILE --> COMPILE == TRANSLATION PROCESS == LOAD MODULE..

CICS ENV --> PPT , LOAD


PCT - TRAN
FCT - FILE FILE CONTROL TABLE

CEDA DEF FILE(NAME) G(NAME). == PRESS ENTER..

DATASET NAME: IBMUSER.CLAIM.DATA.FILE


--
RECORD LENGHT , KEY LENGTH
--
OPEN TIME
EN/DIS
--
OPERATION:
ADD - YES
BRWOSE = YES
HEADER : INPUT DFHMDI -
SIZE=(4,80),LINE=1,COLUMN=1
DETAILS : OUTPUT DFHMDI - SIZE=(20,80),LINE=5,COLUMN=1

COBOL-CICS-DB2 Practical:-
----------------------------------------------

WE WILL DOING A LOGIN PROCESS

1. CREATE A TABLE --> LOGIN-ID & PASSWORD.


2. CREATE A LOGIN SCREEN
USERID: _____
PASSWD: _____ PRESS ENTER

3. COBOL-CICS PGM == INTERACTE WITH THE LOGIN SCREEN

1. INPUT - GIVEN ID & PASSWRD


2. PASS THE DATA FOR VALIDATION BY A SUBPGM
= LINK
3. IF CORRECT CREDENATINAL -> WE NEED TO NAVIATIO TO ANOTHER SCREEN
= XCTL

4. COBOL+CICS+DB2 VALIDATION SUBPGM


1. SELECT QURERY - GIVEN ID PASSWD - SQLCODE =0

5. AFTER LOGIN SCREEN --> AFTER LOGIN SCREEN =PGM

COMPONET LIST:

SCREEN: MSETLGN - MNUSET1 == PPT


--
SCREEN PGM: LGNPGM01 - MNU1PGM == PPT
--
PGM -TRAN => LGN1 MNU1 == PCT
==
SUBPGM -. VLDUID01 == PPT
==
DB2 PLAN -> S1304PL == RCT == DB2E ==> CEDA DEF DB2E(XXXX)
G(NAME) --> PROVIDE THE PLAN & TRANS-ID AS WELL
== DB2T =-> CEDA DEF DB2T(LGN3)
G(Z) -- PROVIDE THE ENTRY ID & TRANS-ID.

DB2-CICS ATTACHEMENT FACILITY

==============================================================
1. DATA SORUCE : DATABASE - DB2 TABLE:

HOW DO I CODE A PGM TO ACCESS THE DB2 TABLE

CODE CHANGE WITH COBOL-CICS = WHEN SQL IS REQUIRED:

ID DIVISION. NO CHANGE
PROGRAM-ID. NAME.
AUTHOR. UR NAME.
DATE-WRITTEN. TODAY.

ENVIRONMENT DIVISION. NO USE OF IT (DB2 - NO CHANGE)


INPUT-OUTPUT SECTION.
FILE-CONTROL.

DATA DIVISION.
FILE SECTION. NO USE
WORKING-STORAGE SECTION.
CICS 1. DFHAID , 2. SYMBOLIC MAP 3. DFHBMSCA 4. FILE LAYOUT

DB2 1. SQLCA == EXEC SQL INCLUDE SQLCA END-EXEC


2. DCLGEN == EXEC SQL INLCUDE DCLGNE-COPYBOOK END-EXEC.

LINKAGE SECTION.
CICS 1. DFHEIBLK
2. DFHCOMMAREA

PROCEDURE DIVISION.

CICS COMMAND EXEC CICS COMMAND END-EXEC.


SQL QUERY EXEC SQL QUERY END-EXEC.

EXEC CICS RETURN ..END-EXEC.

1000 LINE COBOL-CICS-DB2 --> 900 COBOL


50 CICS
50 - QUERY

2. COBOL-CICS-DB2 -- COMPILE:

QURERY --> :DCL-CLAIM-AMOUNT = CONSIDER THIS -=== HOST VARIBALE / AND


WHICH ARE NOT
:CLAIM-AMOUNT = CONSIDER THIS?

ONLY COBOL PGM (MAINPGM=SUBPGM) --> JOB J1 S1. IGYCRCTL


S2. HEWL/IEWL =--=> LOAD

COBOL-DB2 PGM JOB J2 S1. DSNHPC ==> DBRM


S2. IGYCRCTL
S3. HEWL ==> LOAD

JOB J3 S1 - IKJEFT01 = PACKAGE


S2 - IKJEFT01 = PLAN

COBOL-CICS PGM JOB J4 S1 - DFHECP1$


S2 - IGYCRCTL
S3 - HEWL => LOAD

COBOL-DB2-CICS PGM
JOB J5 S1. DSNHPC - DBRM
== REMOVE & REPLACE EXEC SQL WITH COBOL CODE
S2. DFHECP1$ ==
REMOVE & RPELACE EXEC CICS WITH COBOL CODE
S3 IGYCRCTL
S4. HEWL -=- LOAD

JOB J6 S1 IKJEFT01 - PACKAGE


S2 IKJEFT01 - PLAN

FOR COBOL-CICS-DB2 ==> 1. LOAD


2. PLAN

MANY -=- PACKAGE & PLAN


IGYCRCTL -> COMPILE UR CODE 1. SYNTAX CHECK - IF ITS RIGHT -> LOAD MODULES

DSNHPC --> EXTRACT THE QUERY --> DBRM** -- DID NOT CHECK UR SYNTAX

BIND PROCESS : BIND PACKAGE --> PACKAGE

WHAT IS A PACKAGE: BOUND FORM OF THE SQL QUERY == UPDATED FORMAT OF


YOUR QUERY -READY FOR EXECUTION

QUERY IN A TOOL:

SELECT COL1, COL2 FROM SCHEMA.TABLENAME.

QUERY IN A GPGM
EXEC SQL SELECT COL1 ,COL2 INTO
:DCL-VAR
:DCL-VAR
FROM TABLENAME
END-EXEC

1. SCHEMA NAME
2. HOST VAIRBALE
3. SEMI COLON END IT

BIND PACKAGE 1. SSID


2. QUALIFIER -SCHEMA
3. OWNER(APPLICATION ID)
4. ISOLIATION LEVEL
5. CORRCTNESS OF UR TABLE / COLUMN == PACKAGE CREATED
-> BOUND FORM OF SQLQUERY

BIND PLAN

PACAKGE IS NOT EXECUTABLE -- QUERY - CONNECTION TO THE DB2


SUB-SYSTEM
PLAN IS EXECUTABLE ==> PLAN CONTAINS ACCESS PATH DB2 SSID.
PLAN -CONTAINS PACKAGE

HOW THE JAVA PEOPLE EXECUTE THE QUERY THRU JAVA-PGM??

SPUFI - - CONNECT TO MY DB2 SSID


QMF - SAME
TOAD
RRC QUERY
FILE-AID FOR DB2
SQUUEIRAL -- CONNECTD TO UR DB2 = WRITE THE QUERY ANYWHERE AND U CAN
EXECUTE,.

ONE DAY - SUPFI -> -805 -- DBA -. HE SAID WE UPDATING SOME PLAN HAS BROKEN UP

LAOD -- PDS
COPYBOOK - PDS
PROC - PDS
JOB COBO - PDS

PACKAGE --> DB2 -- SYSIBM.SYSPACKAGE


PLAN --> DB2 -- SYSIBM.SYSPLAN
--> DB2 -- SYSIBM.SYSTABLES -551 - U HAVE
ACCESS

4. 1. CODE A PGM 2. COMPULE 3. BIND -> LOAD & PLAN

CICS ENV --. PPT _> LOAD


PCT -> TRASID
RCT: RESOURCE CONTROL TABLE = PLAN

3 ENTRY 1. DB2C - CONNECTION == ADMIN == CONNECT


PROD DB2 -- PROD CICS , TEST DB2 -- TEST CICS
DB2-CICS ATTACHEMENT FACILITY

2. DB2E -ENTRY --- IN HERE WE WILL MENTION THE


PLAN NAME**
3. DB2T -- TRAN-ID & ENTRY-ID

TRANS -- CICS - PGM --. QUERY --- DB2


T1 T2
TRANS-ID ENTRY-ID

T1 - T2 AS WELL
SCREEN - 24,80

HELLO -- WHERE U WANT PLACE IT ==> POS=(LL,CL)

POS=(10,30) = POS=(10,36)
1 10,20 30
2
3
.
10 HELLO ANIL = HELLO _.30-34 => WHAT ABT 35?? 1 BYTE
ATTRIBUTE OF FILED =ANIL
ANIL -- 36 --39
-- SYNC POINT -> COMMIT FOR SQL QUERY

TRAN -> PGM PROCESS -> A B C


CHANGE SUCCES -> COMMIT
CHANGE -- ABEND - ROLLBACK - WE NEED THIS POINT
CHANGE -COMMIT - ABEND

IKJEFT01 -> DB2*


DSRRC00 -- IMS
UTIL ---- CICS

MAINFRAME -> STOCK MARKET*

GONE GO** == 11 YEARS

CSX - RAILWAYS --> 1MIN COUNT -> TICKET - P1 - 2MIN ACK , 15MIN TO SOLVE

1. STORE DATA
2. PROCESS HUGE AMOUNT OF DATA - SECOND
3. SECURITY
4. FAST
5. MULTIUSER

SAP --> JD - JOHN DEERE -. 2013 -> SAP TO MOVE ON -- STILL DOING -- CLEINT
-> END UP - PAY MAIN SAP & MAINFRAME
CAT PROJECT

CAT PROJECT --> CLOUD --> IAAS = INFRA


PAAS == LIENCE - JAVA , TOP , ORCAL
SAAS == SOFTWARE

CAT [ROJECT --> Z-CLOUD == IBM - MAINFRAME COULD

IBM -IMS- DB2? == ORACAL , MYSQL

SIT IN A COPANY -- ALIKE IN ANY TECH - SALARY WILL BE LESS

INDIA -> JUMP - JUMP - JUMP == SALARY - MARKET


US ---> TECH WISE SALARY ->
COROAN - COBOL - PAID HIGH

===================================================================================
==========
CICS CLASS 05:-
----------------------------------------------------------------------------
3. COBOL-CICS - SUBPGM (NAVIGATION B/W SCREEN)

KNOW TO HOW COMMUNCIATE/PASS CONTROL TO SUBPGM'S

IN COBOL-CICS - 3 WAYS

1. CALL - USED TO PASS THE CONTROL TO A PROGRAM 1. THE


CONTROL WILL COME BACK TO THE WAITING MAINPGM
2. LINK - USED TO PASS THE CONTROL TO A PROGRAM 2. THE
CONTROL WILL COME BACK TO THE WAITING MAINPGM
3. XCTL - USED TO PASS THE CONTROL TO A PROGRAM 3. THE
MAINPGM WILL BE TERMINATED AND THE SUBPGM WILL NOW BE A MAINPGM

LINK --> USER -> PGMA --> LINK --> PGMB (EXECUTING) -> WHILE
PGMB IS EXECUTING - WHAT PGMS IS DOING? = RESOURCE WASTAGE
XCTL --> USER -> PGMA --> XCTL --> PGMA WILL TERMINATED - PGMB
- NOW PGMB WILL BE MAINPGM

cics -- PGMA --> LINK --> PGMB = PGMA IS WAITING

CICS -> PGMA --> XCTL -> PGMA - WILL BE TERMINATE

CICS --> PGMB (RETURN ) -- CICS

WHICH ONE IS BETTER: -> DATA PROCESS -- LINK


NAVIGATION SCREEN -> XCTL

SCREEN A - SCREEN B
PGMA - XCTL - PGMB

SCREEN A --> INPUT -PGMA LINK-> SUBPGM (PROCESS -- MAINFRAME - FRC OF SEC ->
GET) -->
SCREEN A --> OUTPUT

PGMA -> LINK - PGMB (DATA PROCESS)


-> XCTL -> PGMC (COBOL-CICS-DB2 -> LINK & XCTL)

2. HOW TO PASS THE DATA TO SUBPGM**

CALL = USING VAR1,VAR2.

EXEC CICS LINK / XCTL PROG(NAME)


COMMAREA(WS-COMMARE)
END-EXEC.

HOW MUCH DATA I CAN PASS --> EIBCALEN = S9(04) COMP -> 32000 LIMITED =
ENOUGH
WHAT IF I WANT TO PASS MORE DATA.
1. USE CALL = USING
2. QUEUE (TSQ)
01 WS-COMMAREA.
03 CLAIM-NUM
03 VALID-SW

3. HOW TO CATCH THE DATA IN SUBPGM - COMMAREA:

LINKAGE SECTION.
01 DFHCOMMAREA.
03 CLAIM-NUM
03 VALID-SW

COMMAREA - USED TO PLACE THE DATA IN COMMAREA SPACE


DFHCOMMAREA - GROUP NAME - USED TO ACCESS THE DATA STORED IN
COMMAREA.

SCREEN A-- ., 4 PEOPLE -> PGMA -> LINK -> AUDIT PGM

4. HOW TO SEND THE CONTROL BACK


HOW TO SEND THE DATA BACK

SCREEN1 --> PGMA -> LINK - PGMB (EXEC CICS RETURN END-EXEC) == PGMA

SCREEN2 --> PGMC -> XCTL -> PGMD -> SCREEN-3 -> XCTL -- PGMC -> SCREEN2

F1 --INQUIE F2 - ORDER F3 PRUDCT

LINK --> THE CONTROL IS PASS TO NEXT LOGICAL LEVEL


XCTL -> THE CONTORL WILL BE SENT TO SAME LOGICAL LEVEL
RETURN -> THE CONTROL WILL BE SEND TO HIGHER LOGICAL LEVEL

CICS --> LEVEL=0


|
|
^
PGMA -LINK - RETURN --> LEVEL-1
|
|
PGMB -RETURN --> LEVEL-2
===================================================
CICS --> LEVEL=0
|
|
^
PGMA -XCTL- PGMB--> LEVEL-1 ==> AT ANY GIVEN LEVEL ONLY 1 PGM CAN
EXECUTE

RE-ENTERNCY => QUASI REENTERY..

CICS CLASS 04:-


-------------------------------------
COBOL CICS PROGRAM - SCREEN INTERACTION:

PROCEDURE DIVISION.

3 COMMAND 1. SEND 2. RECEVIE 3. RETURN

USER - SCREEN - PROVIDE THE TRANS-ID -> TRIGGER THE PROCESS

PROECUDRE DIVISION.

1.
SEND AN EMTPY MAP
2.
USER - NEED TO KEY IN THE INPUT AND PRESS ANY AID KEY
3.
RECEVIE THE DATA + AUDIT + PROCESS + SEND RESULT
4.
USER:
1. PROVIDE ANOTHER INPUT --> REPEAT STEP-3 (RECEIVE +
AUDIT + PROCESS + SEND RESULT)
2. EXIT --> RECEIVE - RETURN

CONVERSION : AN EXCHANGE OF MESSAGE B/W PGM & USER

IN -> AT THE TIME OF USER INPUT -> WHAT UR PGM IS DOING? -> WAITING ==
RESOURCE WASTEAGE

WE DONT PREFIER TO COEE THE LOGIC - CONVERSION -=


WE CODE OUR COBOL-CICS PGM - PSEUDO CONVERSION

P-CONVERSION:
USER - SCREEN - PROVIDE THE TRANS-ID -> TRIGGER THE PROCESS

PROCEDURE DIVISION.
1. FIRST TIME
SEND AN EMPTY MAP + RELEASE THE RESOURCE
. USER - TAKE HIS/HER OWN TIME -- INPUT -> PRESS AID KEY

2. SECOND/LATER TIME
RECEIVE + AUDIT + PROCESS + SEND RESULT + RELASE THE RESOURCE

- USER -< ANOTHER INPUT -> REPEAT -STEP2


EXIT --< RECEVIE + RELEASE

EXCANHE OF THE MESSAGE B/W PGM & USER IN SEREIS OF TASK - PSEUDO-CONVERSION.

1. HOW DO U ACHIVE /CODE P-LOGIC

1. HOW DO U TELL THE PGM IF ITS RUNNING FOR 1ST TIME OR LATER
= EIBCALEN
2. WHEN USER PRESS ENTER KEY (AID) - HOW SYSTEM IS TRIGGERING THE SAME PGM AGAIN
= TO KEEP THE TRRAN-ID ON THE SCREEN
3. HOW THE PGM KNOW WHICH KEY THE USER PRESSED??/ =
EIBAID

01 WS-FIRST-TIME PIC X(01) VALUE 'Y'.


PROCEDURE DIVISION.
000-MAIN-PARA.
IF WS-FIRST-TIME = 'Y'
SEND + RELEASE
MOVE 'N' TO WS-FIRST-TIME
ELSE
RECEIVE + AUDIT + PROCESS + SEND + RELEASE
END-IF
GOBACK

EIBCALEN - > COMMAREA LENGTH VARIABLE -- CONTAINS LENTH OF THE COMM -AREA

PROCEDURE DIVISION.
000-MAIN-PARA.
IF EIBCALEN = 0
SEND + RELEASE (MOVE SOME WORK-AREA DATA TO COMMAREA )
ELSE
IF EIBAID = DFHPF1 - DO THIS
ELSE
IF EIBAID = DFHPF2 - DO THIS

RECEIVE + AUDIT + PROCESS + SEND + RELEASE


END-IF
GOBACK

WHEILE WE RLEASE THE PGM 1. KEEP SOME DATA IN COMMAREA (SO THE LENGTH IS
CHANGE)
2. KEEP THE TRAN-ID ON THE SCREEN AND RELEASE THE
RESOURECE.. 9SO WHEN USER PRESS ANY AID - THE PGM CAN TRIGGER)

SEND --> EXEC CICS SEND MAP(NAME) MAPSET(NAME)


FROM(MAPNAMEO) == SYMBOLIC COPYBOOK GROUP
NAME)
MAPONLY | DATAONLY | (BOTH-DEFAULT)
EARSE | EASREAUP = ERASE - CLEAR EVERTHING
= EARSEAUP -- CLEAR ONLY
UNPROT FILEDS
FREEKB
END-EXEC.

RECEIVE --> EXEC CICS RECEIVE MAP(NAME) MAPSET(NAME)


INTO(MAPNAMEI)
END-EXEC.

RETUNR: 2 TYPE -- EXEC CICS RETURN END-EXEC.


== USER WANT TO EXIT
EXEC CICS RETURN TRANS(XXX) COMMAREA(WS-COMMAREA)
END-EXEC. == PGM WANT TO EXIT
01 WS-COMMAREA PIC X(04) VALUE 'ANIL'.

C. HOW TO COMPILE:

COBOL PGM --> JOB J1 S1. IGYCRCTL


S2. HEWL - LOAD

COBOL-CICS --> JOB J2 S1. DFHECP1$ -> TRANSLATOR


1. REMOVE ALL EXEC CICS COMMAND , REPLACE
WITH CALL STATEMENT
Call 'DFHEI1' using by
2. COMMENT THE EXEC CICS COMMAND
S2. IGYCRCTL - COMPILER
S3 - HEWL - LINK-EDIT
ONLY 1 OUTPUT -> LOAD MODULES

4. SET THE ENVIRONEMNT

1. MAPSET
2. PROG
3. TRAN

PPT (PROCESSING PROGRAM TABLE) --> LOAD --> CEDA DEF MAPSET(NAME) G(NAME)
CEDA INS MAPSET(NAME) G(NAME)

CEDA DEF PROG(NAME) G(NAME)


CEDA ISN PROG(NAME) G(NAME)

PCT (PROGRAM CONTROL TABLE) - TRANS-ID > PROGRAM

CEDA DEF TRANS(XXXX) PROG(NAME) G(NAME)


CEDA INS TRANS(XXXX) G(NAME)

XXXX - TRANS-ID -. 4 CHAR LENGTH


- SHOULD NOT START WITH LETTER 'C'

TRN1 -> PCT -> MSETADDP -> PPT - LOAD -> EXECUTE - TASK == 178
TRANS-ID ---> EVERY SCREEN PGM == 1 TRANS-ID..

A SINGLE PGM CAN HAVE MULTIPLE TRANS-ID...

TRN1 -- PGM1 - MAP1


TRN2 - PGM1 -- MAP1

WORLD WIDE PROJECT --. AUTO MODULE -> UNIT ->

NA , AFRIC, E , PUNE
TRN1 , TRN2 ,TRN3 , TRN4
PGM1

WHEN A PGM -> TRAN WILL STOPPED..

NA - EU , PUN
TRN1 (ABEND - STOPPED)
||
PGM1

BUT SINGLE TRAN CANNOT TRIGGER 2 PGM**


================================================================

CICS CLASS 03:


-----------------------------------------
CODE THE COBOL-CICS PGM:
---------------------------------------------------------------------
ID DIVISION. (NO CHANGES)
PROGRAM-ID. NAME.
AUTHOR. UR NAME.
DATE-WRITTEN. TODAY.

ENVIRONEMENT DIVISION. NO USE (WE DONT DEFINE ANY FILE IN THIS DIVISION.)

DATA DIVISION.
FILE SECTION. - NO USE
WORKING-STORAGE SECTION.

1. ADD REQUIRED CICS COPYBOOK'S

1. SYMBOLIC MAP = COPY NAME-OF-COPYBOOK.

1. IN THIS COPYBOOK WE WILL HAVE 2 GORUP 1. INPUT 2.


OUTPUT

01 MAPNAMEI.
-> INPUT , LENGTH , ATTRIBUTE
01 MAPNAMEO REDFEINES MAPNAMEI.
-> OUTPUT

FILEDS --> EACH FILED -> WE WILL HAVE MULTIUPLE


VAIRBALE*
NO1 FIELDS -> VAIRBALE --> 1. NO1I - INPUT
2. NO1O - OUTPUT
3. NO1A - ATTRBUTE
4. NO1L - LENGTH
5. NO1C , NO1H ---- IGNORE

TIOAPFX=YES => 12 BYTE FILLER SPACE

2. DFHAID AID = ATTENTION IDENFIER -> KEY BOARD KEY - THAT CAN
TRIGGER THE TRANSACTION.
LIKE -> ENTER , PF1 , PF2 ,PF3..

10 DFHPF1 PIC
10 DFHPF2 PIC

3. DFHBMSCA -- BMS CA -->USED TO CHANGE THE ATTIBUTE OF FILED


THRU PGM**

MAP -> FILED => PROT


THRU PGM -> UNPORT --> MOVE BMS-VAIRBALE TO NO1A.

4. FILE LAYOUT == COPY NAME.

LINKAGE SECTION.
2.
COMPILER -> A COPYBOOK -> DFHEIBLK** (LIEK SQLCA)

THIS CONTAIN EXECTABLE INTERFACE VAIRBALE - WHICH ARE USED DURING


TRANSACTION BY SYSTEM ,,,

1. EIBCALEN
2. EIBAID
3. EIBRESP

02 eibcalen comp pic s9(4).


02 eibaid pic x(1).

PROCEDURE DIVISION.

TO COMMUNICATE WITH CICS SCREEN -= 3 COMMAND

1. SEND -= SEND THE MAP

2. RECEIVE == GET THE DATA FROM THE MAP

3. RETURN - RELASE THE RESOUECE /EXIT THE PGM

EXEC CICS .... END-EXEC

DUMMY -- 24,79 == FSET -->

CICS WHEN RECEIVE IT ONLY RECEIVE DATA FILED WHERE THE MDT IS ON FSET..
1. SEND OUR MAP = FRSET**
2. USER EDIT A FILED --> FSET = PRESS ENTER
--
1. SEND OUR MAP = FRSET
2. JUST PRESS ENTER - WITHOUT EDITING ANY FILED -> RECEIVE -> NOTHING -->
MAPFAIL ERROR** == ABEND

--
1. SEND OUR MAP = FRSET -> 1 DUMMY FILED - FSET
2. JUST PRESS TNER ==> WITHOUT EDITING ANY FILED --> RECIEVE -> DUMMY FILED
--> AVOID MAPFAIL ERROR /ABEND -> PLEASE TYPE INPUT

ONLINE -- DATA 1. AUDIT 1. IF USER GAVE THE DATA OR NOT


IF YES --> VALIDATE & PROCESS
IF NOT --> SEND ERROR MESSAGE

===================================================================================
=================

CICS CLASS 02:


-------------------
INTRODUCTION 1. CICS IS AN INTERFACE -- APPLICATION PGM -> DATA SORUCE
2. CICS SCREEN --> BMS MAP
DESIGN UR SCREEN == DFHMSD , DFHMDI & DFHMDF

1. DFHMSD --> TO DEFINE THE MAPSET

MAPSET-NAME DFHMSD PARAMETER1...

TYPE=MAP/DESCT/&SYSPARM /FINAL

TYPE=MAP -> COMPILER -- WILL CREATE ONLY PHSYCIAL MAP


TYPE=DSECT => COMPILER == WILL CREATE ONLY SYMBOLIC MAP
TYPE=&SYSPARM == COMPILER -- BOTH ==
APPLICATION

TYPE=FINAL --> END OF THE MAPSET DEFINATION..

DFHMSD TYPE=&SYSPARM,
DFHMSD TYPE=FINAL

LANG=COBOL
IN WHICH LANG U NEED THE COPYBOOK --> COBOL-CICS => LANG=COBOL
PLI-CICS -> LANG=PLI
LANG=ASM

MODE=IN/OUT/INOUT --> MODE=IN --> ON DATA RECEVIE


MODE=OUT -> SEND OPTION
MODE=INOUT --> SYMBOLIC MAP -->01 INPUT
01 OUTPUT

MSETNAME DFHMSD TYPE=&SYSPARM,LANG=COBOL,MODE=INOUT,


MAPATTS=(COLOR),DSATTS=(COLOR),
TIOAPFX=YES,CTRL=(FREEKB,ALARM,FRSET)

TO COMMINCATE WITH THE DATA --> SYMBOLIC VARIBALE ARE ENOGH


TO HOLD THE TERNIMAL DETAILS -- SYSTEM NEED MORE SPACE
TIOAPFX=YES -- TERNMIANL INPUT OUTPUT AREA PERFIX

TIOAPFX=NO =-= WE CANNOT COMMUNCIATE WITH THE SCREEN


YES -- COMPILER WILL ADD 12 BYTES OF FILLER SPACE BEFORE ALL OTHER
FILED VAIRBALE

FREEKB --> FREE KEYBOARD


CICS -> WHEN RECEVIE ANY INPUT - LOCK THE KEYBOARD

FRSET** --> FIELD RESET:

LET SAY - ON A CICS SCREEN 20 FILEDS --> 2 INPUT , 18 ARE OUTPUT

WHEN USER PROVIDE THESE 2 INPUTS --> PRESS ENTER --> UR PGM -->

1. SHOULD RECEVIE ONLY 2 FILED == HOW DO THE PGM


KNOW TO RECEIVE ONLY THESE FILEDS
2. SHOULD RECEIVE ALL 20 FILEDS

MDT -- MODIFIED DATA TAG*

1. WHEN WE SEND A MAP -ALL FILED THE WILL BE FRSET --> 0


2. WHEN USED EDIT ANY FILED ON THE SCEEEN, IT WILL BE SET --> 1
3. WHEN USER PRESS ENTER --> CICS WILL ONLY RECEIVCE THE FILED WHICH
ARE IN FSET POSITION (1)

MDT ON -> FSET 1


MDT OFF -> FRSET 0

>> WHAT ARE THE WAYS TO MAKE MDT ON FOR FILED?

MSETNAME DFHMSD TYPE=&SYSPARM,LANG=COBOL,MODE=INOUT,


MAPATTS=(COLOR),DSATTS=(COLOR),
TIOAPFX=YES,CTRL=(FREEKB,ALARM,FRSET)

MAPNAME DFHMDI SIZE=(24,80),LINE=1,COLUMN=1 BUT ERROR IF ALREADY CODED


ON MAPSET

CICS SCREEN --> MAX == 24 LINES , 80 COLUMNS

FLDNAME DFHMDF POS=(LL,CL),INITIAL='WELCOME TO CICS',LENGTH=20,


ATTRB=(PROT,NORM),PICIN='9(04)',PICOUT='9(04)'

1. PROT/UNPROT/ASKIP -->< PROT -- FILED CANNOT EDITED -- OUTPUT


/LABEL
UNPROT -- CAN BE EDITIED -- INPUT
ASKIP -- USED TO SKIP THE CURSOR AND PLACE ON NEXT UNPROT FILEDS..

2. BRT/NORM/DRK -- BRRIGHT -- HEARDER


NORM
DRK -- HIDDEN/PASSWD
3. IC** = INSERT CURSOR =--> USED TO PLACE THE CURSOR ON UR 1ST INPUT FILED

4. NUM == ALLOW ONLY NUMERIC VALUE

5. FSET == TO SET THE MDT ON

ATTRB-(PROT,NORM)
ATTRB=(PROT,BRK)
ATTRB=(UNPROT,NORM)
ATTRB=(UNPROT,NORM,IC)
ATTRB=(UNPROT,NORM,IC,NUM)
ATTRB=(UNPORT,DRK)
ATTRB=(UNPROT,NORM,FSET)

-- COMPILE THIS MAP --> COPYBOOK - SYMBOLIC MAP..

VAIRBALE NAME -- DATA-TYPE - SIZE

03 VARIBALE-NAME PIC DATA-TYPE(SIZE).


FILED NAME = VARIBALE NAME
DATA-TYPE = BY DEFAULT = 'X'
SIZE -=> LENGTH

PICIN='9(04)',PICOUT='9(04)'

1. TIOAPFX , 2. FRSET-FSET 3. ATTRB

CICS INTRODUCTION CLASS 01:

MAINFRAME DATA PROCESSING IS OF 2 TYPE 1. BATCH PROCESS


2. ONLINE PROCESS == CICS

CICS ==> CUSTOMER INFORMATION AND CONTROL SYSTEM

ITS DB/DC SYSTEM --> DB -- STORE THE DATA


DC - DATA COMMUNCATION - CHANNEL TO PASS THE DATA

IN PROJECT - WE USE CICS AS ONLY FOR DC --> WE DONT USE DB

IN MAINFRAME --> IMS = DB/DC ==> DB -- USED == STORE THE DATA


DC - USED = COMMUNCIATION WITH ONLINE SCREEN

CICS --> MINI OS -- 3 COMPONENTS:

1. CONTROL PROGRAMS -- TASK CARRIERS -- THEY DO WHAT UR PGMS


COMMAND'S
2. CONTROL TABLE -- TABLE CONTAINS THE REQUIRED INFORMATION
THAT USED BY CONTROL PROGRMM
3. CONTROL AREA -- MEMORY ALLOCATION USED TO EXECUTE THE
TRANSACTION..

DANNY --> US --> BIRTHDAY - I WANT TO GIVE A GIFT 1000 RS-->


2 WAYS 1. BUY A TICKET TO US --> GO TO HIS HOUS AND GIVEN GIFT --
DINNER - BUY THE TICKET BACK HOME
2. SEND IT AS COURIIER -_.

COURIES -BOY'S -- DO U KNOW HIS NAME? === NO.. == CONTROL PROGRAM


-- READ A FILE , WHAT IS FILE NAME
ADDRESS ON THE GIFT == CONTROL TABLE --
FILE NAME? , DB2 PLAN , LOAD , TRANS=ID == DEVELOPER
PLANE -> BIKE /TRASPORT == CONTROL AREA --
PLACE/MEMORY WHAT SYSTEM NEED TO RUN THE PGM

WHAT IS CICS** == CICS IS AN INTERFACE B/W APPLICATION PGM & DATA SORUCE/TARGET

==== CICS IS USED FOR COMMUNICATON:

1. SCREEN COMMUNICATION == ASM LANG ==> BMS BASIC MAPPING SUPPORT..

BMS == USED TO DESIGN THE SCREEN

3 COMPONENET 1. MAPSET -== COLLECTION OF MAP


2. MAP = COLLECTION OF FILEDS
3. FILEDS -- LAYOUT ON THE SCREEN..

2 TYPES* 1. LABEL FILEDS = USERID ,


PASSWD
2. DATA VALUE FIELDS = ______

EX: LOGIN SCREEN

USERID: _____
PASSWD: _____

TO DESIGN THESE 3 COMPONENT IN BMS == WE USE 3 MACRO

MAPSET -= DFHMSD == MAP SET DEFINATION


MAP == DFHMDI == MAP DEFINATION INTERFACE
FILEDS=== DFHMDF == MAP DEFINATION FILEDS

ASM CODE SHEET:


1 - 72 (PDS - 80)

1-7 -- NAME FILED == MAPSET , MAP , FILEDS


8 BLANK
9-14 - MACRO -= DFHMSD , DFHMDI , DFHMDF
15 - BLANK
16-71 ---PARAMETER
72 --> USED FOR LINE CONTINUE USING 'X' SYMBOL

SMAPLE CODE

MSETNAME DFHMSD PARa1,parA2,... X


PARA3,PARA4.
MAPNAME DFHMDI PARA...

FILENAME DFHMDF
DFHMDF
DFHMDF

DFHMSD ==END THE DEFINATION


END == END THE PGM

ONCE UR BMS PGM IS COMPLETED - COMILATION

ASM COMPILER --> ASMA90 --- BMS CODE AS INPUT ==> AFTER COMPILATION 2
OUTPUT 1. PHYSICAL MAP
2. SYMBOLIC
MAP

1. PHYSICAL MAP --> LOAD MODULE - USE IT FOR EXECUTIONS


2. SYMBOLIC MAP --> SCREEN COPYBOOK -- USE IN THE COBOL -CICS TO
ACCESS THE SCREEN DATA

HOW DO U CREATE A COPYBOOK 1. MANUALLY CREATE A COPYBOOK ==


FILE LAYOUT
2. DCLGEN TOOL = DB2
-- COBOL
3. COMPILER --> SCREN COPYBOOK -->
SYMBOLIC MAP

COPYBOOK == WHERE COPYBOOK IS USED --> LAYOUT


WHAT IS COPYBOOK? --> PIECE OF COBOL CODE , WHICH U CAN USED IN PGM AS
REUSEABILITY**

ONCE WE GOT THE PHYSICAL MAP --> EXECUTE AND SEE THE LAYOUT:

GOTO CICS ENVIRONEMNTl : BLACK SCREEN

STEP1 -> SETUP THE CONTROL TABLE:

CEDA DEF MAPSET(NAME) G(NAME)


CEDA INS MAPSET(NAME) G(NAME) ==> LOAD ---> IS
CALLED = PPT ENTRY (PROGRAM PROCESS TABLE)
THIS IS LIKE CODING
//STEPLIB***

STEP2:
TO SEE THE MAP --> CECI SEND MAP(NAME) MAPSET(NAME) = PRESS ENTER FOR 2
TIMES

USERID: ______
PASSWD: ______

1. CICS -- DB/DC
CICS -- INTERFACE

2. CONTROL COMPONE T -== PROGRAM , TABLE , AREAS

3. SCREEN ==> BMS ,, MAPSET , MAP , FILEDS


DFHMSD, MDI MDF
CODE SHEET --> COMPILE = PHY & SYM MAP

PHY --> CICS --> SETUP --> CECI SEND TO SEE THE SCREEN
IBM --> 2 SONS 1. IMS -- STORE THE DATA = DB = DATABASE
== IMS-DC => MFS SCREEN
2. DB2 -- STORE THE DATA

IMS --> DC == USED FOR ONLINE APPLICATION

IN ANOTHER POJECT --> DB2 =-= DB


DC?? --> CICS
MAINFRAME -->

COBOL - JCL - DB2 - CICS - IMS-DC - SAS - REXX - QUIKJOB - PLI

COBOL - PLI - SAS - QUIKJOB == PGM LANG


DB2 - IMS-DB
CICS - IMS-DC
-----------------------------------------------------------------

CICS CLASS 01: INTRODUCTION:


----------------------------------------------------

WE WILL BE HAVING - 8-10 SESSION ON THE CICS..

COURSE PLAN:

3-4 CLASS --> 90% THOEY 10% PRACTICAL

MAINFRAME --> USE OF THE MAINFRAME/

1. STORE THE DATA


2. PROCESS THE DATA

STORE THE DATA 2 PLACE 1. FILE SYSTEM


3 TYPES: 1. QSAM -- PS
2. VSAM -- KSDS
3. GSAM - IMS-DB

2. DATABASE SYSTEM
3 TYPES 1. IDMS
2. IMS
3. DB2

PROCESS THE DATA


2 TYPES 1. BATCH PROCESS
2. ONLINE PROCESS

BATCH PROCESSING --> 1. BULK DATA UPDATATION/PROCESS 2. SCHEDULED 3. WITHOUT USER


INTERACTION 4. THRU JCL

ONLINE PROCESSING -> 1. SHORT INFROMATION PROCESS 2. UNSCHEUDLD 3. WITH USER


INTERACTION 5. THRU CICS

IN A PROJECT --> APPLICATION 1. ONLY BATCH


2. ONLY ONLINE

BATCH --> COBOL - USED TO CODE THE BUSINESS LOGIC


FILE/DB2 - PLACE TO STORE THE DATA
Z/OS - PLATFORM TO WORK ON MAINFRAME
JCL - TO EXECUTE THE PGM'S

ONLINE -> COBOL - USED TO CODE THE BUSINESS LOGIC


FILE/DB2 - PLACE TO STORE THE DATA
Z/OS - PLATFORM
CICS - TO EXECUTE THE PGM
JCL* (LITTLE-MORE) - TO EXECUTE THE PGM

CICS --> INTERACTE


CAPTURE THE DATA

ONLINE : FORNT END= INTERACTIVE.

2 KINDS -

1. USER'S -- BUSINESS ANALYST (COMPNAY GUYS) = RACF-ID


2. CUSTOMER'S -- BUY'S UR PRODUCT = DO NOT HAVE RACF-ID

QUICK ACCESS TO DATA**

USER -- WANT TO SEE THE DATA ON A DB2 TABLE/FILE

2 WAYS 1. LOGIN TO MAINFRAME -> LEARN Z/OS -> LEARN SQL - SPUFI -> RUN A
QUERY TO SEE THE DATA
2. PROIVIDE HIM A SCREEN ASK HIM TO GIVE INPUT -> LET UR PGM - SQL
QUERY - GET DATA

EX: -- AUTO-MOBILE -> JOHN DEERE (GREEN TRACTOR'S)

WARE HOUSE -> PART INVERNTORY --> SUPERWISOR --> SHIPEMENT WILL COME, WHAT
SHIPMENT WILL COME TODAY

ONLINE --> SHIP-ID: _________________

DATE -ARRVIAL , PACKAGE , PART , HOW MANY - FRO


DATE SHIPPED

USER -- WANT TO INTERACTE WITH MAINFRAME DATA SOURCE (TABLE / FILE) -->

USER --> CICS SCREEN --> CICS-COBOL PGM --> DATA (TABLE/FILE)

CUSTOMER FRONT --> DO NOT HAVE ACCESS TO MAINFRAME THRU RACF-ID

CUSTOMER-ID --.

CUSTOMER -> WEB-PAGES (JAVA/.NET FRAMEWORK) --> WEB SERIVES --> MESSAGE QUEUE
--> CICS-PGM --> DATA
NOT TSQ-TDQ
FRIDGE == DB2 TABLE / FILE
BOTTLE == TSQ/TDQ

IN OUR TRAINING --, USER FORNT APPLICATION.

CICS SCREEN --> COBOL-CICS --> DATA (FILE - TABLE - QUEUE)

1. INTRODUCTION TO CICS
2. COBOL-CICS PGM
A. DESIGN THE BMS SCREEN
B. CODE THE COBOL-CICS PGM
C. HOW TO COMPILE
D. HOW TO SETUP THE CICS ENVIRONMENT
E. EXECUTE THE TRANSACTION 3-4 SESSION 90% THOERY , 10% TO DO A
PRACTICAL
3. COBOL-CICS - SUBPGM (NAVIGATION B/W SCREEN)
4. DATA PART:
1. COBOL-CICS-DB2 PGM
2. COBOL-CICS-FILE PGM =-= KSDS CLUSTER
3. COBOL-CICS-QUEUE (TSQ - TDQ)
5. SOME OF THE CICS COMMAND
6. ERROR HANDLING
===========================================================================
THIS TRAINING --> ENOGUH FOR UR INTERVIEW..
---> PROJECT --> NEED MORE UNDERSTAND OF THE ARH IN THE PROJECT

--> ANY DOUBTS:

TIMING --> 9.30 PM -= 10.30PM


MON-SAT ONLY --> SUNDAY

12.30PM -- 8.30PM ONLY -- OFFICE ONLY ON WHATSAPP (NO SKYPE)

== NOTES I WILL SHARE IT


RECORDING -> IT IS SKYPE SERVER..

- I DONT HAVE THE RECORDING -->


AFTER THE CLASS - U GET THE RECORD IN SKYPE CHAT ITSELF
-- 30 DAYS ONLY -> DOWNLOAD IT - CHECK IT AS WELL
==> I WILL SHARE THE PGM THAT AM DOING THE PRACTICAL

WHATSAPP - - NO GOOD MORNING, NO GOOD NIGHT


MAINFRAME - PLZ SEND
====================================================================

You might also like