Sybase Business Intelligence Solutions - Database Management, Data Warehousing Software, Mobile Enterprise Applications and Messaging
  Worldwide [Change] Contact Us  |  My Sybase  |   |  Shopping Cart - Buy Business Intelligence Products - Database Management, Data Warehousing and Mobile Software  
view all search results


Support & Downloads / Technical Documents / Document Types / White Paper-Technical / COBOL II OS Sample: RSP8C Written in Open Server/C...

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.
 
Share Tell a Friend Print This Page

      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,