z/OS TSO/E Programming Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


COBOL Program Using TSOLNK to Invoke a Program

z/OS TSO/E Programming Services
SA32-0973-00

Figure 1. COBOL Program Demonstrating the Use of TSOLNK to Invoke a Program
 ID DIVISION.
 PROGRAM-ID.   TSOSVR.
*     THIS COBOL PROGRAM ISSUES THE IEBCOPY PROGRAM IN TSO/E AND
*     THEN PRINTS OUT THE COMMAND BUFFER  AND THE RETURN, REASON
*     AND ABEND CODES RESULTING FROM THE EXECUTION OF THE TSO
*     SERVICE FACILITY.  TO USE THE EXAMPLE THE USER MUST ALLOCATE
*     THE FOLLOWING FILES:
*          ALLOC F(SYSPRT) DSN(*)
*          ALLOC F(SYSIN) DSN(YOUR.SYSIN)
*          ALLOC F(SYSPRINT) DSN(*)
*          ALLOC F(INDD) DSN(YOUR.INPDS)
*          ALLOC F(OUTDD) DSN(YOUR.OUTPDS)
*     THE EXAMPLE REQUIRES THE FOLLOWING CARD IN YOUR.SYSIN FILE:
*          EXAMPLE    COPY  OUTDD=OUTDD,INDD=INDD
*
* THIS PROGRAM WILL RUN ON THE OS/VS COBOL COMPILER RELEASE 3 OR
* HIGHER

 ENVIRONMENT DIVISION.
 INPUT-OUTPUT SECTION.
 FILE-CONTROL.

*    DEFINE OUTPUT DEVICE

     SELECT TRMPRT ASSIGN TO UT-S-SYSPRT.
 DATA DIVISION.
 FILE SECTION.

     DEFINE OUTPUT FILE

 FD  TRMPRT
     LABEL RECORDS ARE OMITTED
     RECORD CONTAINS 133 CHARACTERS.

*    DEFINE OUTPUT RECORD

 01  OUTREC.
     02 OUT-LINE     PICTURE X(133).
 
 WORKING-STORAGE SECTION.

*    DEFINE OUTPUT RECORD FORM

 01  OUT-RECORD.
     02 CONTROL-CHAR PICTURE X VALUE SPACE.
     02 COMMENT      PICTURE X(25).
     02 OUT-VALUE    PICTURE +++++++++9.
     02 FILLER       PICTURE X(111) VALUE SPACES.

*    DEFINE COMMENT VALUES FOR OUTPUT RECORD FORM

 01  RETURN-COMMENT PICTURE X(25) VALUE 'FUNCTION RETURN CODE IS  '.
 01  REASON-COMMENT PICTURE X(25) VALUE '     TSF REASON CODE IS '.
 01  ABEND-COMMENT  PICTURE X(25) VALUE 'FUNCTION ABEND  CODE IS  '.
 
*    DEFINE FLAGS TO BE FULL WORDS WITH APPROPRIATE BITS ON

 01  FLAG1-ON  PICTURE S9(9) VALUE +16777216 COMP.
 01  FLAG2-ON  PICTURE S9(9) VALUE +65536 COMP.
 01  FLAG3-ON  PICTURE S9(9) VALUE +256 COMP.
 01  FLAG4-ON  PICTURE S9(9) VALUE +2 COMP.
 01  FLAG1-OFF PICTURE S9(9) VALUE +0 COMP.
 01  FLAG2-OFF PICTURE S9(9) VALUE +0 COMP.
 01  FLAG3-OFF PICTURE S9(9) VALUE +0 COMP.
 01  FLAG4-OFF PICTURE S9(9) VALUE +1 COMP.
 
* DEFINE STORAGE FOR PARMS
*    PARM1 IS DECIMAL VALUE OF FLAGS
*    PARM2 IS FUNCTION TEXT
*    PARM3 IS FUNCTION LENGTH (SET TO 80)
*    PARM4 IS FUNCTION RETURN CODE VALUE FROM TSOLNK
*    PARM5 IS TSF REASON CODE VALUE FROM TSOLNK
*    PARM6 IS FUNCTION ABEND CODE VALUE FROM TSOLNK

 01  PARM1 PICTURE S9(9) COMP.
 01  PARM2 PICTURE X(80).
 01  PARM3 PICTURE S9(9) VALUE +80 COMP.
 01  PARM4 PICTURE S9(9) VALUE +0 COMP.
 01  PARM5 PICTURE S9(9) VALUE +0 COMP.
 01  PARM6 PICTURE S9(9) VALUE +0 COMP.
 
 PROCEDURE DIVISION.

*    MOVE DESIRED FUNCTION TO PARM2

 READY-COMMAND.
     MOVE SPACES TO PARM2.
     MOVE 'IEBCOPY' TO PARM2.

*    SET FLAGS BY ADDING APPROPRIATELY VALUED FLAG VARIABLES
 
 READY-FLAGS.
     MOVE 0 TO PARM1.

*    RESERVED FLAG

     ADD FLAG1-OFF TO PARM1.

*    RESERVED FLAG

     ADD FLAG2-OFF TO PARM1.

*    FLAG3-ON TO REQUEST ABEND WITH DUMP

     ADD FLAG3-ON  TO PARM1.

*    FLAG4-OFF TO REQUEST A TSO/E PROGRAM (NOT A COMMAND) BE INVOKED

     ADD FLAG4-ON TO PARM1.

*    CALL TSOLNK
 
 CALL-TSOLNK.
     CALL 'TSOLNK' USING PARM1 PARM2 PARM3 PARM4 PARM5 PARM6.

*    PRINT RESULTS

 PRINT-COMMENTS.
     OPEN OUTPUT TRMPRT.

*    PRINT THE FUNCTION RETURN CODE

     MOVE RETURN-COMMENT TO COMMENT.
     MOVE PARM4 TO OUT-VALUE.
     WRITE OUTREC FROM OUT-RECORD.

*    PRINT THE TSF REASON CODE

     MOVE REASON-COMMENT TO COMMENT.
     MOVE PARM5 TO OUT-VALUE.
     WRITE OUTREC FROM OUT-RECORD.

*    PRINT THE FUNCTION ABEND CODE

     MOVE ABEND-COMMENT TO COMMENT.
     MOVE PARM6 TO OUT-VALUE.
     WRITE OUTREC FROM OUT-RECORD.

     CLOSE TRMPRT.
     STOP RUN.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014