IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

To have multiple OPEN-CLOSE for a file in a COBOL program?


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Fri Jan 04, 2008 1:09 pm
Reply with quote

Hi,

If we issue multiple OPEN & CLOSE for the same file in a single COBOL program, then does it affects the processing in any manner?

As an application engineer I'm done with one code to work for me, but with multiple OPEN/CLOSE. At system level, what is changed I'm not sure..I'm not sure even if this is a valid question at first place?

Can anyone please let me know, if some one has some clue about this.
Back to top
View user's profile Send private message
Francois Guillez

New User


Joined: 19 Dec 2007
Posts: 7
Location: Paris, France

PostPosted: Fri Jan 04, 2008 2:05 pm
Reply with quote

What do you mean, "System level" ?
When you write a file then close it, every record is physically written, you can't go back, that's all.

Francois
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Fri Jan 04, 2008 2:07 pm
Reply with quote

the disp and the type of open you execute is important.

OPEN OUTPUT or OPEN EXTEND

disp= shr or old and OPEN OUTPUT - each open starts the file at the begining and destroys any write from a previous open.

disp = mod shr or old and OPEN EXPEND - each open appends to the end of the file.
Back to top
View user's profile Send private message
ahalyah

New User


Joined: 13 Dec 2007
Posts: 25
Location: india

PostPosted: Fri Jan 04, 2008 2:21 pm
Reply with quote

As my knowledge if we use multiple open and close for a single file then it will take more time for the processing. Better to use single open and close.
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Fri Jan 04, 2008 4:26 pm
Reply with quote

Hi,

Thanks for the replies.

Quote:
What do you mean, "System level" ?

I mean for how much time program'll be in the CPU buffer if I use multiple OPEN/CLOSE. Does it (CPU usage) significatly increase with muliple OPEN/CLOSE?

yeah, thanks Dick, I started with these concepts but for this..
Quote:
disp = mod shr or old and OPEN EXPEND - each open appends to the end of the file.

my program was not responding well, file was OPENed in I-O mode & was nothing into it when I ran the corrresponding JCL..I paste here the code with single OPEN/CLOSE...

Code:
       IDENTIFICATION DIVISION.
       PROGRAM-ID.    XX914000.
       AUTHOR.        RBP TEAM.
       DATE-WRITTEN.  DECEMBER, 2007.
       DATE-COMPILED.

      ******************************************************************
      *                       MAINTENANCE LOG                          *
      ******************************************************************
      *  ID  *   DATE   * DESCRIPTION OF CHANGE                        *
      ******************************************************************
      ******************************************************************
      * XXXXXX??/??/?? * INITIAL RELEASE.                             *
      *      *          *                                              *
      ******************************************************************
      /
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.

           SELECT  LEDGER-CNTRL-FILE     ASSIGN  EPLEDDAT
           FILE STATUS IS WS-LEDG-CNTRL-FILE.                           00033000

       DATA DIVISION.
      ******************************************************************
      *                       INPUT OUTPUT FILES                       *
      ******************************************************************
       FILE SECTION.

       FD  LEDGER-CNTRL-FILE
           RECORDING MODE IS F
           BLOCK CONTAINS 0 RECORDS
           LABEL RECORDS ARE STANDARD
#2317A     DATA RECORD IS LEDGER-CNTRL-FILE-REC.

       01  LEDGER-CNTRL-FILE-REC.
           COPY EPLEGDA1 REPLACING ==:TAG:== BY == ==.

      /
      ******************************************************************
      *                       WORKING-STORAGE                          *
      ******************************************************************
       WORKING-STORAGE SECTION.

       01  WS00-BEGIN.
           05  WS00-BEGIN-LIT          PIC X(31) VALUE
               'XX914000 WORKING-STORAGE BEGINS'.

      /
      ******************************************************************
      *                       CALL MODULES                             *
      ******************************************************************
       01  CALL-ROUTINES.
           05  CEE3ABD                 PIC X(08) VALUE 'CEE3ABD'.

      ******************************************************************
      *                    MISCELLENOUS VARIABLES                      *
      ******************************************************************
       01  MISCELLENOUS-VARIABLES.
           05  WS-UNLOAD-FILE          PIC X(2) VALUE SPACES.
           05  WS-LEDG-CNTRL-FILE      PIC X(2) VALUE SPACES.
           05  NUM-DISP-11             PIC --,---,---,--9.
           05  NUM-DISP-15             PIC ----,---,---,--9.99.

       01 W-TIMING                    PIC  S9(15)    COMP-3             00139300
                                                 VALUE ZEROES.          00139400
       01 WS-ABEND-CODE               PIC  S9(15)    COMP-3             00139500
                                                 VALUE ZEROES.          00139600

