MFmainframe-rea
WS carddemo · 26f629ef

cobol · 237 lines · sha256 0213fd5718c6aadd · guides at columns 7 and 72app/app-transaction-type-db2/cbl/COBTUPDT.cbl

1 **************************************** *************************00010032
2 * Program: COBTUPDT.CBL *00020032
3 * Layer: Business logic *00030032
4 * Function: Update Transaction type based on user input *00040032
5 ******************************************************************00050032
6 * Copyright Amazon.com, Inc. or its affiliates. 00060032
7 * All Rights Reserved. 00070032
8 * 00080032
9 * Licensed under the Apache License, Version 2.0 (the "License"). 00090032
10 * You may not use this file except in compliance with the License.00100032
11 * You may obtain a copy of the License at 00110032
12 * 00120032
13 * http://www.apache.org/licenses/LICENSE-2.0 00130032
14 * 00140032
15 * Unless required by applicable law or agreed to in writing, 00150032
16 * software distributed under the License is distributed on an 00160032
17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 00170032
18 * either express or implied. See the License for the specific 00180032
19 * language governing permissions and limitations under the License00190032
20 ******************************************************************00200032
21 00210032
22 IDENTIFICATION DIVISION. 00220032
23 PROGRAM-ID. COBTUPDT. 00230032
24 00240032
25 ENVIRONMENT DIVISION. 00250032
26 00260032
27 CONFIGURATION SECTION. 00270032
28 00280032
29 INPUT-OUTPUT SECTION. 00290032
30 FILE-CONTROL. 00300032
31 SELECT TR-RECORD ASSIGN TO INPFILE 00310032
32 ORGANIZATION IS SEQUENTIAL 00311032
33 ACCESS MODE IS SEQUENTIAL 00312032
34 FILE STATUS IS WS-INF-STATUS. 00313032
35 00314032
36 DATA DIVISION. 00315032
37 00316032
38 FILE SECTION. 00317032
39 FD TR-RECORD RECORDING MODE F. 00318032
40 01 WS-INPUT-VARS. 00319032
41 05 INPUT-TYPE PIC X(1) 00320032
42 VALUE SPACES. 00330032
43 05 INPUT-TR-NUMBER PIC X(2) 00340032
44 VALUE SPACES. 00350032
45 05 INPUT-TR-DESC PIC X(50) 00360032
46 VALUE SPACES. 00370032
47 00380032
48 WORKING-STORAGE SECTION. 00390032
49 00400032
50 EXEC SQL 00410032
51 INCLUDE SQLCA 00420032
52 END-EXEC 00430032
53 00440032
54 EXEC SQL INCLUDE DCLTRTYP END-EXEC 00450046
55 00451046
56 00460032
57 01 FLAGS. 00470032
58 05 LASTREC PIC X(1) 00480032
59 VALUE SPACES. 00490032
60 01 WORKING-VARIABLES. 00500032
61 05 WS-RETURN-MSG PIC X(80) 00510044
62 VALUE SPACES. 00520032
63 00530032
64 01 WS-MISC-VARS. 00540032
65 05 WS-VAR-SQLCODE PIC ----9. 00550032
66 00560032
67 01 WS-INF-STATUS. 00570032
68 05 WS-INF-STAT1 PIC X. 00580032
69 05 WS-INF-STAT2 PIC X. 00590032
70 00590133
71 01 WS-INPUT-REC. 00591033
72 05 INPUT-REC-TYPE PIC X(1) 00592033
73 VALUE SPACES. 00593033
74 05 INPUT-REC-NUMBER PIC X(2) 00594033
75 VALUE SPACES. 00595033
76 05 INPUT-REC-DESC PIC X(50) 00596033
77 VALUE SPACES. 00597033
78 00598033
79 00600032
80 PROCEDURE DIVISION. 00610032
81 00620032
82 0001-OPEN-FILES. 00630032
83 OPEN INPUT TR-RECORD. 00640032
84 IF WS-INF-STATUS = '00' THEN 00650032
85 DISPLAY 'OPEN FILE OK' 00660046
86 ELSE 00670032
87 DISPLAY 'OPEN FILE NOT OK' 00680046
88 END-IF 00690032
89 EXIT. 00700032
90 00710032
91 1001-READ-NEXT-RECORDS. 00720032
92 PERFORM 1002-READ-RECORDS 00740443
93 PERFORM UNTIL LASTREC = 'Y' 00740543
94 PERFORM 1003-TREAT-RECORD 00740743
95 PERFORM 1002-READ-RECORDS 00740843
96 END-PERFORM. 00740943
97 PERFORM 2001-CLOSE-STOP 00742041
98 EXIT. 00780032
99 STOP RUN. 00790041
100 1002-READ-RECORDS. 00840032
101 READ TR-RECORD NEXT RECORD INTO WS-INPUT-REC 00850033
102 AT END MOVE 'Y' TO LASTREC 00860032
103 END-READ. 00870032
104 IF LASTREC NOT EQUAL TO 'Y' THEN 00870144
105 DISPLAY 'PROCESSING ' WS-INPUT-REC 00871044
106 END-IF. 00872044
107 EXIT. 00880032
108 00890032
109 1003-TREAT-RECORD. 00900032
110 EVALUATE INPUT-REC-TYPE 00910033
111 WHEN 'A' 00920034
112 DISPLAY 'ADDING RECORD' 00921034
113 PERFORM 10031-INSERT-DB 00930032
114 WHEN 'U' 00940032
115 DISPLAY 'UPDATING RECORD' 00941034
116 PERFORM 10032-UPDATE-DB 00950032
117 WHEN 'D' 00960032
118 DISPLAY 'DELETING RECORD' 00961034
119 PERFORM 10033-DELETE-DB 00970032
120 WHEN '*' 00971045
121 DISPLAY 'IGNORING COMMENTED LINE' 00972045
122 WHEN OTHER 00980032
123 STRING 00990032
124 'ERROR: TYPE NOT VALID' 01000041
125 DELIMITED BY SIZE 01020032
126 INTO WS-RETURN-MSG 01030032
127 END-STRING 01040032
128 PERFORM 9999-ABEND 01050032
129 END-EVALUATE. 01060032
130 EXIT. 01070032
131 01080041
132 10031-INSERT-DB. 01090032
133 ******************************************************************01100032
134 * SQL TO INSERT THE RECORD 01110032
135 ******************************************************************01120032
136 * 01130032
137 EXEC SQL 01140032
138 INSERT INTO CARDDEMO.TRANSACTION_TYPE 01150032
139 ( 01160032
140 TR_TYPE, 01170032
141 TR_DESCRIPTION 01180032
142 ) 01190032
143 VALUES 01200032
144 ( 01210032
145 :INPUT-REC-NUMBER, 01220033
146 :INPUT-REC-DESC 01230033
147 ) 01240032
148 END-EXEC. 01250034
149 MOVE SQLCODE TO WS-VAR-SQLCODE 01260032
150 01270032
151 EVALUATE TRUE 01310032
152 WHEN SQLCODE = ZERO 01320032
153 DISPLAY 'RECORD INSERTED SUCCESSFULLY' 01330044
154 WHEN SQLCODE < 0 01340032
155 STRING 01350032
156 'Error accessing:' 01360032
157 ' TRANSACTION_TYPE table. SQLCODE:' 01370032
158 WS-VAR-SQLCODE 01380044
159 DELIMITED BY SIZE 01410032
160 INTO WS-RETURN-MSG 01420032
161 END-STRING 01430032
162 PERFORM 9999-ABEND 01440032
163 END-EVALUATE 01450032
164 EXIT. 01460032
165 01470032
166 10032-UPDATE-DB. 01480032
167 ******************************************************************01490032
168 * SQL TO UPDATE THE RECORD 01500032
169 ******************************************************************01510032
170 * 01520032
171 EXEC SQL 01522037
172 UPDATE CARDDEMO.TRANSACTION_TYPE 01523040
173 SET TR_DESCRIPTION = :INPUT-REC-DESC 01524041
174 WHERE TR_TYPE = :INPUT-REC-NUMBER 01525041
175 END-EXEC 01526037
176 MOVE SQLCODE TO WS-VAR-SQLCODE 01580032
177 EVALUATE TRUE 01630032
178 WHEN SQLCODE = ZERO 01640032
179 DISPLAY 'RECORD UPDATED SUCCESSFULLY' 01650044
180 WHEN SQLCODE = +100 01660032
181 STRING 'No records found.' DELIMITED BY SIZE 01670041
182 INTO WS-RETURN-MSG 01680041
183 END-STRING 01690041
184 PERFORM 9999-ABEND 01700041
185 WHEN SQLCODE < 0 01710032
186 STRING 01711044
187 'Error accessing:' 01712044
188 ' TRANSACTION_TYPE table. SQLCODE:' 01713044
189 WS-VAR-SQLCODE 01714044
190 DELIMITED BY SIZE 01717044
191 INTO WS-RETURN-MSG 01718044
192 END-STRING 01719044
193 PERFORM 9999-ABEND 01719144
194 END-EVALUATE 01820032
195 EXIT. 01830032
196 10033-DELETE-DB. 01850032
197 ******************************************************************01860032
198 * SQL TO DELETE THE RECORD 01870032
199 ******************************************************************01880032
200 * 01890032
201 EXEC SQL 01900032
202 DELETE FROM CARDDEMO.TRANSACTION_TYPE 01910032
203 WHERE TR_TYPE = :INPUT-REC-NUMBER 01920033
204 END-EXEC. 01930034
205 MOVE SQLCODE TO WS-VAR-SQLCODE 01940032
206 01950032
207 EVALUATE TRUE 01990032
208 WHEN SQLCODE = ZERO 02000032
209 DISPLAY 'RECORD DELETED SUCCESSFULLY' 02010032
210 WHEN SQLCODE = +100 02020032
211 STRING 'No records found.' DELIMITED BY SIZE 02030032
212 INTO WS-RETURN-MSG 02040032
213 END-STRING 02050032
214 PERFORM 9999-ABEND 02060032
215 02070032
216 WHEN SQLCODE < 0 02080032
217 STRING 02090032
218 'Error accessing:' 02100032
219 ' TRANSACTION_TYPE table. SQLCODE:' 02110032
220 WS-VAR-SQLCODE 02120032
221 DELIMITED BY SIZE 02150032
222 INTO WS-RETURN-MSG 02160032
223 END-STRING 02170032
224 PERFORM 9999-ABEND 02180032
225 END-EVALUATE 02190032
226 EXIT. 02200032
227 02210032
228 02220032
229 02230032
230 9999-ABEND. 02240032
231 DISPLAY WS-RETURN-MSG. 02250032
232 MOVE 4 TO RETURN-CODE 02251044
233 EXIT. 02260032
234 2001-CLOSE-STOP. 02261041
235 CLOSE TR-RECORD. 02262041
236 EXIT. 02264041
237 02270032