|
Support & Downloads
Technical Documents
Document Types
White Paper-Technical
COBOL II OS Sample: RSP4C Written in Open Server/CICS This document contains COBOL II OS code sample for RSP4C Written in Open Server/CICS. |
  | |
IDENTIFICATION DIVISION.
PROGRAM-ID. OSCICS4C.
DATE-WRITTEN. 12/17/96.
DATE-COMPILED.
******************************************************************
**
** (c) 1995 by Sybase, Inc. All Rights Reserved
**
******************************************************************
******************************************************************
** PROGRAM: OSCICS4C
**
** THIS PROGRAM IS A THE OPEN SERVER VERSION OF RSP4C.
** It will receive one of 2 Keywords @ERRORMSG or @WARNMSG and
** Other Keywords. Will reply with the keywords and data.
** If @ERRORMSG AND/OR @WARNMSG are 'Y' that type of message
** will be returned...
** exec SY4C @WARNMSG=Y,@ERRORMSG=Y.........
******************************************************************
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
******************************************************************
* COPY IN THE OS SERVER LIBRARYS
******************************************************************
COPY SYGWCOB.
******************************************************************
*OPEN SERVER WORK VARIBLES FOR OS CALL TO USE ...
******************************************************************
01 WS-GWL-WORK-VARIBLES.
05 GWL-PROC POINTER.
05 GWL-INIT-HANDLE POINTER.
05 GWL-RC PIC S9(9) COMP.
05 GWL-INFPRM-ID PIC S9(9) COMP.
05 GWL-INFPRM-TYPE PIC S9(9) COMP.
05 GWL-INFPRM-DATA-L PIC S9(9) COMP.
05 GWL-INFPRM-MAX-DATA-L PIC S9(9) COMP.
05 GWL-INFPRM-STATUS PIC S9(9) COMP.
05 GWL-INFPRM-NAME PIC X(30).
05 GWL-INFPRM-NAME-L PIC S9(9) COMP.
05 GWL-INFPRM-USER-DATA PIC S9(9) COMP.
05 GWL-INFUDT-USER-TYPE PIC S9(9) COMP.
05 GWL-STATUS-NR PIC S9(9) COMP.
05 GWL-STATUS-DONE PIC S9(9) COMP.
05 GWL-STATUS-COUNT PIC S9(9) COMP.
05 GWL-STATUS-COMM PIC S9(9) COMP.
05 GWL-COMM-STATE PIC S9(9) COMP.
05 GWL-STATUS-RETURN-CODE PIC S9(9) COMP.
05 GWL-STATUS-SUBCODE PIC S9(9) COMP.
05 GWL-NUMPRM-PARMS PIC S9(9) COMP.
05 GWL-RCVPRM-DATA-L PIC S9(9) COMP.
05 GWL-SETPRM-ID PIC S9(9) COMP.
05 GWL-SETPRM-TYPE PIC S9(9) COMP.
05 GWL-SETPRM-DATA-L PIC S9(9) COMP.
05 GWL-SETPRM-USER-DATA PIC S9(9) COMP.
05 GWL-CONVRT-SCALE PIC S9(9) COMP VALUE 2.
05 GWL-SETBCD-SCALE PIC S9(9) COMP VALUE 0.
05 GWL-INFBCD-LENGTH PIC S9(9) COMP.
05 GWL-INFBCD-SCALE PIC S9(9) COMP.
05 GWL-RETURN-ROWS PIC S9(9) COMP VALUE +0.
05 SNA-CONN-NAME PIC X(8) VALUE SPACES.
05 SNA-SUBC PIC S9(9) COMP.
05 WRK-DONE-STATUS PIC S9(9) COMP.
05 GWL-ACTUAL-LEN PIC S9(9) COMP.
05 GWL-TRAN-LEN PIC S9(9) COMP.
05 GWL-MSG-LEN PIC S9(9) COMP.
05 WS-NUMPRM-PARMS PIC S9(9) COMP.
05 GWL-REQUEST-TYP PIC S9(9) COMP.
05 GWL-RPC-NAME PIC X(30) VALUE SPACES.
05 GWL-COMM-STATE PIC S9(9) COMP.
05 I PIC S9(9) COMP.
05 WS-ERROR-MSG PIC S9(9) COMP VALUE ZERO.
05 WS-ERROR-SEV PIC S9(9) COMP VALUE ZERO.
01 DESCRIPTION-FIELDS.
05 COLUMN-NUMBER PIC S9(09) COMP VALUE +0.
05 HOST-TYPE PIC S9(09) COMP VALUE +0.
05 HOST-LEN PIC S9(09) COMP VALUE +0.
05 COLUMN-LEN PIC S9(09) COMP VALUE +0.
05 COLUMN-NAME-LEN PIC S9(09) COMP VALUE +0.
05 WS-ZERO PIC S9(09) COMP VALUE +0.
01 WS-MSG-WORK-VARS.
05 MSG-NR PIC S9(9) COMP VALUE +9999.
01 WS-INPUT-LEN PIC S9(9) COMP VALUE +55.
01 WS-INPUT-DATA PIC X(55) VALUE SPACES.
01 WS-LENGTH PIC S9(9) COMP VALUE ZERO.
01 WS-WARNMSG PIC X(8) VALUE '@WARNMSG'.
01 WS-WARNMSG-ID PIC S9(9) COMP VALUE ZERO.
01 WS-WARNMSG-88 PIC X(1) VALUE 'N'.
88 WARNING-MSG VALUE 'Y'.
01 WS-ERRORMSG PIC X(9) VALUE '@ERRORMSG'.
01 WS-ERRORMSG-ID PIC S9(9) COMP VALUE ZERO.
01 WS-ERRORMSG-88 PIC X(1) VALUE 'N'.
88 ERROR-MSG VALUE 'Y'.
01 WS-OUTPUT-DATA PIC X(55) VALUE SPACES.
01 WS-OUTPUT-COL-NAME PIC X(13)
VALUE 'OUTPUT_COLUMN'.
01 WS-QUEUE-NAME.
05 WS-TRANID PIC X(4) VALUE 'SY3C'.
05 WS-TRMID PIC X(4) VALUE SPACES.
01 CICSRC PIC S9(8) COMP.
01 CICSRC-DIS PIC S9(8).
******************************************************************
* MESSAGES *
******************************************************************
01 WS-MSG.
05 FILLER PIC X(17)
VALUE 'ERROR IN OS CALL '.
05 WS-MSG-FUNC PIC X(10).
05 FILLER PIC X(04)
VALUE 'RC='.
05 WS-MSG-RC PIC S9(9).
05 FILLER PIC X(18)
VALUE ' SUBCODE ERROR = '.
05 MSG-SUBC PIC 9(9) VALUE 0.
05 WS-MSG-TEXT PIC X(50) VALUE SPACES.
01 WS-HOLD-MSG PIC X(107) VALUE SPACES.
01 WS-WARN-MSG PIC X(107) VALUE
'THIS IS A WARNING MESSAGE........'.
01 WS-ERR-MSG PIC X(107) VALUE
'THIS IS A ERROR MESSAGE........'.
01 WORK-SRVIN-INFO.
05 WK-INFO-TBL-ID PIC S9(8) COMP.
05 WK-INFO-TBL-NAME PIC X(30).
05 WK-INFO-TBL-VALUE PIC X(10).
LINKAGE SECTION.
**************************************************************
* THE LINKAGE SECTION DEFINES MASKS FOR DATA AREAS THAT ARE
* PASSED BETWEEN THIS PROGRAM.
**************************************************************
01 DFHCOMMAREA PIC X(1).
PROCEDURE DIVISION.
000-MAIN-PROCESSING.
PERFORM 100-INITIALIZE THRU 100-EXIT.
PERFORM 200-PROCESS-INPUT THRU 200-EXIT.
PERFORM 300-PROCESS-OUTPUT THRU 300-EXIT.
PERFORM 900-ALL-DONE THRU 900-EXIT.
GOBACK.
000-EXIT.
EXIT.
100-INITIALIZE.
******************************************************
* INTIALIZED THE TDS CONNECTION AND CONFIRM THAT IS
* WAS AN RPC CALL, ........
******************************************************
*==> INITIAL QUEUE NAME <===*
MOVE EIBTRMID TO WS-TRMID.
*==> ESTABLISH GATEWAY ENVIRONMENT <===*
CALL 'TDINIT' USING DFHEIBLK, GWL-RC, GWL-INIT-HANDLE.
IF GWL-RC NOT = TDS-OK THEN
PERFORM 910-ERR-PROCESS THRU 910-EXIT
END-IF.
*==> ACCEPT CLIENT REQUEST <===*
CALL 'TDACCEPT' USING GWL-PROC, GWL-RC, GWL-INIT-HANDLE,
SNA-CONN-NAME, SNA-SUBC.
IF GWL-RC NOT = TDS-OK THEN
PERFORM 910-ERR-PROCESS THRU 910-EXIT
END-IF.
*==> TO MAKE SURE WE WERE STARTED BY RPC REQUEST... <===*
CALL 'TDINFRPC' USING GWL-PROC, GWL-RC,
GWL-REQUEST-TYP, GWL-RPC-NAME,
GWL-COMM-STATE.
IF GWL-RC NOT = TDS-OK OR
GWL-REQUEST-TYP NOT = TDS-RPC-EVENT
THEN
MOVE GWL-RC TO WS-MSG-RC
MOVE 'TDINFRPC' TO WS-MSG-FUNC
PERFORM 920-SEND-MESSAGE THRU 920-EXIT
PERFORM 910-ERR-PROCESS THRU 910-EXIT
END-IF.
100-EXIT.
EXIT.
200-PROCESS-INPUT.
****************************************************************
* RECEIVE THE INPUT PARAMETER INTO HOST VARIBLE, SEND ROW DATA *
* BACK DOWN TO CLIENT *
**************************************************************** <

