|
Support & Downloads
Technical Documents
Document Types
White Paper-Technical
COBOL II OS Sample: RSP8C Written in Open Server/CICS This document contains COBOL II OS code sample for RSP8C written in Opoen Server/CICS. |
  | |
IDENTIFICATION DIVISION.
PROGRAM-ID. OSCICS8C.
DATE-WRITTEN. 09/17/96.
DATE-COMPILED.
******************************************************************
**
** (c) 1995 by Sybase, Inc. All Rights Reserved
**
******************************************************************
******************************************************************
** PROGRAM: OSCICS8C TRAN:SY8C....
**
** THIS PROGRAM IS A THE OPEN SERVER VERSION OF RSP8C. RECEIVES
** A TEXT INPUT STRING(10,000 BYTES) AND RETURNS IT IN A 50 BYTE
** COLUMN ONE ROW AT A TIME...
** Example: exec sy8c 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
******************************************************************
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 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 VALUE +0.
05 J PIC S9(4) COMP VALUE +0.
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.
01 WS-MSG-WORK-VARS.
05 MSG-NR PIC S9(9) COMP VALUE +9999.
01 WS-INPUT-LEN PIC s9(9) COMP VALUE +10000.
01 WS-INPUT-DATA-HDR.
03 WS-INPUT-DATA PIC X(10000) VALUE SPACES.
03 WS-INPUT-REDEFINE REDEFINES WS-INPUT-DATA.
05 WS-INPUT-TABLE OCCURS 10000 TIMES.
10 WS-INPUT-CHAR PIC X.
01 WS-OUTPUT-DATA-HDR.
03 WS-OUTPUT-DATA PIC X(50) VALUE SPACES.
03 WS-OUTPUT-REDEFINE REDEFINES WS-OUTPUT-DATA.
05 WS-OUTPUT-TABLE OCCURS 50 TIMES.
10 WS-OUTPUT-CHAR PIC X.
01 WS-OUTPUT-COL-NAME PIC X(13)
VALUE 'OUTPUT_COLUMN'.
******************************************************************
* 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 9(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 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 RECEIVE THE
* RPC PARM........
******************************************************
*==> 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
****************************************************************
*---> Find out how many parms are being passed <---*
CALL 'TDNUMPRM' USING GWL-PROC, GWL-NUMPRM-PARMS.
*---> More than one pump back a message <---*
IF GWL-NUMPRM-PARMS not = +1 THEN
MOVE 'Invalid Number of Parameters'
TO WS-MSG-TEXT
MOVE GWL-RC TO WS-MSG-RC
MOVE 'TDNUMPRM' TO WS-MSG-FUNC
PERFORM 920-SEND-MESSAGE THRU 920-EXIT
PERFORM 910-ERR-PROCESS THRU 910-EXIT
END-IF
*---> Get that parm into into the host varible <---*
IF GWL-NUMPRM-PARMS = +1 THEN
CALL 'TDRCVPRM' USING GWL-PROC, GWL-RC,

