View previous topic :: View next topic |
Author |
Message |
rajkumarfit Beginner
Joined: 19 Dec 2005 Posts: 8 Topics: 5
|
Posted: Thu Jun 22, 2006 1:01 am Post subject: File closing in cobol |
|
|
Hi,
i have a doubt like, i have a file opened in extended mode and i am writing some records into that file using a program. in case of an abend while the execution the file is closed automatically when the program closes, so all the newly witten records will be there in the file. but i do not want this like this.. i do not want that file to close automatically when the prog closes because of an abend,so that the changes made to that file using that prog will not reflect. is ther any way to do that.
for an example.
i have a file with 100 recs and i am opeing it in Extended mode and adding some more recodes using a prog, while execution if there is an abend in the prog all the newly added rec should go off and the file should have only those old 100 rec.
is there a way to do this. Please help me in this.
Rajkumar |
|
Back to top |
|
 |
shekar123 Advanced
Joined: 22 Jul 2005 Posts: 528 Topics: 90 Location: Bangalore India
|
Posted: Thu Jun 22, 2006 2:40 am Post subject: |
|
|
Rajkumar,
I have tried a sample code and see if my understanding is correct.
Try this code:
Code: |
IDENTIFICATION DIVISION.
PROGRAM-ID. RAJPGM.
AUTHOR. SHEKAR.
DATE-WRITTEN. 01/06/2006.
DATE-COMPILED. 01/06/2006.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
*SOURCE-COMPUTER. IBM-370 WITH DEBUGGING MODE.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUT-FILE ASSIGN TO INFILE
FILE STATUS IS INPUT-FILE-STATUS.
SELECT REPORT-FILE ASSIGN TO RPTFILE
FILE STATUS IS REPORT-FILE-STATUS.
DATA DIVISION.
FILE SECTION.
FD INPUT-FILE
RECORDING MODE IS F
BLOCK CONTAINS 0 CHARACTERS
DATA RECORD IS INPUT-REC.
01 INPUT-REC.
05 FILLER PIC X(80).
FD REPORT-FILE
RECORDING MODE IS F
BLOCK CONTAINS 0 CHARACTERS
DATA RECORD IS REPORT-LINE.
01 REPORT-LINE PIC X(80).
WORKING-STORAGE SECTION.
01 REPORT-REC PIC X(80) VALUE SPACES.
01 WS-COUNT PIC S9(04) COMP VALUE +0.
01 WS-FILE-STATS.
05 INPUT-FILE-STATUS PIC X(02) VALUE ZERO.
88 INPUT-FILE-IO-OKAY VALUE '00'.
88 INPUT-FILE-END VALUE '10'.
05 REPORT-FILE-STATUS PIC X(02) VALUE ZERO.
88 REPORT-FILE-IO-OKAY VALUE '00'.
88 REPORT-FILE-END VALUE '10'.
01 WS-FLAGS.
05 INPUT-EOF-SWITCH PIC X(01) VALUE SPACE.
88 INPUT-NOT-EOF VALUE 'Y'.
88 INPUT-EOF VALUE 'N'.
01 WS-LITERALS.
05 ABEND-MSG PIC X(80).
05 ABEND-STATUS PIC X(02).
PROCEDURE DIVISION.
******************************************************************
* *
* P R O C E D U R E D I V I S I O N *
* *
******************************************************************
000-MAINLINE.
******************************************************************
* THIS PROCEDURE CONTROLS MAIN PROCESSING OF THE PROGRAM. *
******************************************************************
D DISPLAY 'ENTRY TO RAJPGM'.
PERFORM 100-STARTUP THRU 100-STARTUP-EXIT.
PERFORM 200-PROCESS-DATA THRU 200-PROCESS-DATA-EXIT.
PERFORM 300-FINISH THRU 300-FINISH-EXIT.
D DISPLAY 'EXIT FROM RAJPGM'.
000-MAINLINE-EXIT.
GOBACK.
******************************************************************
* THIS PARAGRAPH PERFORMS ALL NECESSARY HOUSEKEEPING *
* WORK.THIS INCLUDES INITIALIZING WORKING-STORAGE VARIABLES *
* AND OPENING FILES REQUIRED FOR PROGRAM PROCESSING. *
******************************************************************
100-STARTUP.
D DISPLAY '100-STARTUP'.
OPEN INPUT INPUT-FILE.
EVALUATE INPUT-FILE-STATUS
WHEN '00'
CONTINUE
WHEN OTHER
DISPLAY '*********** ERROR *******************'
MOVE '100:OPEN FAILED FOR INPUT-FILE' TO ABEND-MSG
MOVE INPUT-FILE-STATUS TO ABEND-STATUS
DISPLAY "*********** ERROR *******************"
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-EVALUATE.
OPEN EXTEND REPORT-FILE.
EVALUATE REPORT-FILE-STATUS
WHEN '00'
CONTINUE
WHEN OTHER
DISPLAY '*********** ERROR *******************'
MOVE '100 :OPEN FAILED FOR REPORT FILE' TO ABEND-MSG
MOVE REPORT-FILE-STATUS TO ABEND-STATUS
DISPLAY '*********** ERROR *******************'
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-EVALUATE.
D DISPLAY '100-STARTUP-EXIT'.
100-STARTUP-EXIT.
EXIT.
110-READ-INPUT-FILE.
******************************************************************
* THIS PROCEDURE *
* CALLS: *
* CALLED BY: 200-PROCESS-DATA *
******************************************************************
D DISPLAY '110-READ-INPUT-FILE'.
INITIALIZE INPUT-REC.
READ INPUT-FILE
AT END
SET INPUT-EOF TO TRUE
NOT AT END
IF INPUT-FILE-STATUS IS EQUAL TO '00'
CONTINUE
ELSE
MOVE '110:READ FAILED FOR INPUT FILE' TO ABEND-MSG
MOVE INPUT-FILE-STATUS TO ABEND-STATUS
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-IF
END-READ.
ADD +1 TO WS-COUNT.
D DISPLAY '110-READ-INPUT-FILE-EXIT'.
110-READ-INPUT-FILE-EXIT.
EXIT.
200-PROCESS-DATA.
******************************************************************
* THIS PROCEDURE CONTROLS THE MAIN PROCESS *
* CALLS: *
* CALLED BY: 000-MAINLINE *
******************************************************************
D DISPLAY '200-PROCESS-DATA'.
SET INPUT-NOT-EOF TO TRUE.
PERFORM 110-READ-INPUT-FILE THRU 110-READ-INPUT-FILE-EXIT.
PERFORM UNTIL INPUT-EOF
MOVE INPUT-REC TO REPORT-REC
WRITE REPORT-LINE FROM REPORT-REC
IF WS-COUNT = 4
PERFORM 999-ABEND-ERROR THRU
999-ABEND-ERROR-EXIT
END-IF
PERFORM 110-READ-INPUT-FILE THRU
110-READ-INPUT-FILE-EXIT
END-PERFORM.
D DISPLAY '200-PROCESS-DATA-EXIT'.
200-PROCESS-DATA-EXIT.
EXIT.
300-FINISH.
******************************************************************
* THIS PROCEDURE *
* CALLS: *
* CALLED BY: 000-MAINLINE *
******************************************************************
D DISPLAY '300-FINISH'.
CLOSE INPUT-FILE.
IF INPUT-FILE-IO-OKAY
CONTINUE
ELSE
DISPLAY '************************************'
MOVE '800: CLOSE FAILED FOR INPUT FILE' TO ABEND-MSG
MOVE INPUT-FILE-STATUS TO ABEND-STATUS
DISPLAY '************************************'
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-IF.
CLOSE REPORT-FILE.
IF REPORT-FILE-IO-OKAY
CONTINUE
ELSE
DISPLAY '*********** ERROR *******************'
MOVE '800 :CLOSE FAILED FOR REPORT FILE' TO ABEND-MSG
MOVE REPORT-FILE-STATUS TO ABEND-STATUS
DISPLAY '*********** ERROR *******************'
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-IF.
D DISPLAY '300-FINISH-EXIT'.
300-FINISH-EXIT.
EXIT.
999-ABEND-ERROR.
******************************************************************
* THIS PROCEDURE CAUSES THE PROGRAM TO STOP IN THE EVENT OF AN *
* ERROR AND INHIBITS FURTHER PROCESSING. *
* CALLS: STOP-RUN. *
******************************************************************
D DISPLAY '999-ABEND-ERROR'.
DISPLAY '*************ERROR*********************'.
DISPLAY 'RAJPGM ENCOUNTERED A FATAL ERROR'.
DISPLAY ABEND-MSG.
IF ABEND-STATUS IS NOT = SPACES
DISPLAY 'ABEND-STATUS = ', ABEND-STATUS
END-IF.
PERFORM STOP-RUN.
D DISPLAY '999-ABEND-ERROR-EXIT'.
999-ABEND-ERROR-EXIT.
EXIT.
STOP-RUN.
STOP RUN.
|
My assumption is i had an input file SHEKAR.TEST.IN from which i am reading records one by one and appending records to an output file SHEKAR.TEST.OUT in which there are already 5 records present.What exactly i am doing is after i read 4 records from the input file i am terminating the program and the only 4 records are appended to the output file (total beocmes 9 ).I am assuming you do not want the 4 records to be appended to the output file and u want the original records 5 in the output file.
Code: |
SHEKAR.TEST.IN
000001 SHEKAR ENGL
000002 KOLUSU COMP
000003 FRANK ENGL
000004 MFUSER ENGL
000005 BPRASANNA COMP
000006 BEEBOP PHYC
000007 RAJ ENGL
000008 MERVYN COMP
000009 MVSFORUMS ENGL
000010 MAINFRAME ENGL
SHEKAR.TEST.OUT BEFORE
000001 1
000002 2
000003 3
000004 4
000005 5
SHEKAR.TEST.OUT AFTER
000001 1
000002 2
000003 3
000004 4
000005 5
000006 SHEKAR ENGL
000007 KOLUSU COMP
000008 FRANK ENGL
000009 MFUSER ENGL
RC=0 SYSOUT
*************ERROR*********************
RAJPGM ENCOUNTERED A FATAL ERROR
ABEND-STATUS =
|
_________________ Shekar
Grow Technically |
|
Back to top |
|
 |