#2317A 01  WS-SWITCHES.
#2317A 05  FIRST-SW                PIC X(01)     VALUE 'Y'.
#2317A     88  FIRST-CALL                        VALUE 'Y'.
#2317A     88  NOT-FIRST-CALL                    VALUE 'N'.
#2317A  01  WS-LEDGER-CNTRL-FILE-REC.
#2317A      COPY EPLEGDA1 REPLACING ==:TAG:== BY ==WS-==.
      ******************************************************************
      *                       INTERNAL TABLES                          *
      ******************************************************************
      *    UNLOAD TABLES.
        01 UNLOAD-TABLE.
         02 UNLOAD-TABLE-DATA OCCURS 1000 TIMES INDEXED BY WS-INDEX.
#2317A    05 UNLD-PAY-CENTER-CODE    PIC X(2).
#2317A    05 UNLD-KEY-AREA           PIC X(8).
#2317A    05 UNLD-FIN-ITEM-CODE      PIC X(1).
#2317A    05 UNLD-BATCH-CODE         PIC X(3).
#2317A    05 UNLD-BATCH-SUB-CODE     PIC X(2).
#2317A    05 UNLD-FEE-CODE           PIC X(2).
#2317A    05 UNLD-AMOUNT             PIC S9(15)V99.
#2317A    05 UNLD-ITEM-COUNT         PIC S9(15).
#2317A    05 UNLD-RATE-FEE-IND       PIC X(1).
#2317A    05 UNLD-PIG-IND            PIC X(1).
#2317A    05 UNLD-PAY-IND            PIC X(1).
#2317A    05 UNLD-BUSS-CENTER        PIC X(2).
#2317A    05 UNLD-SORT-CENTER        PIC X(3).
#2317A    05 UNLD-PRODUCT-CODE       PIC 9(3).
#2317A    05 UNLD-RETURN-CODE        PIC X(2).
#2317A    05 UNLD-JETS-REF-ID1       PIC X(15).
#2317A    05 UNLD-JETS-REF-ID2       PIC X(15).
        01 WS-JETS-KEY-AREA1         PIC X(8) VALUE SPACES.

      ******************************************************************
      *                       FLAGS                                    *
      ******************************************************************
       01 WS-FLAGS.
          05 WS-FILE-1                   PIC X(1) VALUE ' '.
             88 END-OF-FILE1             VALUE 'Y'.
          05 WS-FILE-2                   PIC X(1) VALUE ' '.
             88 END-OF-FILE2             VALUE 'Y'.
          05 WS-SOURCE                   PIC X(1) VALUE ' '.
             88 SOURCE-FOUND             VALUE 'Y'.
             88 SOURCE-NOT-FOUND         VALUE 'N'.
          01 SEARCH-SOURCE               PIC X(8) VALUE  SPACES.

      ******************************************************************
      *                    LINKAGE SECTION                             *
      ******************************************************************
       LINKAGE SECTION.

       01  PASSED-AREA.
           COPY EPLEGDAT.
      /
      ******************************************************************
      *                    PROCEDURE DIVISION                          *
      ******************************************************************
       PROCEDURE DIVISION USING PASSED-AREA.

      ******************************************************************
      *                    MAINLINE PARA                               *
      ******************************************************************
       0000-MAINLINE.
           DISPLAY '0000-MAINLINE'

           MOVE SPACES TO XX914PRM-RETURN-CODE.

           PERFORM 1000-EDIT-FUNCTION.

           IF  XX914PRM-RETURN-CODE = SPACES
               PERFORM 2000-PROCESS-REQUEST.
           GOBACK.

      ******************************************************************
      *  CHECK FOR THE VALID FUNCTION FROM LINKAGE AREA                *
      ******************************************************************

       1000-EDIT-FUNCTION.
           DISPLAY '1000-EDIT-FUNCTION'

           EVALUATE XX914PRM-SOURCE
             WHEN 'OPEN    '
             WHEN 'VERWRITE'
             WHEN 'CLOSE   '
               CONTINUE
             WHEN OTHER
               MOVE 'F1' TO XX914PRM-RETURN-CODE
