You are on page 1of 10

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

BMS:- PROG1
-----------------------------------

YEZDAN DFHMSD TYPE=&SYSPARM,MODE=INOUT,LANG=COBOL,STORAGE=AUTO, *


TIOAPFX=YES,CTRL=FREEKB
AMEER DFHMDI SIZE=(24,80),LINE=1,COLUMN=1
PHM DFHMDF POS=(5,10),INITIAL='ENTER NAME',LENGTH=10,ATTRB=(PROT)
DFHMDF POS=(7,10),INITIAL='ENTER NO',LENGTH=8,ATTRB=(PROT,BRT)
DFHMDF POS=(9,10),INITIAL='RESULT',LENGTH=8,ATTRB=PROT
ENTNAME DFHMDF POS=(5,25),LENGTH=10,ATTRB=(UNPROT,IC)
ENTNO DFHMDF POS=(7,25),LENGTH=2,ATTRB=(UNPROT,DRK,NUM),PICIN='9(2)'
RES DFHMDF POS=(9,25),LENGTH=2,ATTRB=(UNPROT)
YEZDAN DFHMSD TYPE=FINAL
END

NOTE:- In order to define color for any we have to def color = default or mapatts = color

COBOL CODING:-
-------------------------

IDENTIFICATION DIVISION.
PROGRAM-ID. BMS2COMP.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY YEZDAN.
01 MSG-TXT PIC X(2).
01 MSG-LEN PIC S9(4) COMP.
77 A PIC X(10).
77 B PIC 9(2).
PROCEDURE DIVISION.
MAIN1.
EXEC CICS SEND CONTROL
ERASE
END-EXEC.
EXEC CICS SEND
MAPSET('YEZDAN')
MAP('AMEER')
END-EXEC.
EXEC CICS RECEIVE
MAPSET('YEZDAN')
MAP('AMEER')
END-EXEC.
MOVE ENTNAMEI TO A.
MOVE ENTNOI TO B.
MOVE 'HI' TO MSG-TXT.
MOVE 2 TO MSG-LEN.
MOVE MSG-TXT TO RESO.
EXEC CICS SEND
MAPSET('YEZDAN')
MAP('AMEER')
END-EXEC.
EXEC CICS RETURN
END-EXEC.

-------------------------------------
BMS:- PROG2
--------------------------------------

KIRAN DFHMSD TYPE=&SYSPARM,LANG=COBOL,MODE=INOUT,STORAGE=AUTO, *


TIOAPFX=YES
KUMAR DFHMDI SIZE=(24,80),LINE=1,COLUMN=1
PHMM DFHMDF POS=(5,10),INITIAL='ENTER A',LENGTH=7,ATTRB=PROT
DFHMDF POS=(8,10),INITIAL='ENTER B',LENGTH=7,ATTRB=PROT
DFHMDF POS=(10,10),INITIAL='RESULT',LENGTH=6,ATTRB=PROT
ENTERA DFHMDF POS=(5,20),LENGTH=2,ATTRB=(UNPROT,IC,NUM), *
PICIN='9(2)'
ENTERB DFHMDF POS=(8,20),LENGTH=2,ATTRB=(UNPROT,NUM),PICIN='9(2)'
RESULT DFHMDF POS=(10,20),LENGTH=3,ATTRB=(UNPROT,NUM),PICOUT='9(3)'
KIRAN DFHMSD TYPE=FINAL
END

COBOL CODING:
------------------------------

IDENTIFICATION DIVISION.
PROGRAM-ID. BMSCOB1.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY KIRAN.
77 A PIC 9(2).
77 B PIC 9(2).
77 C PIC 9(3).
PROCEDURE DIVISION.
MAIN.
EXEC CICS SEND
MAPSET('KIRAN')
MAP('KUMAR')
ERASE
END-EXEC.
EXEC CICS SEND CONTROL ERASE
END-EXEC.
EXEC CICS RECEIVE
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
MOVE ENTERAI TO A.
MOVE ENTERBI TO B.
COMPUTE C = A + B.
MOVE C TO RESULTO.
EXEC CICS SEND
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
EXEC CICS RETURN
END-EXEC.

-------------------------------
PROG1 : - BMS USING HANDLE AID
------------------------------

MAP
----

CALMAP DFHMSD TYPE=&SYSPARM,LANG=COBOL,MODE=INOUT,TIOAPFX=YES, *