rajkumarfit Beginner
Joined: 19 Dec 2005 Posts: 8 Topics: 5
|
Posted: Thu Jun 22, 2006 4:33 am Post subject: |
|
|
hi Thanks for ur quick reply,
Actually i do not want that 4 recs to be added in the out file. i just want the old 5 recs in the out file if there is an abend. But in ur output after the Execution the 4 recs are added even after the abend.
Rajkuamr |
|
Back to top |
|
 |
kolusu Site Admin

Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
|
Posted: Thu Jun 22, 2006 7:15 am Post subject: |
|
|
rajkumarfit,
Unless you use checkpoint-restart feature there is no way to do what you are asking for. Just curious why do you need to open the dataset in an extended mode?
Kolusu _________________ Kolusu
www.linkedin.com/in/kolusu |
|
Back to top |
|
 |
shekar123 Advanced
Joined: 22 Jul 2005 Posts: 528 Topics: 90 Location: Bangalore India
|
Posted: Thu Jun 22, 2006 7:18 am Post subject: |
|
|
Rajkumar,
Try this code modified by me with two test cases:
1.Case 1 with an abend condition so records will not appended to the output file and i am assuming that after reading 4 records from the input file abend would occur.
2.Case 2 without an abend condition so records will be appended to the output file and i am commenting out the condition that after reading 4 records from the input file abend would not occur.
Code: |
IDENTIFICATION DIVISION.
PROGRAM-ID. RAJPGM.
AUTHOR. SHEKAR.
DATE-WRITTEN. 01/06/2006.
DATE-COMPILED. 01/06/2006.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
*SOURCE-COMPUTER. IBM-370 WITH DEBUGGING MODE.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INPUT-FILE ASSIGN TO INFILE
FILE STATUS IS INPUT-FILE-STATUS.
SELECT REPORT-FILE ASSIGN TO RPTFILE
FILE STATUS IS REPORT-FILE-STATUS.
DATA DIVISION.
FILE SECTION.
FD INPUT-FILE
RECORDING MODE IS F
BLOCK CONTAINS 0 CHARACTERS
DATA RECORD IS INPUT-REC.
01 INPUT-REC.
05 FILLER PIC X(80).
FD REPORT-FILE
RECORDING MODE IS F
BLOCK CONTAINS 0 CHARACTERS
DATA RECORD IS REPORT-LINE.
01 REPORT-LINE PIC X(80).
WORKING-STORAGE SECTION.
01 REPORT-REC PIC X(80) VALUE SPACES.
01 WS-COUNT PIC S9(04) COMP VALUE +0.
01 WS-IDX PIC S9(04) COMP VALUE 1.
01 WS-FILE-STATS.
05 INPUT-FILE-STATUS PIC X(02) VALUE ZERO.
88 INPUT-FILE-IO-OKAY VALUE '00'.
88 INPUT-FILE-END VALUE '10'.
05 REPORT-FILE-STATUS PIC X(02) VALUE ZERO.
88 REPORT-FILE-IO-OKAY VALUE '00'.
88 REPORT-FILE-END VALUE '10'.
01 WS-FLAGS.
05 INPUT-EOF-SWITCH PIC X(01) VALUE SPACE.
88 INPUT-NOT-EOF VALUE 'Y'.
88 INPUT-EOF VALUE 'N'.
05 ABEND-FLAG-SWITCH PIC X(01) VALUE SPACE.
88 ABEND-FLAG-NOT VALUE 'Y'.
88 ABEND-FLAG VALUE 'N'.
01 WS-LITERALS.
05 ABEND-MSG PIC X(80).
05 ABEND-STATUS PIC X(02).
******************************************************************
* INTERNAL TABLE USED FOR STORING DATA *
******************************************************************
01 WS-TABLE.
05 WS-CNT PIC S9(04) COMP VALUE 0.
05 WS-MAX-CNT PIC S9(04) COMP VALUE 50.
05 WS-ENTRY OCCURS 50 TIMES.
10 WS-TABLE-RECORD PIC X(80) VALUE SPACES.
PROCEDURE DIVISION.
******************************************************************
* *
* P R O C E D U R E D I V I S I O N *
* *
******************************************************************
000-MAINLINE.
******************************************************************
* THIS PROCEDURE CONTROLS MAIN PROCESSING OF THE PROGRAM. *
******************************************************************
D DISPLAY 'ENTRY TO RAJPGM'.
PERFORM 100-STARTUP THRU 100-STARTUP-EXIT.
PERFORM 200-PROCESS-DATA THRU 200-PROCESS-DATA-EXIT.
PERFORM 300-FINISH THRU 300-FINISH-EXIT.
D DISPLAY 'EXIT FROM RAJPGM'.
000-MAINLINE-EXIT.
GOBACK.
******************************************************************
* THIS PARAGRAPH PERFORMS ALL NECESSARY HOUSEKEEPING *
* WORK.THIS INCLUDES INITIALIZING WORKING-STORAGE VARIABLES *
* AND OPENING FILES REQUIRED FOR PROGRAM PROCESSING. *
******************************************************************
100-STARTUP.
D DISPLAY '100-STARTUP'.
OPEN INPUT INPUT-FILE.
EVALUATE INPUT-FILE-STATUS
WHEN '00'
CONTINUE
WHEN OTHER
DISPLAY '*********** ERROR *******************'
MOVE '100:OPEN FAILED FOR INPUT-FILE' TO ABEND-MSG
MOVE INPUT-FILE-STATUS TO ABEND-STATUS
DISPLAY "*********** ERROR *******************"
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-EVALUATE.
OPEN EXTEND REPORT-FILE.
EVALUATE REPORT-FILE-STATUS
WHEN '00'
CONTINUE
WHEN OTHER
DISPLAY '*********** ERROR *******************'
MOVE '100 :OPEN FAILED FOR REPORT FILE' TO ABEND-MSG
MOVE REPORT-FILE-STATUS TO ABEND-STATUS
DISPLAY '*********** ERROR *******************'
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-EVALUATE.
D DISPLAY '100-STARTUP-EXIT'.
100-STARTUP-EXIT.
EXIT.
110-READ-INPUT-FILE.
******************************************************************
* THIS PROCEDURE *
* CALLS: *
* CALLED BY: 200-PROCESS-DATA *
******************************************************************
D DISPLAY '110-READ-INPUT-FILE'.
INITIALIZE INPUT-REC.
READ INPUT-FILE
AT END
SET INPUT-EOF TO TRUE
NOT AT END
IF INPUT-FILE-STATUS IS EQUAL TO '00'
CONTINUE
ELSE
MOVE '130:READ FAILED FOR INPUT FILE' TO ABEND-MSG
MOVE INPUT-FILE-STATUS TO ABEND-STATUS
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-IF
END-READ.
ADD +1 TO WS-COUNT.
D DISPLAY '110-READ-INPUT-FILE-EXIT'.
110-READ-INPUT-FILE-EXIT.
EXIT.
200-PROCESS-DATA.
******************************************************************
* THIS PROCEDURE CONTROLS THE MAIN PROCESS *
* CALLS: *
* CALLED BY: 000-MAINLINE *
******************************************************************
D DISPLAY '200-PROCESS-DATA'.
SET INPUT-NOT-EOF TO TRUE.
SET ABEND-FLAG-NOT TO TRUE.
PERFORM 110-READ-INPUT-FILE THRU 110-READ-INPUT-FILE-EXIT.
PERFORM UNTIL INPUT-EOF
ADD +1 TO WS-CNT
IF WS-CNT > WS-MAX-CNT
MOVE '200: NOT PROCESSED TABLE CAPACITY EXCEEDED'
TO ABEND-MSG
PERFORM 999-ABEND-ERROR THRU
999-ABEND-ERROR-EXIT
END-IF
MOVE INPUT-REC TO WS-TABLE-RECORD(WS-CNT)
IF WS-COUNT = 4
DISPLAY 'THINK ABEND OCCURED'
SET ABEND-FLAG TO TRUE
PERFORM 999-ABEND-ERROR THRU
999-ABEND-ERROR-EXIT
END-IF
PERFORM 110-READ-INPUT-FILE THRU
110-READ-INPUT-FILE-EXIT
END-PERFORM.
IF ABEND-FLAG
NEXT SENTENCE
ELSE
PERFORM 250-APPEND-PARA THRU
250-APPEND-PARA-EXIT
END-IF.
D DISPLAY '200-PROCESS-DATA-EXIT'.
200-PROCESS-DATA-EXIT.
EXIT.
250-APPEND-PARA.
******************************************************************
* THIS PROCEDURE *
* CALLS: *
* CALLED BY: 200-PROCESS-DATA *
******************************************************************
D DISPLAY '250-APPEND-PARA'.
PERFORM UNTIL WS-IDX > WS-CNT
INITIALIZE REPORT-REC
MOVE WS-TABLE-RECORD(WS-IDX) TO REPORT-REC
ADD +1 TO WS-IDX
WRITE REPORT-LINE FROM REPORT-REC
END-PERFORM.
D DISPLAY '250-APPEND-PARA-EXIT'.
250-APPEND-PARA-EXIT.
EXIT.
300-FINISH.
******************************************************************
* THIS PROCEDURE *
* CALLS: *
* CALLED BY: 000-MAINLINE *
******************************************************************
D DISPLAY '300-FINISH'.
CLOSE INPUT-FILE.
IF INPUT-FILE-IO-OKAY
CONTINUE
ELSE
DISPLAY '************************************'
MOVE '800: CLOSE FAILED FOR INPUT FILE' TO ABEND-MSG
MOVE INPUT-FILE-STATUS TO ABEND-STATUS
DISPLAY '************************************'
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-IF.
CLOSE REPORT-FILE.
IF REPORT-FILE-IO-OKAY
CONTINUE
ELSE
DISPLAY '*********** ERROR *******************'
MOVE '800 :CLOSE FAILED FOR REPORT FILE' TO ABEND-MSG
MOVE REPORT-FILE-STATUS TO ABEND-STATUS
DISPLAY '*********** ERROR *******************'
PERFORM 999-ABEND-ERROR THRU 999-ABEND-ERROR-EXIT
END-IF.
D DISPLAY '300-FINISH-EXIT'.
300-FINISH-EXIT.
EXIT.
999-ABEND-ERROR.
******************************************************************
* THIS PROCEDURE CAUSES THE PROGRAM TO STOP IN THE EVENT OF AN *
* ERROR AND INHIBITS FURTHER PROCESSING. *
* CALLS: STOP-RUN. *
******************************************************************
D DISPLAY '999-ABEND-ERROR'.
DISPLAY '*************ERROR*********************'.
DISPLAY 'RAJPGM ENCOUNTERED A FATAL ERROR'.
DISPLAY ABEND-MSG.
IF ABEND-STATUS IS NOT = SPACES
DISPLAY 'ABEND-STATUS = ', ABEND-STATUS
END-IF.
PERFORM STOP-RUN.
D DISPLAY '999-ABEND-ERROR-EXIT'.
999-ABEND-ERROR-EXIT.
EXIT.
STOP-RUN.
STOP RUN.
|
TEST CASE 1
Code: |
SHEKAR.TEST.IN
000001 SHEKAR ENGL
000002 KOLUSU COMP
000003 FRANK ENGL
000004 MFUSER ENGL
000005 BPRASANNA COMP
000006 BEEBOP PHYC
000007 RAJ ENGL
000008 MERVYN COMP
000009 MVSFORUMS ENGL
000010 MAINFRAME ENGL
SHEKAR.TEST.OUT BEFORE
000001 1
000002 2
000003 3
000004 4
000005 5
SHEKAR.TEST.OUT AFTER
000001 1
000002 2
000003 3
000004 4
000005 5
SYSOUT RC=0
THINK ABEND OCCURED
*************ERROR*********************
RAJPGM ENCOUNTERED A FATAL ERROR
ABEND-STATUS =
|
TEST CASE 2
Code: |
SO YOU COMMENT OUT THE CODE FOR TEST CASE 2 TO MEET THE CRITERIA
* IF WS-COUNT = 4
* DISPLAY 'THINK ABEND OCCURED'
* SET ABEND-FLAG TO TRUE
* PERFORM 999-ABEND-ERROR THRU
* 999-ABEND-ERROR-EXIT
* END-IF
SHEKAR.TEST.IN
000001 SHEKAR ENGL
000002 KOLUSU COMP
000003 FRANK ENGL
000004 MFUSER ENGL
000005 BPRASANNA COMP
000006 BEEBOP PHYC
000007 RAJ ENGL
000008 MERVYN COMP
000009 MVSFORUMS ENGL
000010 MAINFRAME ENGL
SHEKAR.TEST.OUT BEFORE
000001 1
000002 2
000003 3
000004 4
000005 5
SHEKAR.TEST.OUT AFTER
000001 1
000002 2
000003 3
000004 4
000005 5
000006 SHEKAR ENGL
000007 KOLUSU COMP
000008 FRANK ENGL
000009 MFUSER ENGL
000010 BPRASANNA COMP
000011 BEEBOP PHYC
000012 RAJ ENGL
000013 MERVYN COMP
000014 MVSFORUMS ENGL
000015 MAINFRAME ENGL
|
_________________ Shekar
Grow Technically |
|
Back to top |
|
 |
sriramla Beginner
Joined: 22 Feb 2003 Posts: 74 Topics: 1
|
Posted: Thu Jun 22, 2006 8:12 am Post subject: |
|
|
I understand you want to save the appended records if job goes fine. When job abends, you would like to 'rollback' the changes made to the file. In this situation, I would do this:
1. Write the output in a new file
2. If job ends normally, next step in the job will concatenate original file & new file from step 1 to the final output file.
3. If needed, rename the final output file to the orignal file (In effect, you have 'appended' the new records to the file if job runs with no abends).
Note that if job abends then you should not run the concatenate step thereby you have the old file contents as is. |
|
Back to top |
|
 |
calspach Beginner
Joined: 12 Jun 2006 Posts: 5 Topics: 0
|
Posted: Thu Jun 22, 2006 8:39 am Post subject: |
|
|
^^ That's what I would do too. |
|
Back to top |
|
 |
Bithead Advanced

Joined: 03 Jan 2003 Posts: 550 Topics: 23 Location: Michigan, USA
|
Posted: Thu Jun 22, 2006 12:22 pm Post subject: |
|
|
Try writing them to a temporary dataset in your program then, at the end of the program, read them in and write them to your permenant dataset. |
|
Back to top |
|
 |
|
|