#2317A         DISPLAY'CALLING PROGRAM IS MOVING WRONG SOURCE-CODE..F1'
               PERFORM 7220-DISPLAY-F1
           END-EVALUATE.

      ******************************************************************
      * PROCESS THE SOURCE PASSED FROM THE LINKAGES
      ******************************************************************

       2000-PROCESS-REQUEST.
           DISPLAY '2000-PROCESS-REQUEST'
           EVALUATE  XX914PRM-SOURCE
             WHEN 'OPEN    '
#2317A       DISPLAY'OPEN'
               PERFORM 2200-OPEN-INPUT-MODE
             WHEN 'VERWRITE'
#2317A       DISPLAY'VERWRITE'
               PERFORM 2400-VERIFY-AND-WRITE
             WHEN 'CLOSE   '
#2317A       DISPLAY'CLOSE   '
               PERFORM 2800-CLOSE.

      /*****************************************************************
      * OPEN THE INPUT FILES IN INPUT MODE                             *
      ******************************************************************

       2200-OPEN-INPUT-MODE.
           DISPLAY '2200-OPEN-INPUT-MODE'

           OPEN INPUT  LEDGER-CNTRL-FILE.

           DISPLAY ' FILE STATUS CODE = ' WS-LEDG-CNTRL-FILE            0000000

              IF WS-LEDG-CNTRL-FILE        NOT = '00'                   0000000
               DISPLAY ' XX914PRM ABENDING '                            0000000
               DISPLAY ' PARAGRAPH 2200-OPEN-INPUT-MODE      '          0000000
               DISPLAY ' ERROR IN OPENING LEDGER-CNTRL-FILE'            0000000
               DISPLAY ' FILE STATUS CODE = ' WS-LEDG-CNTRL-FILE        0000000
               MOVE    +4002             TO WS-ABEND-CODE               0000000
               PERFORM 9999-ABEND        THRU 9999-EXIT                 0000000
              END-IF.                                                   0000000

      /*****************************************************************
      * OPEN THE INPUT FILES IN INPUT-OUTPUT MODE (I-O)                *
      ******************************************************************

       2300-OPEN-I-O-MODE.
           DISPLAY '2300-OPEN-I-O-MODE'

           OPEN I-O    LEDGER-CNTRL-FILE.

           DISPLAY ' FILE STATUS CODE = ' WS-LEDG-CNTRL-FILE            0000000

              IF WS-LEDG-CNTRL-FILE        NOT = '00'                   0000000
               DISPLAY ' XX914PRM ABENDING '                            0000000
               DISPLAY ' PARAGRAPH 2300-OPEN-I-O-MODE      '            0000000
               DISPLAY ' ERROR IN OPENING LEDGER-CNTRL-FILE'            0000000
               DISPLAY ' FILE STATUS CODE = ' WS-LEDG-CNTRL-FILE        0000000
               MOVE    +4010             TO WS-ABEND-CODE               0000000
               PERFORM 9999-ABEND        THRU 9999-EXIT                 0000000
              END-IF.                                                   0000000

      /*****************************************************************
      * OPEN THE INPUT FILES IN EXTEND MODE TO APPEND THE NEW SOURCE   *
      ******************************************************************

       2400-OPEN-EXTEND-MODE.
           DISPLAY '2400-OPEN-EXTEND-MODE'

           OPEN EXTEND LEDGER-CNTRL-FILE.

           DISPLAY ' FILE STATUS CODE = ' WS-LEDG-CNTRL-FILE            0000000

              IF WS-LEDG-CNTRL-FILE        NOT = '00'                   0000000
               DISPLAY ' XX914PRM ABENDING '                            0000000
               DISPLAY ' PARAGRAPH 2400-OPEN-EXTEND-MODE      '         0000000
               DISPLAY ' ERROR IN OPENING LEDGER-CNTRL-FILE'            0000000
               DISPLAY ' FILE STATUS CODE = ' WS-LEDG-CNTRL-FILE        0000000
               MOVE    +4010             TO WS-ABEND-CODE               0000000
               PERFORM 9999-ABEND        THRU 9999-EXIT                 0000000
              END-IF.                                                   0000000

      /*****************************************************************
      * VERIFY THE SOURCE / WRITE IN THE OUTPUT FILES                  *
      ******************************************************************
       2400-VERIFY-AND-WRITE.
           DISPLAY '2400-VERIFY-AND-WRITE'
           SET WS-INDEX TO 1.
           PERFORM 8001-READ-CONTROL-FILE UNTIL END-OF-FILE2
           MOVE XX914PRM-KEY-AREA TO SEARCH-SOURCE
           PERFORM 7000-FIND-SOURCE
           DISPLAY 'WS-SOURCE  :' WS-SOURCE
#2317A
           IF SOURCE-FOUND
              PERFORM 2800-CLOSE
              PERFORM 2300-OPEN-I-O-MODE
              DISPLAY " JETS-KEY-AREA : " JETS-KEY-AREA
              INITIALIZE WS-JETS-KEY-AREA1
              PERFORM 8002-READ-CONTROL-FILE UNTIL
SACHIN                           XX914PRM-KEY-AREA  = WS-JETS-KEY-AREA1
#2317A        PERFORM 7160-REWRITE-NEW-SOURCE-PARA
              DISPLAY'SUPPOSE TO RE-WRITE'
            ELSE
              DISPLAY'SUPPOSE TO NEW WRITE'
              PERFORM 2800-CLOSE
              PERFORM 2400-OPEN-EXTEND-MODE
              PERFORM 7150-WRITE-NEW-SOURCE-PARA
           END-IF.
      /*****************************************************************
      * WRTIE NEW SOURCE RECORD IN THE OUTPUT FILE                     *
      ******************************************************************
       7150-WRITE-NEW-SOURCE-PARA.
           DISPLAY '7150-WRITE-NEW-SOURCE-PARA'
#2317A
           MOVE  XX914PRM-PAY-CENTER-CODE  TO WS-JETS-PAY-CENTER-CODE
           MOVE  XX914PRM-KEY-AREA         TO WS-JETS-KEY-AREA
           MOVE  XX914PRM-FIN-ITEM-CODE    TO WS-JETS-FIN-ITEM-CODE
           MOVE  XX914PRM-BATCH-CODE       TO WS-JETS-BATCH-CODE
           MOVE  XX914PRM-BATCH-SUB-CODE   TO WS-JETS-BATCH-SUB-CODE
           MOVE  XX914PRM-FEE-CODE         TO WS-JETS-FEE-CODE
           MOVE  XX914PRM-AMOUNT           TO WS-JETS-AMOUNT
           MOVE  XX914PRM-ITEM-COUNT       TO WS-JETS-ITEM-COUNT
           MOVE  XX914PRM-RATE-FEE-IND     TO WS-JETS-RATE-FEE-IND
           MOVE  XX914PRM-PIG-IND          TO WS-JETS-PIG-IND
           MOVE  XX914PRM-PAY-IND          TO WS-JETS-PAY-IND
           MOVE  XX914PRM-BUSS-CENTER      TO WS-JETS-BUSS-CENTER
           MOVE  XX914PRM-SORT-CENTER      TO WS-JETS-SORT-CENTER
           MOVE  XX914PRM-PRODUCT-CODE     TO WS-JETS-PRODUCT-CODE
           MOVE  XX914PRM-RETURN-CODE      TO WS-JETS-RETURN-CODE

           DISPLAY 'WRITE JETS-AMOUNT    :' WS-JETS-AMOUNT
           DISPLAY 'WRITE JETS-ITEM-COUNT :' WS-JETS-ITEM-COUNT
           WRITE LEDGER-CNTRL-FILE-REC FROM WS-LEDGER-CNTRL-FILE-REC
           DISPLAY ' FILE STATUS CODE = ' WS-LEDG-CNTRL-FILE            0000000

           DISPLAY 'JETS-AMOUNT AFTER WRITE  :' JETS-AMOUNT
           DISPLAY 'JETS-ITEM-COUNT AFTER WRITE :'JETS-ITEM-COUNT.
      /*****************************************************************
      * WRTIE NEW SOURCE RECORD IN THE OUTPUT FILE                     *
      ******************************************************************
       7160-REWRITE-NEW-SOURCE-PARA.
           DISPLAY '7160-REWRITE-NEW-SOURCE-PARA'
#2317A
           MOVE  XX914PRM-PAY-CENTER-CODE  TO WS-JETS-PAY-CENTER-CODE
           MOVE  XX914PRM-KEY-AREA         TO WS-JETS-KEY-AREA
           MOVE  XX914PRM-FIN-ITEM-CODE    TO WS-JETS-FIN-ITEM-CODE
           MOVE  XX914PRM-BATCH-CODE       TO WS-JETS-BATCH-CODE
           MOVE  XX914PRM-BATCH-SUB-CODE   TO WS-JETS-BATCH-SUB-CODE
           MOVE  XX914PRM-FEE-CODE         TO WS-JETS-FEE-CODE
           MOVE  XX914PRM-AMOUNT           TO WS-JETS-AMOUNT
           MOVE  XX914PRM-ITEM-COUNT       TO WS-JETS-ITEM-COUNT
           MOVE  XX914PRM-RATE-FEE-IND     TO WS-JETS-RATE-FEE-IND
           MOVE  XX914PRM-PIG-IND          TO WS-JETS-PIG-IND
           MOVE  XX914PRM-PAY-IND          TO WS-JETS-PAY-IND
           MOVE  XX914PRM-BUSS-CENTER      TO WS-JETS-BUSS-CENTER
           MOVE  XX914PRM-SORT-CENTER      TO WS-JETS-SORT-CENTER
           MOVE  XX914PRM-PRODUCT-CODE     TO WS-JETS-PRODUCT-CODE
           MOVE  XX914PRM-RETURN-CODE      TO WS-JETS-RETURN-CODE

           DISPLAY 'RE-WRITE JETS-AMOUNT     :' WS-JETS-AMOUNT
           DISPLAY 'RE-WRITE JETS-ITEM-COUNT :' WS-JETS-ITEM-COUNT
           REWRITE LEDGER-CNTRL-FILE-REC FROM WS-LEDGER-CNTRL-FILE-REC.


      /*****************************************************************
      * CLOSE ALL THE INPUT-OUTPUT FILES                               *
      ******************************************************************
       2800-CLOSE.
           DISPLAY '2800-CLOSE'

           CLOSE LEDGER-CNTRL-FILE.
           DISPLAY ' FILE STATUS CODE = ' WS-LEDG-CNTRL-FILE            0000000
#2317A     DISPLAY'CLOSE FILE'.
      /*****************************************************************
      *  SEARCH INTERNAL TABLES FOR PASSED SOURCE                      *
      ******************************************************************

       7000-FIND-SOURCE.
           DISPLAY '7000-FIND-SOURCE'

           SET WS-INDEX TO 1.

           SEARCH UNLOAD-TABLE-DATA
             AT END
               SET SOURCE-NOT-FOUND TO TRUE
               DISPLAY'SOURCE NOT FOUND'
             WHEN SEARCH-SOURCE =  UNLD-KEY-AREA(WS-INDEX)
               SET SOURCE-FOUND TO TRUE
           END-SEARCH.

      /*****************************************************************
      *     BALANCE-TOTALS                                             *
      ******************************************************************

      *7100-BALANCE-TOTALS.
      *    PERFORM 7400-VERIFY-NUMERIC
      *    IF XX914PRM-RETURN-CODE = SPACES
      *     IF XX914PRM-ITEM-COUNT   = UN2-ITEM-COUNT   (WS-INDEX2) AND
      *        XX914PRM-AMOUNT       = UN2-AMOUNT       (WS-INDEX2)
      *         CONTINUE
      *     ELSE
      *        MOVE 'B1' TO XX914PRM-RETURN-CODE
      *        PERFORM 7200-DISPLAY-B1
      *      END-IF
      *    END-IF.

      /*****************************************************************
      *    B1 = OUT OF BALANCE.                                        *
      ******************************************************************

      *7200-DISPLAY-B1.
      *
      *    DISPLAY '********************************************'.
      *    DISPLAY '*                                          *'.
      *    DISPLAY '*    *******   XX914000 ERROR   *******    *'.
      *    DISPLAY '*                                          *'.
      *    DISPLAY '*    OUT OF BALANCE CONDITION DETECTED     *'.
      *    DISPLAY '*    SOURCE PREVIOUSLY WRITTEN AND NOT     *'.
      *    DISPLAY '*    BALANCED WITH THE PROGRAM INPUTS      *'.
      *    DISPLAY '*    SOURCE = ' XX914PRM-SOURCE
      *            '                     *'.
      *    DISPLAY '*                                          *'.
      *
      *    PERFORM 7300-DISPLAY-TOTALS.
      *
      *    DISPLAY '*                                          *'.
      *    DISPLAY '********************************************'.


      /*****************************************************************
      *                                                                *
      *    F1 = INVALID FUNCTION REQUESTED.                            *
      *                                                                *
      ******************************************************************

       7220-DISPLAY-F1.
           DISPLAY '7220-DISPLAY-F1'

           DISPLAY '********************************************'.
           DISPLAY '*                                          *'.
           DISPLAY '*    *******   XX914000 ERROR   *******    *'.
           DISPLAY '*                                          *'.
           DISPLAY '*    INVALID FUNCTION - '
                   XX914PRM-SOURCE
                   '           *'.
           DISPLAY '*                                          *'.
           DISPLAY '********************************************'.

      /*****************************************************************
      *                                                                *
      *    S1 = INVALID SOURCE.                                        *
      *                                                                *
      ******************************************************************

       7240-DISPLAY-S1.
           DISPLAY '7240-DISPLAY-S1'

           DISPLAY '********************************************'.
           DISPLAY '*                                          *'.
           DISPLAY '*    *******   XX914000 ERROR   *******    *'.
           DISPLAY '*                                          *'.
           DISPLAY '*    SOURCE NOT VALID                      *'.
           DISPLAY '*                                          *'.
           DISPLAY '*    SOURCE = ' XX914PRM-SOURCE
                   '                     *'.
           DISPLAY '*                                          *'.
           DISPLAY '********************************************'.

      /*****************************************************************
      *                                                                *
      *    DISPLAY TOTALS WHEN AN OUT-OF-BALANCE OCCURS.               *
      *                                                                *
      ******************************************************************

       7300-DISPLAY-TOTALS.
           DISPLAY '7300-DISPLAY-TOTALS'

               MOVE XX914PRM-ITEM-COUNT TO NUM-DISP-11.
               DISPLAY '* PASSED ITEM COUNT       = '
                        NUM-DISP-11
                       '    *'.
      *        MOVE UN2-ITEM-COUNT  (WS-INDEX2) TO NUM-DISP-11.
      *        DISPLAY '* CONTROL FILE ITEM COUNT = '
      *                 NUM-DISP-11
      *                '    *'.
      *        DISPLAY '*                                          *'.

               MOVE XX914PRM-AMOUNT    TO NUM-DISP-15.
               DISPLAY '* PASSED GROSS AMT        = '
                        NUM-DISP-15
                       ' *'.
      *        MOVE UN2-AMOUNT     (WS-INDEX2) TO NUM-DISP-15.
      *        DISPLAY '* CONTROL FILE GROSS AMT  = '
      *                 NUM-DISP-15
      *                ' *'.
      *        DISPLAY '*                                          *'.


      /*****************************************************************
      *                                                                *
      *    ENSURE THAT THE BALANCING FIELDS ARE NUMERIC.               *
      *                                                                *
      ******************************************************************

       7400-VERIFY-NUMERIC.
           DISPLAY '7400-VERIFY-NUMERIC'

           IF XX914PRM-ITEM-COUNT NOT NUMERIC
               MOVE 'B2' TO XX914PRM-RETURN-CODE
               DISPLAY '********************************************'
               DISPLAY '*                                          *'
               DISPLAY '*    *******   XX914000 ERROR   *******    *'
               DISPLAY '*    LINKAGE PASSED                        *'
               DISPLAY '*    ITEM COUNT NOT NUMERIC                *'
               DISPLAY '*                                          *'
               DISPLAY '********************************************'.

           IF XX914PRM-AMOUNT NOT NUMERIC
               MOVE 'B2' TO XX914PRM-RETURN-CODE
               DISPLAY '********************************************'
               DISPLAY '*                                          *'
               DISPLAY '*    *******   XX914000 ERROR   *******    *'
               DISPLAY '*    LINKAGE PASSED                        *'
               DISPLAY '*    GROSS AMOUNT NOT NUMERIC              *'
               DISPLAY '*                                          *'
               DISPLAY '********************************************'.

      /*****************************************************************
      *    READ LEGERING CONTROL FILE.                                 *
      ******************************************************************

       8001-READ-CONTROL-FILE.
           DISPLAY '8001-READ-CONTROL-FILE'

           READ LEDGER-CNTRL-FILE
                 AT END
                    SET END-OF-FILE2 TO TRUE
                 NOT AT END
           DISPLAY ' LEDGER-CNTRL-FILE : ' LEDGER-CNTRL-FILE-REC        0000000
                    PERFORM 2001-LOAD-TABLE.
      /*****************************************************************
      *    READ LEGERING CONTROL FILE TO SET THE POINTER TO REWRITE THE*
      *    POINTER ON THE LINKAGE PASSED SOURCE REFERECNE KEY          *
      ******************************************************************

       8002-READ-CONTROL-FILE.
           DISPLAY '8002-READ-CONTROL-FILE'

           READ LEDGER-CNTRL-FILE
                 AT END
                    SET END-OF-FILE2 TO TRUE
                 NOT AT END
              MOVE JETS-KEY-AREA TO WS-JETS-KEY-AREA1
              DISPLAY WS-JETS-KEY-AREA1
              DISPLAY XX914PRM-KEY-AREA
              IF XX914PRM-KEY-AREA  = JETS-KEY-AREA
                    SET END-OF-FILE2 TO TRUE
              END-IF.
      /*****************************************************************
      *    LOAD INPUT-OUTPUT CONTROL FILE TO THE WS-STORAGE TABLE      *
      ******************************************************************

       2001-LOAD-TABLE.
           DISPLAY '2001-LOAD-TABLE'

           MOVE LEDGER-CNTRL-FILE-REC TO
                                 UNLOAD-TABLE-DATA(WS-INDEX).
           DISPLAY 'UNLOAD-TABLE-DATA(WS-INDEX)'
                            UNLOAD-TABLE-DATA(WS-INDEX)
           DISPLAY 'UNLD-KEY-AREA(WS-INDEX) : ' UNLD-KEY-AREA(WS-INDEX)
           DISPLAY 'XX914PRM-KEY-AREA : '     XX914PRM-KEY-AREA.
           SET WS-INDEX UP BY 1.
      ******************************************************************00284800
      * 9999-ABEND    :                                                *00284900
      * THIS PARA WILL BE USED FOR ABENDING THE PROGRAM                *00285000
      ******************************************************************00285100
                                                                        00285200
       9999-ABEND.                                                      00285300
           DISPLAY '9999-ABEND'
                                                                        00285400
            MOVE +1       TO W-TIMING.                                  00285500
            CALL CEE3ABD USING WS-ABEND-CODE, W-TIMING.                 00285600
                                                                        00285700
       9999-EXIT.                                                       00285800
            EXIT.                                                       00285900
²


I used DISP=(MOD,KEEP,KEEP) in the JCL, but the file was empty.

So I finally I changed the code to open close multiple times...code is working but I'm bit skeptical about the approach.
(hmm.. a lot of traffic I put here..)
Back to top
View user's profile Send private message
Phrzby Phil

Senior Member


Joined: 31 Oct 2006
Posts: 1042
Location: Richmond, Virginia

PostPosted: Fri Jan 04, 2008 6:52 pm
Reply with quote

I for one would find it helpful, when listing an entire program, to excise redundant code that does not bear on the problem.

E.g., all of the MOVE's in 7150- and 7160-.

Try to cut (pun intended) right to the problem.
Back to top
View user's profile Send private message
Anuj Dhawan

Superior Member


Joined: 22 Apr 2006
Posts: 6250
Location: Mumbai, India

PostPosted: Fri Jan 04, 2008 7:02 pm
Reply with quote

Yeah..will keep this point for future..I can not edit it now, sorry.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts FTP VB File from Mainframe retaining ... JCL & VSAM 1
No new posts Extract the file name from another fi... DFSORT/ICETOOL 6
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts Using API Gateway from CICS program CICS 0
Search our Forums:

Back to Top