MFmainframe-rea
WS carddemo · 26f629ef

cobol · 649 lines · sha256 8691e625502b7efc · guides at columns 7 and 72app/cbl/CBTRN03C.cbl

1 ******************************************************************
2 * Program : CBTRN03C.CBL
3 * Application : CardDemo
4 * Type : BATCH COBOL Program
5 * Function : Print the transaction detail report.
6 ******************************************************************
7 * Copyright Amazon.com, Inc. or its affiliates.
8 * All Rights Reserved.
9 *
10 * Licensed under the Apache License, Version 2.0 (the "License").
11 * You may not use this file except in compliance with the License.
12 * You may obtain a copy of the License at
13 *
14 * http://www.apache.org/licenses/LICENSE-2.0
15 *
16 * Unless required by applicable law or agreed to in writing,
17 * software distributed under the License is distributed on an
18 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
19 * either express or implied. See the License for the specific
20 * language governing permissions and limitations under the License
21 ******************************************************************
22 IDENTIFICATION DIVISION.
23 PROGRAM-ID. CBTRN03C.
24 AUTHOR. AWS.
25
26 ENVIRONMENT DIVISION.
27 INPUT-OUTPUT SECTION.
28 FILE-CONTROL.
29 SELECT TRANSACT-FILE ASSIGN TO TRANFILE
30 ORGANIZATION IS SEQUENTIAL
31 FILE STATUS IS TRANFILE-STATUS.
32
33 SELECT XREF-FILE ASSIGN TO CARDXREF
34 ORGANIZATION IS INDEXED
35 ACCESS MODE IS RANDOM
36 RECORD KEY IS FD-XREF-CARD-NUM
37 FILE STATUS IS CARDXREF-STATUS.
38
39 SELECT TRANTYPE-FILE ASSIGN TO TRANTYPE
40 ORGANIZATION IS INDEXED
41 ACCESS MODE IS RANDOM
42 RECORD KEY IS FD-TRAN-TYPE
43 FILE STATUS IS TRANTYPE-STATUS.
44
45 SELECT TRANCATG-FILE ASSIGN TO TRANCATG
46 ORGANIZATION IS INDEXED
47 ACCESS MODE IS RANDOM
48 RECORD KEY IS FD-TRAN-CAT-KEY
49 FILE STATUS IS TRANCATG-STATUS.
50
51 SELECT REPORT-FILE ASSIGN TO TRANREPT
52 ORGANIZATION IS SEQUENTIAL
53 FILE STATUS IS TRANREPT-STATUS.
54
55 SELECT DATE-PARMS-FILE ASSIGN TO DATEPARM
56 ORGANIZATION IS SEQUENTIAL
57 FILE STATUS IS DATEPARM-STATUS.
58 *
59 DATA DIVISION.
60 FILE SECTION.
61 FD TRANSACT-FILE.
62 01 FD-TRANFILE-REC.
63 05 FD-TRANS-DATA PIC X(304).
64 05 FD-TRAN-PROC-TS PIC X(26).
65 05 FD-FILLER PIC X(20).
66
67 FD XREF-FILE.
68 01 FD-CARDXREF-REC.
69 05 FD-XREF-CARD-NUM PIC X(16).
70 05 FD-XREF-DATA PIC X(34).
71
72 FD TRANTYPE-FILE.
73 01 FD-TRANTYPE-REC.
74 05 FD-TRAN-TYPE PIC X(02).
75 05 FD-TRAN-DATA PIC X(58).
76
77 FD TRANCATG-FILE.
78 01 FD-TRAN-CAT-RECORD.
79 05 FD-TRAN-CAT-KEY.
80 10 FD-TRAN-TYPE-CD PIC X(02).
81 10 FD-TRAN-CAT-CD PIC 9(04).
82 05 FD-TRAN-CAT-DATA PIC X(54).
83
84 FD REPORT-FILE.
85 01 FD-REPTFILE-REC PIC X(133).
86
87 FD DATE-PARMS-FILE.
88 01 FD-DATEPARM-REC PIC X(80).
89
90 WORKING-STORAGE SECTION.
91
92 *****************************************************************
93 COPY CVTRA05Y.
94 01 TRANFILE-STATUS.
95 05 TRANFILE-STAT1 PIC X.
96 05 TRANFILE-STAT2 PIC X.
97
98 COPY CVACT03Y.
99 01 CARDXREF-STATUS.
100 05 CARDXREF-STAT1 PIC X.
101 05 CARDXREF-STAT2 PIC X.
102
103 COPY CVTRA03Y.
104 01 TRANTYPE-STATUS.
105 05 TRANTYPE-STAT1 PIC X.
106 05 TRANTYPE-STAT2 PIC X.
107
108 COPY CVTRA04Y.
109 01 TRANCATG-STATUS.
110 05 TRANCATG-STAT1 PIC X.
111 05 TRANCATG-STAT2 PIC X.
112
113 COPY CVTRA07Y.
114 01 TRANREPT-STATUS.
115 05 REPTFILE-STAT1 PIC X.
116 05 REPTFILE-STAT2 PIC X.
117
118 01 DATEPARM-STATUS.
119 05 DATEPARM-STAT1 PIC X.
120 05 DATEPARM-STAT2 PIC X.
121
122 01 WS-DATEPARM-RECORD.
123 05 WS-START-DATE PIC X(10).
124 05 FILLER PIC X(01).
125 05 WS-END-DATE PIC X(10).
126
127 01 WS-REPORT-VARS.
128 05 WS-FIRST-TIME PIC X VALUE 'Y'.
129 05 WS-LINE-COUNTER PIC 9(09) COMP-3
130 VALUE 0.
131 05 WS-PAGE-SIZE PIC 9(03) COMP-3
132 VALUE 20.
133 05 WS-BLANK-LINE PIC X(133) VALUE SPACES.
134 05 WS-PAGE-TOTAL PIC S9(09)V99 VALUE 0.
135 05 WS-ACCOUNT-TOTAL PIC S9(09)V99 VALUE 0.
136 05 WS-GRAND-TOTAL PIC S9(09)V99 VALUE 0.
137 05 WS-CURR-CARD-NUM PIC X(16) VALUE SPACES.
138
139 01 IO-STATUS.
140 05 IO-STAT1 PIC X.
141 05 IO-STAT2 PIC X.
142 01 TWO-BYTES-BINARY PIC 9(4) BINARY.
143 01 TWO-BYTES-ALPHA REDEFINES TWO-BYTES-BINARY.
144 05 TWO-BYTES-LEFT PIC X.
145 05 TWO-BYTES-RIGHT PIC X.
146 01 IO-STATUS-04.
147 05 IO-STATUS-0401 PIC 9 VALUE 0.
148 05 IO-STATUS-0403 PIC 999 VALUE 0.
149
150 01 APPL-RESULT PIC S9(9) COMP.
151 88 APPL-AOK VALUE 0.
152 88 APPL-EOF VALUE 16.
153
154 01 END-OF-FILE PIC X(01) VALUE 'N'.
155 01 ABCODE PIC S9(9) BINARY.
156 01 TIMING PIC S9(9) BINARY.
157
158 *****************************************************************
159 PROCEDURE DIVISION.
160 DISPLAY 'START OF EXECUTION OF PROGRAM CBTRN03C'.
161 PERFORM 0000-TRANFILE-OPEN.
162 PERFORM 0100-REPTFILE-OPEN.
163 PERFORM 0200-CARDXREF-OPEN.
164 PERFORM 0300-TRANTYPE-OPEN.
165 PERFORM 0400-TRANCATG-OPEN.
166 PERFORM 0500-DATEPARM-OPEN.
167
168 PERFORM 0550-DATEPARM-READ.
169
170 PERFORM UNTIL END-OF-FILE = 'Y'
171 IF END-OF-FILE = 'N'
172 PERFORM 1000-TRANFILE-GET-NEXT
173 IF TRAN-PROC-TS (1:10) >= WS-START-DATE
174 AND TRAN-PROC-TS (1:10) <= WS-END-DATE
175 CONTINUE
176 ELSE
177 NEXT SENTENCE
178 END-IF
179 IF END-OF-FILE = 'N'
180 DISPLAY TRAN-RECORD
181 IF WS-CURR-CARD-NUM NOT= TRAN-CARD-NUM
182 IF WS-FIRST-TIME = 'N'
183 PERFORM 1120-WRITE-ACCOUNT-TOTALS
184 END-IF
185 MOVE TRAN-CARD-NUM TO WS-CURR-CARD-NUM
186 MOVE TRAN-CARD-NUM TO FD-XREF-CARD-NUM
187 PERFORM 1500-A-LOOKUP-XREF
188 END-IF
189 MOVE TRAN-TYPE-CD OF TRAN-RECORD TO FD-TRAN-TYPE
190 PERFORM 1500-B-LOOKUP-TRANTYPE
191 MOVE TRAN-TYPE-CD OF TRAN-RECORD
192 TO FD-TRAN-TYPE-CD OF FD-TRAN-CAT-KEY
193 MOVE TRAN-CAT-CD OF TRAN-RECORD
194 TO FD-TRAN-CAT-CD OF FD-TRAN-CAT-KEY
195 PERFORM 1500-C-LOOKUP-TRANCATG
196 PERFORM 1100-WRITE-TRANSACTION-REPORT
197 ELSE
198 DISPLAY 'TRAN-AMT ' TRAN-AMT
199 DISPLAY 'WS-PAGE-TOTAL' WS-PAGE-TOTAL
200 ADD TRAN-AMT TO WS-PAGE-TOTAL
201 WS-ACCOUNT-TOTAL
202 PERFORM 1110-WRITE-PAGE-TOTALS
203 PERFORM 1110-WRITE-GRAND-TOTALS
204 END-IF
205 END-IF
206 END-PERFORM.
207
208 PERFORM 9000-TRANFILE-CLOSE.
209 PERFORM 9100-REPTFILE-CLOSE.
210 PERFORM 9200-CARDXREF-CLOSE.
211 PERFORM 9300-TRANTYPE-CLOSE.
212 PERFORM 9400-TRANCATG-CLOSE.
213 PERFORM 9500-DATEPARM-CLOSE.
214
215 DISPLAY 'END OF EXECUTION OF PROGRAM CBTRN03C'.
216
217 GOBACK.
218
219 * Read the date parameter file.
220 0550-DATEPARM-READ.
221 READ DATE-PARMS-FILE INTO WS-DATEPARM-RECORD
222 EVALUATE DATEPARM-STATUS
223 WHEN '00'
224 MOVE 0 TO APPL-RESULT
225 WHEN '10'
226 MOVE 16 TO APPL-RESULT
227 WHEN OTHER
228 MOVE 12 TO APPL-RESULT
229 END-EVALUATE
230
231 IF APPL-AOK
232 DISPLAY 'Reporting from ' WS-START-DATE
233 ' to ' WS-END-DATE
234 ELSE
235 IF APPL-EOF
236 MOVE 'Y' TO END-OF-FILE
237 ELSE
238 DISPLAY 'ERROR READING DATEPARM FILE'
239 MOVE DATEPARM-STATUS TO IO-STATUS
240 PERFORM 9910-DISPLAY-IO-STATUS
241 PERFORM 9999-ABEND-PROGRAM
242 END-IF
243 .
244
245 *****************************************************************
246 * I/O ROUTINES TO ACCESS A KSDS, VSAM DATA SET... *
247 *****************************************************************
248 1000-TRANFILE-GET-NEXT.
249 READ TRANSACT-FILE INTO TRAN-RECORD.
250
251 EVALUATE TRANFILE-STATUS
252 WHEN '00'
253 MOVE 0 TO APPL-RESULT
254 WHEN '10'
255 MOVE 16 TO APPL-RESULT
256 WHEN OTHER
257 MOVE 12 TO APPL-RESULT
258 END-EVALUATE
259
260 IF APPL-AOK
261 CONTINUE
262 ELSE
263 IF APPL-EOF
264 MOVE 'Y' TO END-OF-FILE
265 ELSE
266 DISPLAY 'ERROR READING TRANSACTION FILE'
267 MOVE TRANFILE-STATUS TO IO-STATUS
268 PERFORM 9910-DISPLAY-IO-STATUS
269 PERFORM 9999-ABEND-PROGRAM
270 END-IF
271 END-IF
272 EXIT.
273 *---------------------------------------------------------------*
274 1100-WRITE-TRANSACTION-REPORT.
275 IF WS-FIRST-TIME = 'Y'
276 MOVE 'N' TO WS-FIRST-TIME
277 MOVE WS-START-DATE TO REPT-START-DATE
278 MOVE WS-END-DATE TO REPT-END-DATE
279 PERFORM 1120-WRITE-HEADERS
280 END-IF
281
282 IF FUNCTION MOD(WS-LINE-COUNTER, WS-PAGE-SIZE) = 0
283 PERFORM 1110-WRITE-PAGE-TOTALS
284 PERFORM 1120-WRITE-HEADERS
285 END-IF
286
287 ADD TRAN-AMT TO WS-PAGE-TOTAL
288 WS-ACCOUNT-TOTAL
289 PERFORM 1120-WRITE-DETAIL
290 EXIT.
291
292 *---------------------------------------------------------------*
293 1110-WRITE-PAGE-TOTALS.
294 MOVE WS-PAGE-TOTAL TO REPT-PAGE-TOTAL
295 MOVE REPORT-PAGE-TOTALS TO FD-REPTFILE-REC
296 PERFORM 1111-WRITE-REPORT-REC
297 ADD WS-PAGE-TOTAL TO WS-GRAND-TOTAL
298 MOVE 0 TO WS-PAGE-TOTAL
299 ADD 1 TO WS-LINE-COUNTER
300 MOVE TRANSACTION-HEADER-2 TO FD-REPTFILE-REC
301 PERFORM 1111-WRITE-REPORT-REC
302 ADD 1 TO WS-LINE-COUNTER
303
304 EXIT.
305 *---------------------------------------------------------------*
306 1120-WRITE-ACCOUNT-TOTALS.
307 MOVE WS-ACCOUNT-TOTAL TO REPT-ACCOUNT-TOTAL
308 MOVE REPORT-ACCOUNT-TOTALS TO FD-REPTFILE-REC
309 PERFORM 1111-WRITE-REPORT-REC
310 MOVE 0 TO WS-ACCOUNT-TOTAL
311 ADD 1 TO WS-LINE-COUNTER
312 MOVE TRANSACTION-HEADER-2 TO FD-REPTFILE-REC
313 PERFORM 1111-WRITE-REPORT-REC
314 ADD 1 TO WS-LINE-COUNTER
315
316 EXIT.
317 *---------------------------------------------------------------*
318 1110-WRITE-GRAND-TOTALS.
319 MOVE WS-GRAND-TOTAL TO REPT-GRAND-TOTAL
320 MOVE REPORT-GRAND-TOTALS TO FD-REPTFILE-REC
321 PERFORM 1111-WRITE-REPORT-REC
322 EXIT.
323 *---------------------------------------------------------------*
324 1120-WRITE-HEADERS.
325 MOVE REPORT-NAME-HEADER TO FD-REPTFILE-REC
326 PERFORM 1111-WRITE-REPORT-REC
327 ADD 1 TO WS-LINE-COUNTER
328
329 MOVE WS-BLANK-LINE TO FD-REPTFILE-REC
330 PERFORM 1111-WRITE-REPORT-REC
331 ADD 1 TO WS-LINE-COUNTER
332
333 MOVE TRANSACTION-HEADER-1 TO FD-REPTFILE-REC
334 PERFORM 1111-WRITE-REPORT-REC
335 ADD 1 TO WS-LINE-COUNTER
336
337 MOVE TRANSACTION-HEADER-2 TO FD-REPTFILE-REC
338 PERFORM 1111-WRITE-REPORT-REC
339 ADD 1 TO WS-LINE-COUNTER
340
341 EXIT.
342 *---------------------------------------------------------------*
343 1111-WRITE-REPORT-REC.
344
345 WRITE FD-REPTFILE-REC
346 IF TRANREPT-STATUS = '00'
347 MOVE 0 TO APPL-RESULT
348 ELSE
349 MOVE 12 TO APPL-RESULT
350 END-IF
351 IF APPL-AOK
352 CONTINUE
353 ELSE
354 DISPLAY 'ERROR WRITING REPTFILE'
355 MOVE TRANREPT-STATUS TO IO-STATUS
356 PERFORM 9910-DISPLAY-IO-STATUS
357 PERFORM 9999-ABEND-PROGRAM
358 END-IF
359 EXIT.
360
361 1120-WRITE-DETAIL.
362 INITIALIZE TRANSACTION-DETAIL-REPORT
363 MOVE TRAN-ID TO TRAN-REPORT-TRANS-ID
364 MOVE XREF-ACCT-ID TO TRAN-REPORT-ACCOUNT-ID
365 MOVE TRAN-TYPE-CD OF TRAN-RECORD TO TRAN-REPORT-TYPE-CD
366 MOVE TRAN-TYPE-DESC TO TRAN-REPORT-TYPE-DESC
367 MOVE TRAN-CAT-CD OF TRAN-RECORD TO TRAN-REPORT-CAT-CD
368 MOVE TRAN-CAT-TYPE-DESC TO TRAN-REPORT-CAT-DESC
369 MOVE TRAN-SOURCE TO TRAN-REPORT-SOURCE
370 MOVE TRAN-AMT TO TRAN-REPORT-AMT
371 MOVE TRANSACTION-DETAIL-REPORT TO FD-REPTFILE-REC
372 PERFORM 1111-WRITE-REPORT-REC
373 ADD 1 TO WS-LINE-COUNTER
374 EXIT.
375 *---------------------------------------------------------------*
376 0000-TRANFILE-OPEN.
377 MOVE 8 TO APPL-RESULT.
378 OPEN INPUT TRANSACT-FILE
379 IF TRANFILE-STATUS = '00'
380 MOVE 0 TO APPL-RESULT
381 ELSE
382 MOVE 12 TO APPL-RESULT
383 END-IF
384 IF APPL-AOK
385 CONTINUE
386 ELSE
387 DISPLAY 'ERROR OPENING TRANFILE'
388 MOVE TRANFILE-STATUS TO IO-STATUS
389 PERFORM 9910-DISPLAY-IO-STATUS
390 PERFORM 9999-ABEND-PROGRAM
391 END-IF
392 EXIT.
393 *---------------------------------------------------------------*
394 0100-REPTFILE-OPEN.
395 MOVE 8 TO APPL-RESULT.
396 OPEN OUTPUT REPORT-FILE
397 IF TRANREPT-STATUS = '00'
398 MOVE 0 TO APPL-RESULT
399 ELSE
400 MOVE 12 TO APPL-RESULT
401 END-IF
402 IF APPL-AOK
403 CONTINUE
404 ELSE
405 DISPLAY 'ERROR OPENING REPTFILE'
406 MOVE TRANREPT-STATUS TO IO-STATUS
407 PERFORM 9910-DISPLAY-IO-STATUS
408 PERFORM 9999-ABEND-PROGRAM
409 END-IF
410 EXIT.
411 *---------------------------------------------------------------*
412 0200-CARDXREF-OPEN.
413 MOVE 8 TO APPL-RESULT.
414 OPEN INPUT XREF-FILE
415 IF CARDXREF-STATUS = '00'
416 MOVE 0 TO APPL-RESULT
417 ELSE
418 MOVE 12 TO APPL-RESULT
419 END-IF
420 IF APPL-AOK
421 CONTINUE
422 ELSE
423 DISPLAY 'ERROR OPENING CROSS REF FILE'
424 MOVE CARDXREF-STATUS TO IO-STATUS
425 PERFORM 9910-DISPLAY-IO-STATUS
426 PERFORM 9999-ABEND-PROGRAM
427 END-IF
428 EXIT.
429 *---------------------------------------------------------------*
430 0300-TRANTYPE-OPEN.
431 MOVE 8 TO APPL-RESULT.
432 OPEN INPUT TRANTYPE-FILE
433 IF TRANTYPE-STATUS = '00'
434 MOVE 0 TO APPL-RESULT
435 ELSE
436 MOVE 12 TO APPL-RESULT
437 END-IF
438 IF APPL-AOK
439 CONTINUE
440 ELSE
441 DISPLAY 'ERROR OPENING TRANSACTION TYPE FILE'
442 MOVE TRANTYPE-STATUS TO IO-STATUS
443 PERFORM 9910-DISPLAY-IO-STATUS
444 PERFORM 9999-ABEND-PROGRAM
445 END-IF
446 EXIT.
447 *---------------------------------------------------------------*
448 0400-TRANCATG-OPEN.
449 MOVE 8 TO APPL-RESULT.
450 OPEN INPUT TRANCATG-FILE
451 IF TRANCATG-STATUS = '00'
452 MOVE 0 TO APPL-RESULT
453 ELSE
454 MOVE 12 TO APPL-RESULT
455 END-IF
456 IF APPL-AOK
457 CONTINUE
458 ELSE
459 DISPLAY 'ERROR OPENING TRANSACTION CATG FILE'
460 MOVE TRANCATG-STATUS TO IO-STATUS
461 PERFORM 9910-DISPLAY-IO-STATUS
462 PERFORM 9999-ABEND-PROGRAM
463 END-IF
464 EXIT.
465 *---------------------------------------------------------------*
466 0500-DATEPARM-OPEN.
467 MOVE 8 TO APPL-RESULT.
468 OPEN INPUT DATE-PARMS-FILE
469 IF DATEPARM-STATUS = '00'
470 MOVE 0 TO APPL-RESULT
471 ELSE
472 MOVE 12 TO APPL-RESULT
473 END-IF
474 IF APPL-AOK
475 CONTINUE
476 ELSE
477 DISPLAY 'ERROR OPENING DATE PARM FILE'
478 MOVE DATEPARM-STATUS TO IO-STATUS
479 PERFORM 9910-DISPLAY-IO-STATUS
480 PERFORM 9999-ABEND-PROGRAM
481 END-IF
482 EXIT.
483 *---------------------------------------------------------------*
484 1500-A-LOOKUP-XREF.
485 READ XREF-FILE INTO CARD-XREF-RECORD
486 INVALID KEY
487 DISPLAY 'INVALID CARD NUMBER : ' FD-XREF-CARD-NUM
488 MOVE 23 TO IO-STATUS
489 PERFORM 9910-DISPLAY-IO-STATUS
490 PERFORM 9999-ABEND-PROGRAM
491 END-READ
492 EXIT.
493 *---------------------------------------------------------------*
494 1500-B-LOOKUP-TRANTYPE.
495 READ TRANTYPE-FILE INTO TRAN-TYPE-RECORD
496 INVALID KEY
497 DISPLAY 'INVALID TRANSACTION TYPE : ' FD-TRAN-TYPE
498 MOVE 23 TO IO-STATUS
499 PERFORM 9910-DISPLAY-IO-STATUS
500 PERFORM 9999-ABEND-PROGRAM
501 END-READ
502 EXIT.
503 *---------------------------------------------------------------*
504 1500-C-LOOKUP-TRANCATG.
505 READ TRANCATG-FILE INTO TRAN-CAT-RECORD
506 INVALID KEY
507 DISPLAY 'INVALID TRAN CATG KEY : ' FD-TRAN-CAT-KEY
508 MOVE 23 TO IO-STATUS
509 PERFORM 9910-DISPLAY-IO-STATUS
510 PERFORM 9999-ABEND-PROGRAM
511 END-READ
512 EXIT.
513 *---------------------------------------------------------------*
514 9000-TRANFILE-CLOSE.
515 ADD 8 TO ZERO GIVING APPL-RESULT.
516 CLOSE TRANSACT-FILE
517 IF TRANFILE-STATUS = '00'
518 SUBTRACT APPL-RESULT FROM APPL-RESULT
519 ELSE
520 ADD 12 TO ZERO GIVING APPL-RESULT
521 END-IF
522 IF APPL-AOK
523 CONTINUE
524 ELSE
525 DISPLAY 'ERROR CLOSING POSTED TRANSACTION FILE'
526 MOVE TRANFILE-STATUS TO IO-STATUS
527 PERFORM 9910-DISPLAY-IO-STATUS
528 PERFORM 9999-ABEND-PROGRAM
529 END-IF
530 EXIT.
531 *---------------------------------------------------------------*
532 9100-REPTFILE-CLOSE.
533 ADD 8 TO ZERO GIVING APPL-RESULT.
534 CLOSE REPORT-FILE
535 IF TRANREPT-STATUS = '00'
536 SUBTRACT APPL-RESULT FROM APPL-RESULT
537 ELSE
538 ADD 12 TO ZERO GIVING APPL-RESULT
539 END-IF
540 IF APPL-AOK
541 CONTINUE
542 ELSE
543 DISPLAY 'ERROR CLOSING REPORT FILE'
544 MOVE TRANREPT-STATUS TO IO-STATUS
545 PERFORM 9910-DISPLAY-IO-STATUS
546 PERFORM 9999-ABEND-PROGRAM
547 END-IF
548 EXIT.
549
550 *---------------------------------------------------------------*
551 9200-CARDXREF-CLOSE.
552 MOVE 8 TO APPL-RESULT.
553 CLOSE XREF-FILE
554 IF CARDXREF-STATUS = '00'
555 MOVE 0 TO APPL-RESULT
556 ELSE
557 MOVE 12 TO APPL-RESULT
558 END-IF
559 IF APPL-AOK
560 CONTINUE
561 ELSE
562 DISPLAY 'ERROR CLOSING CROSS REF FILE'
563 MOVE CARDXREF-STATUS TO IO-STATUS
564 PERFORM 9910-DISPLAY-IO-STATUS
565 PERFORM 9999-ABEND-PROGRAM
566 END-IF
567 EXIT.
568 *---------------------------------------------------------------*
569 9300-TRANTYPE-CLOSE.
570 MOVE 8 TO APPL-RESULT.
571 CLOSE TRANTYPE-FILE
572 IF TRANTYPE-STATUS = '00'
573 MOVE 0 TO APPL-RESULT
574 ELSE
575 MOVE 12 TO APPL-RESULT
576 END-IF
577 IF APPL-AOK
578 CONTINUE
579 ELSE
580 DISPLAY 'ERROR CLOSING TRANSACTION TYPE FILE'
581 MOVE TRANTYPE-STATUS TO IO-STATUS
582 PERFORM 9910-DISPLAY-IO-STATUS
583 PERFORM 9999-ABEND-PROGRAM
584 END-IF
585 EXIT.
586 *---------------------------------------------------------------*
587 9400-TRANCATG-CLOSE.
588 MOVE 8 TO APPL-RESULT.
589 CLOSE TRANCATG-FILE
590 IF TRANCATG-STATUS = '00'
591 MOVE 0 TO APPL-RESULT
592 ELSE
593 MOVE 12 TO APPL-RESULT
594 END-IF
595 IF APPL-AOK
596 CONTINUE
597 ELSE
598 DISPLAY 'ERROR CLOSING TRANSACTION CATG FILE'
599 MOVE TRANCATG-STATUS TO IO-STATUS
600 PERFORM 9910-DISPLAY-IO-STATUS
601 PERFORM 9999-ABEND-PROGRAM
602 END-IF
603 EXIT.
604 *---------------------------------------------------------------*
605 9500-DATEPARM-CLOSE.
606 MOVE 8 TO APPL-RESULT.
607 CLOSE DATE-PARMS-FILE
608 IF DATEPARM-STATUS = '00'
609 MOVE 0 TO APPL-RESULT
610 ELSE
611 MOVE 12 TO APPL-RESULT
612 END-IF
613 IF APPL-AOK
614 CONTINUE
615 ELSE
616 DISPLAY 'ERROR CLOSING DATE PARM FILE'
617 MOVE DATEPARM-STATUS TO IO-STATUS
618 PERFORM 9910-DISPLAY-IO-STATUS
619 PERFORM 9999-ABEND-PROGRAM
620 END-IF
621 EXIT.
622
623
624
625
626 9999-ABEND-PROGRAM.
627 DISPLAY 'ABENDING PROGRAM'
628 MOVE 0 TO TIMING
629 MOVE 999 TO ABCODE
630 CALL 'CEE3ABD' USING ABCODE, TIMING.
631
632 *****************************************************************
633 9910-DISPLAY-IO-STATUS.
634 IF IO-STATUS NOT NUMERIC
635 OR IO-STAT1 = '9'
636 MOVE IO-STAT1 TO IO-STATUS-04(1:1)
637 MOVE 0 TO TWO-BYTES-BINARY
638 MOVE IO-STAT2 TO TWO-BYTES-RIGHT
639 MOVE TWO-BYTES-BINARY TO IO-STATUS-0403
640 DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04
641 ELSE
642 MOVE '0000' TO IO-STATUS-04
643 MOVE IO-STATUS TO IO-STATUS-04(3:2)
644 DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04
645 END-IF
646 EXIT.
647 *
648 * Ver: CardDemo_v2.0-25-gdb72e6b-235 Date: 2025-04-29 11:01:29 CDT
649 *