0% found this document useful (0 votes)
342 views9 pages

COBOL CICS BMS Programs Overview

This document contains code snippets and descriptions related to BMS mapping and CICS programming. It includes: 1) Definitions of BMS maps and associated COBOL code to display and process fields on the maps. 2) Examples of using XCTL and LINK commands to call subordinate programs and pass data. 3) Descriptions of different techniques for implementing pseudo-conversations using a single or multiple programs with single or multiple transaction IDs.

Uploaded by

Vikas Sharma
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
342 views9 pages

COBOL CICS BMS Programs Overview

This document contains code snippets and descriptions related to BMS mapping and CICS programming. It includes: 1) Definitions of BMS maps and associated COBOL code to display and process fields on the maps. 2) Examples of using XCTL and LINK commands to call subordinate programs and pass data. 3) Descriptions of different techniques for implementing pseudo-conversations using a single or multiple programs with single or multiple transaction IDs.

Uploaded by

Vikas Sharma
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 9

-----------------------------------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 !:--------------------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') MANY PROGARAMS (PPT) MANY TRANSACTION2 (PCT) ------------------------------------------------------------------------------------

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