A DTS Programming Example in COBOL

You may download the original source files from here.

The application front-end module in COBOL
The application back-end module in COBOL



Front-end

IDENTIFICATION DIVISION.
PROGRAM-ID.    EXAMPLEFE.        
DATE-WRITTEN.  26-NOV-1991.
DATE-COMPILED.
*
*
*          Example DTS front-end application
*
*          Perform a simple query to the remote handler HELLO
*
*          Language:            VAX COBOL
*          Date:                26-NOV-1991
*
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
*
WORKING-STORAGE SECTION.
*
*** Structure definition for DTS input message
*** Remote node name, function code, handler name and application
*** data (our nickname) are initialized directly here.
*
01  INPUT-BUFFER.
    05  HEADER.
        10  TIMESTAMP       PIC X(12)        VALUE SPACES.
        10  MSG-STATUS      PIC X            VALUE SPACES.
        10  SENDER          PIC X(8)         VALUE SPACES.
        10  RECEIVER        PIC X(8)         VALUE 'REMOTE  '.
        10  FUNCTION-CODE   PIC X(2)         VALUE '01'.
        10  HANDLER         PIC X(8)         VALUE 'HELLO   '.
    05  USER-INPUT-DATA     PIC X(31900)     VALUE 'TestProgram'.
*
*** Input message actual length
*** DTS header length (39) + our nickname (11) = 50
*
01  INPUT-LENGTH            PIC 9(4) COMP    VALUE +50.
*
*** Structure definition for DTS output message
*
01  OUTPUT-BUFFER.
    05  RETURN-CODE         PIC X(2).
    05  USER-OUTPUT-DATA    PIC X(31900)     VALUE LOW-VALUE.
*
*** Output message actual length
*** Initial value is the length of DTS return code (2)
*
01  OUTPUT-LENGTH           PIC 9(4) COMP    VALUE 2.
*
PROCEDURE DIVISION.
*
MAIN-PROGRAM.                                                       
*   
*** Call DTS front-end service routine YFIAPPC
*
    CALL "YFIAPPC" USING  INPUT-BUFFER,
                          INPUT-LENGTH,
                          OUTPUT-BUFFER,
                          OUTPUT-LENGTH.
*
*** If the call succeeded, display received response message
*** Otherwise display DTS return code and error message
*
    IF  RETURN-CODE = '00'  THEN
        COMPUTE  OUTPUT-LENGTH  =  OUTPUT-LENGTH - 2
        DISPLAY  'Message received :'
        DISPLAY  USER-OUTPUT-DATA(1:OUTPUT-LENGTH)
    ELSE
        DISPLAY  'Call failed: ',OUTPUT-BUFFER(1:OUTPUT-LENGTH)
    END-IF.
*                                                           
*** Terminate the program
*
    STOP RUN.
*
*** End of source


Back-end

IDENTIFICATION DIVISION.
PROGRAM-ID.    HELLO.            
DATE-WRITTEN.  26-NOV-1991.
DATE-COMPILED.
*
*
*          Example DTS back-end application
*
*          Return a simple 'Hello' message to the calling f/e.
*
*          Language:            VAX COBOL
*          Date:                26-NOV-1991
*
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
*
LINKAGE SECTION.
*
*** Function call parameter definitions
*
01  INPUT-BUFFER.   
    05  HEADER                  PIC X(39).
    05  USER-INPUT-DATA         PIC X(31900).   
*
01  INPUT-LENGTH                PIC 9(4) COMP.                   
*                              
01  OUTPUT-BUFFER.
    05  RETURN-CODE             PIC X(2).
    05  USER-OUTPUT-DATA        PIC X(31900).                     
*
01  OUTPUT-LENGTH               PIC 9(4) COMP.                    
*
PROCEDURE DIVISION USING INPUT-BUFFER, 
                         INPUT-LENGTH, 
                         OUTPUT-BUFFER,
                         OUTPUT-LENGTH.
*
ROUTINE-ITSELF.
*                                        
*** Format response message to the output buffer
*
    MOVE     "Hello " TO USER-OUTPUT-DATA.
    COMPUTE  OUTPUT-LENGTH  =  INPUT-LENGTH - 39.
    MOVE     USER-INPUT-DATA(1:OUTPUT-LENGTH) TO USER-OUTPUT-DATA(7:).
    COMPUTE  OUTPUT-LENGTH  =  OUTPUT-LENGTH + 7.
    MOVE     ". I'm your remote routine" TO USER-OUTPUT-DATA(OUTPUT-LENGTH:).
*
*** Output length is finally our response data + 2-byte DTS return code
*
    COMPUTE  OUTPUT-LENGTH  =  OUTPUT-LENGTH + 25 + 2.
*
*** End of subroutine task
*
    EXIT PROGRAM.
*
*** End of source
*


© Copyright 2000 Tascomm Engineering Oy Home  Company  Products  Services  Customers  News