CTRL=(FREEKB,ALARM,FRSET),STORAGE=AUTO
CICMAP DFHMDI SIZE=(24,80),LINE=1,COLUMN=1
DFHMDF POS=(5,30),INITIAL='CALCULATION',LENGTH=11, *
ATTRB=PROT
DFHMDF POS=(10,15),INITIAL='NUMBER1 :',LENGTH=10, *
ATTRB=PROT
NUM1 DFHMDF POS=(10,27),INITIAL='---',LENGTH=3, *
ATTRB=(UNPROT,IC,NUM),PICIN='9(3)'
DFHMDF POS=(15,15),INITIAL='NUMBER2 :',LENGTH=10, *
ATTRB=PROT
NUM2 DFHMDF POS=(15,27),INITIAL='---',LENGTH=3, *
ATTRB=(UNPROT,NUM),PICIN='9(3)'
RES DFHMDF POS=(20,27),INITIAL='----',LENGTH=4, *
ATTRB=PROT,PICOUT='9(4)'
DFHMDF POS=(23,1),INITIAL='F1-->ADD',LENGTH=10,ATTRB=PROT
DFHMDF POS=(23,12),INITIAL='F2-->SUB',LENGTH=10,ATTRB=PROT
DFHMDF POS=(23,23),INITIAL='F3-->MUL',LENGTH=10,ATTRB=PROT
DFHMDF POS=(23,34),INITIAL='F4-->DIV',LENGTH=10,ATTRB=PROT
CALMAP DFHMSD TYPE=FINAL
END

COBOL PGM
---------------

IDENTIFICATION DIVISION.
PROGRAM-ID. CICCAL.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY CALMAP.
01 N1 PIC 9(3).
01 N2 PIC 9(3).
01 R1 PIC 9(4).
77 WS-LEN PIC S9(4) COMP.
PROCEDURE DIVISION.
MAIN-PARA.
PERFORM SEND-PARA.
PERFORM HAND-PARA.
PERFORM RECEIVE-PARA.
PERFORM SEND1-PARA.
PERFORM EXIT-PARA.
SEND-PARA.
EXEC CICS SEND
MAP('CICMAP')
MAPSET('CALMAP')
ERASE
END-EXEC.
RECEIVE-PARA.
EXEC CICS RECEIVE
MAP('CICMAP')
MAPSET('CALMAP')
END-EXEC.
HAND-PARA.
EXEC CICS HANDLE AID
PF1(ADD-PARA)
PF2(SUB-PARA)
PF3(MUL-PARA)
PF4(DIV-PARA)
END-EXEC.
SEND1-PARA.
EXEC CICS SEND
MAP('CICMAP')
MAPSET('CALMAP')
END-EXEC.
GO TO MAIN-PARA.
ADD-PARA.
MOVE NUM1I TO N1.
MOVE NUM2I TO N2.
COMPUTE R1 = N1 + N2.
MOVE R1 TO RESO.
GO TO SEND1-PARA.
DIV-PARA.
MOVE NUM1I TO N1.
MOVE NUM2I TO N2.
COMPUTE R1 = N1 / N2.
MOVE R1 TO RESO.
GO TO SEND1-PARA.
MUL-PARA.
MOVE NUM1I TO N1.
MOVE NUM1I TO N1.
MOVE NUM2I TO N2.
COMPUTE R1 = N1 * N2.
MOVE R1 TO RESO.
GO TO SEND1-PARA.
SUB-PARA.
MOVE NUM1I TO N1.
MOVE NUM2I TO N2.
COMPUTE R1 = N1 - N2.
MOVE R1 TO RESO.
GO TO SEND1-PARA.
EXIT-PARA.
EXEC CICS RETURN
END-EXEC.

---------------------------------------------
LINK AND XCTL USING BMS
----------------------------------------------

XCTL FOR BMS PGM2.

XCTL:- MAIN1
--------------------------

IDENTIFICATION DIVISION.
PROGRAM-ID. XCTL1.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY KIRAN.
01 WS-COMM.
05 A PIC 9(2).
05 B PIC 99.
05 C PIC 999.
PROCEDURE DIVISION.
MAIN1.
EXEC CICS SEND CONTROL
ERASE
END-EXEC.
EXEC CICS SEND
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
EXEC CICS RECEIVE
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
MOVE ENTERAI TO A.
MOVE ENTERBI TO B.
EXEC CICS XCTL
PROGRAM('XCTLSUB')
COMMAREA(WS-COMM)
END-EXEC.

XCTLSUB:
-------------------

IDENTIFICATION DIVISION.
PROGRAM-ID. XCTLSUB.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY KIRAN.
LINKAGE SECTION.
01 DFHCOMMAREA.
05 X PIC 99.
05 Y PIC 99.
05 Z PIC 9(3).
PROCEDURE DIVISION.
MAIN2.
COMPUTE Z = X + Y.
MOVE Z TO RESULTO.
EXEC CICS SEND
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
EXEC CICS RETURN
END-EXEC.

LINK1:- MAIN PGM:


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

