MFmainframe-rea
WS carddemo · 26f629ef

cobol · 178 lines · sha256 233dbc3bc33a3b9a · guides at columns 7 and 72app/cbl/CBCUS01C.cbl

1 ******************************************************************
2 * Program : CBCUS01C.CBL
3 * Application : CardDemo
4 * Type : BATCH COBOL Program
5 * Function : Read and print customer data file.
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. CBCUS01C.
24 AUTHOR. AWS.
25
26 ENVIRONMENT DIVISION.
27 INPUT-OUTPUT SECTION.
28 FILE-CONTROL.
29 SELECT CUSTFILE-FILE ASSIGN TO CUSTFILE
30 ORGANIZATION IS INDEXED
31 ACCESS MODE IS SEQUENTIAL
32 RECORD KEY IS FD-CUST-ID
33 FILE STATUS IS CUSTFILE-STATUS.
34 *
35 DATA DIVISION.
36 FILE SECTION.
37 FD CUSTFILE-FILE.
38 01 FD-CUSTFILE-REC.
39 05 FD-CUST-ID PIC 9(09).
40 05 FD-CUST-DATA PIC X(491).
41
42 WORKING-STORAGE SECTION.
43
44 *****************************************************************
45 COPY CVCUS01Y.
46 01 CUSTFILE-STATUS.
47 05 CUSTFILE-STAT1 PIC X.
48 05 CUSTFILE-STAT2 PIC X.
49
50 01 IO-STATUS.
51 05 IO-STAT1 PIC X.
52 05 IO-STAT2 PIC X.
53 01 TWO-BYTES-BINARY PIC 9(4) BINARY.
54 01 TWO-BYTES-ALPHA REDEFINES TWO-BYTES-BINARY.
55 05 TWO-BYTES-LEFT PIC X.
56 05 TWO-BYTES-RIGHT PIC X.
57 01 IO-STATUS-04.
58 05 IO-STATUS-0401 PIC 9 VALUE 0.
59 05 IO-STATUS-0403 PIC 999 VALUE 0.
60
61 01 APPL-RESULT PIC S9(9) COMP.
62 88 APPL-AOK VALUE 0.
63 88 APPL-EOF VALUE 16.
64
65 01 END-OF-FILE PIC X(01) VALUE 'N'.
66 01 ABCODE PIC S9(9) BINARY.
67 01 TIMING PIC S9(9) BINARY.
68
69 *****************************************************************
70 PROCEDURE DIVISION.
71 DISPLAY 'START OF EXECUTION OF PROGRAM CBCUS01C'.
72 PERFORM 0000-CUSTFILE-OPEN.
73
74 PERFORM UNTIL END-OF-FILE = 'Y'
75 IF END-OF-FILE = 'N'
76 PERFORM 1000-CUSTFILE-GET-NEXT
77 IF END-OF-FILE = 'N'
78 DISPLAY CUSTOMER-RECORD
79 END-IF
80 END-IF
81 END-PERFORM.
82
83 PERFORM 9000-CUSTFILE-CLOSE.
84
85 DISPLAY 'END OF EXECUTION OF PROGRAM CBCUS01C'.
86
87 GOBACK.
88
89 *****************************************************************
90 * I/O ROUTINES TO ACCESS A KSDS, VSAM DATA SET... *
91 *****************************************************************
92 1000-CUSTFILE-GET-NEXT.
93 READ CUSTFILE-FILE INTO CUSTOMER-RECORD.
94 IF CUSTFILE-STATUS = '00'
95 MOVE 0 TO APPL-RESULT
96 DISPLAY CUSTOMER-RECORD
97 ELSE
98 IF CUSTFILE-STATUS = '10'
99 MOVE 16 TO APPL-RESULT
100 ELSE
101 MOVE 12 TO APPL-RESULT
102 END-IF
103 END-IF
104 IF APPL-AOK
105 CONTINUE
106 ELSE
107 IF APPL-EOF
108 MOVE 'Y' TO END-OF-FILE
109 ELSE
110 DISPLAY 'ERROR READING CUSTOMER FILE'
111 MOVE CUSTFILE-STATUS TO IO-STATUS
112 PERFORM Z-DISPLAY-IO-STATUS
113 PERFORM Z-ABEND-PROGRAM
114 END-IF
115 END-IF
116 EXIT.
117 *---------------------------------------------------------------*
118 0000-CUSTFILE-OPEN.
119 MOVE 8 TO APPL-RESULT.
120 OPEN INPUT CUSTFILE-FILE
121 IF CUSTFILE-STATUS = '00'
122 MOVE 0 TO APPL-RESULT
123 ELSE
124 MOVE 12 TO APPL-RESULT
125 END-IF
126 IF APPL-AOK
127 CONTINUE
128 ELSE
129 DISPLAY 'ERROR OPENING CUSTFILE'
130 MOVE CUSTFILE-STATUS TO IO-STATUS
131 PERFORM Z-DISPLAY-IO-STATUS
132 PERFORM Z-ABEND-PROGRAM
133 END-IF
134 EXIT.
135 *---------------------------------------------------------------*
136 9000-CUSTFILE-CLOSE.
137 ADD 8 TO ZERO GIVING APPL-RESULT.
138 CLOSE CUSTFILE-FILE
139 IF CUSTFILE-STATUS = '00'
140 SUBTRACT APPL-RESULT FROM APPL-RESULT
141 ELSE
142 ADD 12 TO ZERO GIVING APPL-RESULT
143 END-IF
144 IF APPL-AOK
145 CONTINUE
146 ELSE
147 DISPLAY 'ERROR CLOSING CUSTOMER FILE'
148 MOVE CUSTFILE-STATUS TO IO-STATUS
149 PERFORM Z-DISPLAY-IO-STATUS
150 PERFORM Z-ABEND-PROGRAM
151 END-IF
152 EXIT.
153
154 Z-ABEND-PROGRAM.
155 DISPLAY 'ABENDING PROGRAM'
156 MOVE 0 TO TIMING
157 MOVE 999 TO ABCODE
158 CALL 'CEE3ABD' USING ABCODE, TIMING.
159
160 *****************************************************************
161 Z-DISPLAY-IO-STATUS.
162 IF IO-STATUS NOT NUMERIC
163 OR IO-STAT1 = '9'
164 MOVE IO-STAT1 TO IO-STATUS-04(1:1)
165 MOVE 0 TO TWO-BYTES-BINARY
166 MOVE IO-STAT2 TO TWO-BYTES-RIGHT
167 MOVE TWO-BYTES-BINARY TO IO-STATUS-0403
168 DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04
169 ELSE
170 MOVE '0000' TO IO-STATUS-04
171 MOVE IO-STATUS TO IO-STATUS-04(3:2)
172 DISPLAY 'FILE STATUS IS: NNNN' IO-STATUS-04
173 END-IF
174 EXIT.
175
176 *
177 * Ver: CardDemo_v2.0-25-gdb72e6b-235 Date: 2025-04-29 11:01:28 CDT
178 *