LU 6.2 API Application Programmer's Reference Guide (30294-90008)

182 AppendixB
Sample Programs
CICS Program (PL/I)
S027:
PROCEDURE OPTIONS (MAIN);
DCL
1 RECEIVE_AREA,
2 KEY CHAR(9) INIT((9)' '),
2 NAME CHAR(21) INIT((21)' ');
DCL
1 SEND_AREA,
2 KEY CHAR(9) INIT((9)' '),
2 NAME CHAR(21) INIT((21)' '),
2 DATA CHAR(50) INIT((50)' ');
/*** error codes ***/
DCL NOT_FOUND CHAR(4) INIT('0001');
DCL INVALID_NAME CHAR(4) INIT('0002');
DCL MISC_ERROR CHAR(4) INIT('0003');
DCL ADDR BUILTIN;
DCL CSTG BUILTIN;
DCL HIGH BUILTIN;
DCL LOW BUILTIN;
DCL SUBSTR BUILTIN;
DCL STG BUILTIN;
DCL VERIFY BUILTIN;
DCL CONV_GONE BIT(1) INIT('0'B);
DCL CONFIRM_REQ BIT(1) INIT('0'B);
DCL DATA_COMPLETE BIT(1) INIT('0'B);
DCL INLEN FIXED BIN(31) INIT(30);
DCL RSC CHAR(6) INIT('TPFILE');
DCL SYNC FIXED BIN(15) INIT(0);
/*** Begin MAIN ***/
EXEC CICS HANDLE CONDITION NOTFND(L_NFD)
ERROR(L_ERR);
/* Receive attach from HP 3000. Equivalent to MCGetAllocate. */
EXEC CICS EXTRACT PROCESS SYNCLEVEL(SYNC);
RCV_LOOP:
DO WHILE ((CONV_GONE = '0'B) &
(CONFIRM_REQ = '0'B));
/* Until the partner TP deallocates the conversation or */
/* the partner TP issues MCConfirm to request confirmation, */
/* receive another 30-byte record with 9-digit key and 21-character name. */
EXEC CICS RECEIVE INTO(RECEIVE_AREA) LENGTH(INLEN);