IDENTIFICATION DIVISION.
PROGRAM-ID. XCTL2.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY YEZDAN.
01 WS-COMMA.
02 A PIC X(10).
02 B PIC 9(8).
02 C PIC X(2).
01 WS-LEN PIC S9(4) COMP.
PROCEDURE DIVISION.
PARA.
EXEC CICS SEND CONTROL
ERASE
END-EXEC.
EXEC CICS SEND
MAPSET('YEZDAN')
MAP('AMEER')
END-EXEC.
EXEC CICS RECEIVE
MAPSET('YEZDAN')
MAP('AMEER')
END-EXEC.
MOVE ENTNAMEI TO A.
MOVE ENTNOI TO B.
MOVE 20 TO WS-LEN.
EXEC CICS LINK
PROGRAM('XCTLSUB1')
COMMAREA(WS-COMMA)
LENGTH(WS-LEN)
END-EXEC.
MOVE C TO RESO.
EXEC CICS SEND
MAPSET('YEZDAN')
MAP('AMEER')
END-EXEC.
EXEC CICS RETURN
END-EXEC.

SUB PGM
--------------------

IDENTIFICATION DIVISION.
PROGRAM-ID. XCTLSUB1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NAME PIC X(10).
77 D PIC X(2).
LINKAGE SECTION.
01 DFHCOMMAREA.
02 X PIC X(10).
02 Y PIC 9(8).
02 Z PIC XX.
PROCEDURE DIVISION.
MAIN1.
MOVE X TO NAME.
IF NAME = 'KIRANKUMAR'
MOVE 'HI' TO D
ELSE
MOVE 'NO' TO D.
MOVE D TO Z.
EXEC CICS RETURN
END-EXEC.

----------------------------------------------------------
PSEUDO CONVERSATION TECHNIQUE :-
----------------------------------------------------------

TECHNIQUE !:- MANY PROGARAMS (PPT) MANY TRANSACTION2 (PCT)


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

PGM1: -
----------

IDENTIFICATION DIVISION.
PROGRAM-ID. PSEUDO1.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY KIRAN.
PROCEDURE DIVISION.
MAINP.
EXEC CICS SEND
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
EXEC CICS RETURN
TRANSID('TT2')
END-EXEC.

PGM2: -
----------

IDENTIFICATION DIVISION.
PROGRAM-ID. PSEUDO11.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(3).
COPY KIRAN.
PROCEDURE DIVISION.
MAIN1.
EXEC CICS RECEIVE
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
MOVE NUM1I TO A.
MOVE NUM2I TO B.
COMPUTE C = A + B.
MOVE C TO RESO.
EXEC CICS SEND
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
EXEC CICS RETURN
END-EXEC.

TECHNIQUE 2:- SINGLE PROGRAM (PPT) MANY TRANSACTION (PCT).


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

IDENTIFICATION DIVISION.
PROGRAM-ID. PSEUDO1.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY KIRAN.
77 A PIC 9(2).
77 B PIC 9(2).
77 C PIC 9(3).
PROCEDURE DIVISION.
MAIN2.
IF EIBTRNID = 'KI1'
PERFORM PARA1.
IF EIBTRNID = 'KI2'
PERFORM PARA2.
PARA1.
EXEC CICS SEND
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
EXEC CICS RETURN
TRANSID('KI2')
END-EXEC.
PARA2.
EXEC CICS RECEIVE
MAP('KUMAR')
MAPSET('KIRAN')
END-EXEC.
MOVE NUM1I TO A.
MOVE NUM2I TO B.
COMPUTE C = A + B.
MOVE C TO RESO.
EXEC CICS SEND
MAP('KUMAR')
MAPSET('KIRAN')
END-EXEC.
EXEC CICS RETURN
END-EXEC.

TECHNIQUE 3: - SINGLE PROGRAM (PPT) SINGLE TRANSACTION(PCT).


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

IDENTIFICATION DIVISION.
PROGRAM-ID. KIRAN.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY KIRAN.
01 WS-COMMAREA.
05 WS-TRANSID PIC X(4).
01 A PIC 9(2).
01 B PIC 9(2).
01 C PIC 9(3).
LINKAGE SECTION.
01 DFHCOMMAREA.
05 DFHTRANSID PIC X(4).
PROCEDURE DIVISION.
MAIN3.
IF EIBCALEN = 0
PERFORM PARA1
ELSE IF EIBCALEN NOT = 0
PERFORM PARA2.
PARA1.
EXEC CICS SEND
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
EXEC CICS RETURN
TRANSID('LL3')
COMMAREA(WS-COMMAREA)
END-EXEC.
PARA2.
EXEC CICS RECEIVE
MAPSET('KIRAN')
MAP('KUMAR')
END-EXEC.
MOVE NUM1I TO A.
MOVE NUM2I TO B.
COMPUTE C = A + B.
MOVE C TO RESO.
EXEC CICS SEND
MAP('KUMAR')
MAPSET('KIRAN')
END-EXEC.
EXEC CICS RETURN
END-EXEC.

You might also like