5.1.2.1

次の例は、COBOLのCICSクライアント・プログラムのサンプルです。

リスト COBOLのCICSクライアント・プログラムの例

IDENTIFICATION DIVISION.
 PROGRAM-ID.     TESTCLN.
 ENVIRONMENT     DIVISION.
 CONFIGURATION SECTION.
 SOURCE-COMPUTER. IBM-3090.
 OBJECT-COMPUTER. IBM-3090.
 DATA DIVISION.
 WORKING-STORAGE SECTION.
 01 FILLER   PIC X(32) VALUE 'SAMPLE COBOL CICS CLIENT PROGRAM'.
 01 MSG-AREA.
 05 M-DATA             PIC X(42) VALUE SPACES.
 05 M-RCDE             PIC Z(05) VALUE ZEROS.
 01 WS-COMMAREA.
 05 WC-DATALEN         PIC S9(9) COMP-4.
 05 WC-SVCNAME         PIC X(16).
 05 WC-REQUESTCD       PIC S9(9) COMP-4.
 05 WC-RETURNCD        PIC S9(9) COMP-4.
 05 WC-REQRETURNCD     PIC S9(9) COMP-4.
 05 WC-REQDATA         PIC X(14).
 LINKAGE SECTION.
 01 DFHCOMMAREA        PIC X(14).
 PROCEDURE DIVISION.
 A100-ENTRY.
 MOVE +14                  TO WC-DATALEN.
 MOVE 'TOLOWER'            TO WC-SVCNAME.
 MOVE +5                   TO WC-REQUESTCD.
 MOVE 'THIS IS A TEST'     TO WC-REQDATA.
 EXEC CICS LINK PROGRAM('BEAPRERQ')
           COMMAREA(WS-COMMAREA)
           LENGTH(LENGTH OF WS-COMMAREA)
 END-EXEC.
 IF RETURNCD = 0
    MOVE 'SUCCESSFUL CALL, RETURN DATA IS IN WC-DATA'
      TO MSG-DATA
 ELSE
   MOVE 'PROCESS ERROR OCCURRED, RETURN CODE EQUAL '
     TO MSG-DATA
   MOVE RETURNCD TO M-RCDE
 END-IF.
 EXEC CICS SEND TEXT FROM(MSG-AREA) LENGTH(47)
           ERASE TERMINAL FREEKB CURSOR(0)
 END-EXEC.
 A200-EXIT.
     EXEC CICS RETURN END-EXEC.

次の例は、CのCICSクライアント・プログラムのサンプルです。

リスト CのCICSクライアント・プログラムの例

long resp, resp2;
unsigned short int lmsg;
struct CMAREA carea;


carea.CltHdr.DataLen = strlen(sendbuf);
memcpy(carea.CltHdr.SvcName, “ECHO”, 4);
carea.CltHdr.RequestCd = BEA_REQUEST_RESPONSE;
memcpy(carea.Request_data, “This is a test”, 14);
lmsg=sizeof(carea);
/* Use the name defined during installation */
EXEC CICS LINK PROGRAM("PREREQ") 
                           COMMAREA(&carea)
                           LENGTH(lmsg) RESP(resp) RESP2(resp2);
if(carea.CltHdr.ReturnCd || carea.CltHdr.ReqReturnCd)
           process error;
else
           successful call, returned data is in Request_data;

ノート:

Cプログラマは、文字列の中にNULL終了文字を含めないようにしてください。前述の例では、strxxx呼出しではなく、memxxx呼出しを使用しています。この例は、CICS環境でC言語を使用する場合の標準パターンです。詳細は、CICS版C言語のドキュメントを参照してください。