MFmainframe-rea
WS carddemo · 26f629ef

cobol · 359 lines · sha256 bcd68f08c145b3b9 · guides at columns 7 and 72app/cbl/COUSR03C.cbl

1 ******************************************************************
2 * Program : COUSR03C.CBL
3 * Application : CardDemo
4 * Type : CICS COBOL Program
5 * Function : Delete a user from USRSEC 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. COUSR03C.
24 AUTHOR. AWS.
25
26 ENVIRONMENT DIVISION.
27 CONFIGURATION SECTION.
28
29 DATA DIVISION.
30 *----------------------------------------------------------------*
31 * WORKING STORAGE SECTION
32 *----------------------------------------------------------------*
33 WORKING-STORAGE SECTION.
34
35 01 WS-VARIABLES.
36 05 WS-PGMNAME PIC X(08) VALUE 'COUSR03C'.
37 05 WS-TRANID PIC X(04) VALUE 'CU03'.
38 05 WS-MESSAGE PIC X(80) VALUE SPACES.
39 05 WS-USRSEC-FILE PIC X(08) VALUE 'USRSEC '.
40 05 WS-ERR-FLG PIC X(01) VALUE 'N'.
41 88 ERR-FLG-ON VALUE 'Y'.
42 88 ERR-FLG-OFF VALUE 'N'.
43 05 WS-RESP-CD PIC S9(09) COMP VALUE ZEROS.
44 05 WS-REAS-CD PIC S9(09) COMP VALUE ZEROS.
45 05 WS-USR-MODIFIED PIC X(01) VALUE 'N'.
46 88 USR-MODIFIED-YES VALUE 'Y'.
47 88 USR-MODIFIED-NO VALUE 'N'.
48
49 COPY COCOM01Y.
50 05 CDEMO-CU03-INFO.
51 10 CDEMO-CU03-USRID-FIRST PIC X(08).
52 10 CDEMO-CU03-USRID-LAST PIC X(08).
53 10 CDEMO-CU03-PAGE-NUM PIC 9(08).
54 10 CDEMO-CU03-NEXT-PAGE-FLG PIC X(01) VALUE 'N'.
55 88 NEXT-PAGE-YES VALUE 'Y'.
56 88 NEXT-PAGE-NO VALUE 'N'.
57 10 CDEMO-CU03-USR-SEL-FLG PIC X(01).
58 10 CDEMO-CU03-USR-SELECTED PIC X(08).
59
60 COPY COUSR03.
61
62 COPY COTTL01Y.
63 COPY CSDAT01Y.
64 COPY CSMSG01Y.
65 COPY CSUSR01Y.
66
67 COPY DFHAID.
68 COPY DFHBMSCA.
69
70 *----------------------------------------------------------------*
71 * LINKAGE SECTION
72 *----------------------------------------------------------------*
73 LINKAGE SECTION.
74 01 DFHCOMMAREA.
75 05 LK-COMMAREA PIC X(01)
76 OCCURS 1 TO 32767 TIMES DEPENDING ON EIBCALEN.
77
78 *----------------------------------------------------------------*
79 * PROCEDURE DIVISION
80 *----------------------------------------------------------------*
81 PROCEDURE DIVISION.
82 MAIN-PARA.
83
84 SET ERR-FLG-OFF TO TRUE
85 SET USR-MODIFIED-NO TO TRUE
86
87 MOVE SPACES TO WS-MESSAGE
88 ERRMSGO OF COUSR3AO
89
90 IF EIBCALEN = 0
91 MOVE 'COSGN00C' TO CDEMO-TO-PROGRAM
92 PERFORM RETURN-TO-PREV-SCREEN
93 ELSE
94 MOVE DFHCOMMAREA(1:EIBCALEN) TO CARDDEMO-COMMAREA
95 IF NOT CDEMO-PGM-REENTER
96 SET CDEMO-PGM-REENTER TO TRUE
97 MOVE LOW-VALUES TO COUSR3AO
98 MOVE -1 TO USRIDINL OF COUSR3AI
99 IF CDEMO-CU03-USR-SELECTED NOT =
100 SPACES AND LOW-VALUES
101 MOVE CDEMO-CU03-USR-SELECTED TO
102 USRIDINI OF COUSR3AI
103 PERFORM PROCESS-ENTER-KEY
104 END-IF
105 PERFORM SEND-USRDEL-SCREEN
106 ELSE
107 PERFORM RECEIVE-USRDEL-SCREEN
108 EVALUATE EIBAID
109 WHEN DFHENTER
110 PERFORM PROCESS-ENTER-KEY
111 WHEN DFHPF3
112 IF CDEMO-FROM-PROGRAM = SPACES OR LOW-VALUES
113 MOVE 'COADM01C' TO CDEMO-TO-PROGRAM
114 ELSE
115 MOVE CDEMO-FROM-PROGRAM TO
116 CDEMO-TO-PROGRAM
117 END-IF
118 PERFORM RETURN-TO-PREV-SCREEN
119 WHEN DFHPF4
120 PERFORM CLEAR-CURRENT-SCREEN
121 WHEN DFHPF5
122 PERFORM DELETE-USER-INFO
123 WHEN DFHPF12
124 MOVE 'COADM01C' TO CDEMO-TO-PROGRAM
125 PERFORM RETURN-TO-PREV-SCREEN
126 WHEN OTHER
127 MOVE 'Y' TO WS-ERR-FLG
128 MOVE CCDA-MSG-INVALID-KEY TO WS-MESSAGE
129 PERFORM SEND-USRDEL-SCREEN
130 END-EVALUATE
131 END-IF
132 END-IF
133
134 EXEC CICS RETURN
135 TRANSID (WS-TRANID)
136 COMMAREA (CARDDEMO-COMMAREA)
137 END-EXEC.
138
139 *----------------------------------------------------------------*
140 * PROCESS-ENTER-KEY
141 *----------------------------------------------------------------*
142 PROCESS-ENTER-KEY.
143
144 EVALUATE TRUE
145 WHEN USRIDINI OF COUSR3AI = SPACES OR LOW-VALUES
146 MOVE 'Y' TO WS-ERR-FLG
147 MOVE 'User ID can NOT be empty...' TO
148 WS-MESSAGE
149 MOVE -1 TO USRIDINL OF COUSR3AI
150 PERFORM SEND-USRDEL-SCREEN
151 WHEN OTHER
152 MOVE -1 TO USRIDINL OF COUSR3AI
153 CONTINUE
154 END-EVALUATE
155
156 IF NOT ERR-FLG-ON
157 MOVE SPACES TO FNAMEI OF COUSR3AI
158 LNAMEI OF COUSR3AI
159 USRTYPEI OF COUSR3AI
160 MOVE USRIDINI OF COUSR3AI TO SEC-USR-ID
161 PERFORM READ-USER-SEC-FILE
162 END-IF.
163
164 IF NOT ERR-FLG-ON
165 MOVE SEC-USR-FNAME TO FNAMEI OF COUSR3AI
166 MOVE SEC-USR-LNAME TO LNAMEI OF COUSR3AI
167 MOVE SEC-USR-TYPE TO USRTYPEI OF COUSR3AI
168 PERFORM SEND-USRDEL-SCREEN
169 END-IF.
170
171 *----------------------------------------------------------------*
172 * DELETE-USER-INFO
173 *----------------------------------------------------------------*
174 DELETE-USER-INFO.
175
176 EVALUATE TRUE
177 WHEN USRIDINI OF COUSR3AI = SPACES OR LOW-VALUES
178 MOVE 'Y' TO WS-ERR-FLG
179 MOVE 'User ID can NOT be empty...' TO
180 WS-MESSAGE
181 MOVE -1 TO USRIDINL OF COUSR3AI
182 PERFORM SEND-USRDEL-SCREEN
183 WHEN OTHER
184 MOVE -1 TO USRIDINL OF COUSR3AI
185 CONTINUE
186 END-EVALUATE
187
188 IF NOT ERR-FLG-ON
189 MOVE USRIDINI OF COUSR3AI TO SEC-USR-ID
190 PERFORM READ-USER-SEC-FILE
191 PERFORM DELETE-USER-SEC-FILE
192 END-IF.
193
194 *----------------------------------------------------------------*
195 * RETURN-TO-PREV-SCREEN
196 *----------------------------------------------------------------*
197 RETURN-TO-PREV-SCREEN.
198
199 IF CDEMO-TO-PROGRAM = LOW-VALUES OR SPACES
200 MOVE 'COSGN00C' TO CDEMO-TO-PROGRAM
201 END-IF
202 MOVE WS-TRANID TO CDEMO-FROM-TRANID
203 MOVE WS-PGMNAME TO CDEMO-FROM-PROGRAM
204 MOVE ZEROS TO CDEMO-PGM-CONTEXT
205 EXEC CICS
206 XCTL PROGRAM(CDEMO-TO-PROGRAM)
207 COMMAREA(CARDDEMO-COMMAREA)
208 END-EXEC.
209
210 *----------------------------------------------------------------*
211 * SEND-USRDEL-SCREEN
212 *----------------------------------------------------------------*
213 SEND-USRDEL-SCREEN.
214
215 PERFORM POPULATE-HEADER-INFO
216
217 MOVE WS-MESSAGE TO ERRMSGO OF COUSR3AO
218
219 EXEC CICS SEND
220 MAP('COUSR3A')
221 MAPSET('COUSR03')
222 FROM(COUSR3AO)
223 ERASE
224 CURSOR
225 END-EXEC.
226
227 *----------------------------------------------------------------*
228 * RECEIVE-USRDEL-SCREEN
229 *----------------------------------------------------------------*
230 RECEIVE-USRDEL-SCREEN.
231
232 EXEC CICS RECEIVE
233 MAP('COUSR3A')
234 MAPSET('COUSR03')
235 INTO(COUSR3AI)
236 RESP(WS-RESP-CD)
237 RESP2(WS-REAS-CD)
238 END-EXEC.
239
240 *----------------------------------------------------------------*
241 * POPULATE-HEADER-INFO
242 *----------------------------------------------------------------*
243 POPULATE-HEADER-INFO.
244
245 MOVE FUNCTION CURRENT-DATE TO WS-CURDATE-DATA
246
247 MOVE CCDA-TITLE01 TO TITLE01O OF COUSR3AO
248 MOVE CCDA-TITLE02 TO TITLE02O OF COUSR3AO
249 MOVE WS-TRANID TO TRNNAMEO OF COUSR3AO
250 MOVE WS-PGMNAME TO PGMNAMEO OF COUSR3AO
251
252 MOVE WS-CURDATE-MONTH TO WS-CURDATE-MM
253 MOVE WS-CURDATE-DAY TO WS-CURDATE-DD
254 MOVE WS-CURDATE-YEAR(3:2) TO WS-CURDATE-YY
255
256 MOVE WS-CURDATE-MM-DD-YY TO CURDATEO OF COUSR3AO
257
258 MOVE WS-CURTIME-HOURS TO WS-CURTIME-HH
259 MOVE WS-CURTIME-MINUTE TO WS-CURTIME-MM
260 MOVE WS-CURTIME-SECOND TO WS-CURTIME-SS
261
262 MOVE WS-CURTIME-HH-MM-SS TO CURTIMEO OF COUSR3AO.
263
264 *----------------------------------------------------------------*
265 * READ-USER-SEC-FILE
266 *----------------------------------------------------------------*
267 READ-USER-SEC-FILE.
268
269 EXEC CICS READ
270 DATASET (WS-USRSEC-FILE)
271 INTO (SEC-USER-DATA)
272 LENGTH (LENGTH OF SEC-USER-DATA)
273 RIDFLD (SEC-USR-ID)
274 KEYLENGTH (LENGTH OF SEC-USR-ID)
275 UPDATE
276 RESP (WS-RESP-CD)
277 RESP2 (WS-REAS-CD)
278 END-EXEC.
279
280 EVALUATE WS-RESP-CD
281 WHEN DFHRESP(NORMAL)
282 CONTINUE
283 MOVE 'Press PF5 key to delete this user ...' TO
284 WS-MESSAGE
285 MOVE DFHNEUTR TO ERRMSGC OF COUSR3AO
286 PERFORM SEND-USRDEL-SCREEN
287 WHEN DFHRESP(NOTFND)
288 MOVE 'Y' TO WS-ERR-FLG
289 MOVE 'User ID NOT found...' TO
290 WS-MESSAGE
291 MOVE -1 TO USRIDINL OF COUSR3AI
292 PERFORM SEND-USRDEL-SCREEN
293 WHEN OTHER
294 DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CD
295 MOVE 'Y' TO WS-ERR-FLG
296 MOVE 'Unable to lookup User...' TO
297 WS-MESSAGE
298 MOVE -1 TO FNAMEL OF COUSR3AI
299 PERFORM SEND-USRDEL-SCREEN
300 END-EVALUATE.
301
302 *----------------------------------------------------------------*
303 * DELETE-USER-SEC-FILE
304 *----------------------------------------------------------------*
305 DELETE-USER-SEC-FILE.
306
307 EXEC CICS DELETE
308 DATASET (WS-USRSEC-FILE)
309 RESP (WS-RESP-CD)
310 RESP2 (WS-REAS-CD)
311 END-EXEC.
312
313 EVALUATE WS-RESP-CD
314 WHEN DFHRESP(NORMAL)
315 PERFORM INITIALIZE-ALL-FIELDS
316 MOVE SPACES TO WS-MESSAGE
317 MOVE DFHGREEN TO ERRMSGC OF COUSR3AO
318 STRING 'User ' DELIMITED BY SIZE
319 SEC-USR-ID DELIMITED BY SPACE
320 ' has been deleted ...' DELIMITED BY SIZE
321 INTO WS-MESSAGE
322 PERFORM SEND-USRDEL-SCREEN
323 WHEN DFHRESP(NOTFND)
324 MOVE 'Y' TO WS-ERR-FLG
325 MOVE 'User ID NOT found...' TO
326 WS-MESSAGE
327 MOVE -1 TO USRIDINL OF COUSR3AI
328 PERFORM SEND-USRDEL-SCREEN
329 WHEN OTHER
330 DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CD
331 MOVE 'Y' TO WS-ERR-FLG
332 MOVE 'Unable to Update User...' TO
333 WS-MESSAGE
334 MOVE -1 TO FNAMEL OF COUSR3AI
335 PERFORM SEND-USRDEL-SCREEN
336 END-EVALUATE.
337
338 *----------------------------------------------------------------*
339 * CLEAR-CURRENT-SCREEN
340 *----------------------------------------------------------------*
341 CLEAR-CURRENT-SCREEN.
342
343 PERFORM INITIALIZE-ALL-FIELDS.
344 PERFORM SEND-USRDEL-SCREEN.
345
346 *----------------------------------------------------------------*
347 * INITIALIZE-ALL-FIELDS
348 *----------------------------------------------------------------*
349 INITIALIZE-ALL-FIELDS.
350
351 MOVE -1 TO USRIDINL OF COUSR3AI
352 MOVE SPACES TO USRIDINI OF COUSR3AI
353 FNAMEI OF COUSR3AI
354 LNAMEI OF COUSR3AI
355 USRTYPEI OF COUSR3AI
356 WS-MESSAGE.
357 *
358 * Ver: CardDemo_v1.0-15-g27d6c6f-68 Date: 2022-07-19 23:12:35 CDT
359 *