MFmainframe-rea
WS carddemo · 26f629ef

cobol · 699 lines · sha256 51479f131b4fb300 · guides at columns 7 and 72app/cbl/COTRN00C.cbl

1 ******************************************************************
2 * Program : COTRN00C.CBL
3 * Application : CardDemo
4 * Type : CICS COBOL Program
5 * Function : List Transactions from TRANSACT 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. COTRN00C.
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 'COTRN00C'.
37 05 WS-TRANID PIC X(04) VALUE 'CT00'.
38 05 WS-MESSAGE PIC X(80) VALUE SPACES.
39 05 WS-TRANSACT-FILE PIC X(08) VALUE 'TRANSACT'.
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-TRANSACT-EOF PIC X(01) VALUE 'N'.
44 88 TRANSACT-EOF VALUE 'Y'.
45 88 TRANSACT-NOT-EOF VALUE 'N'.
46 05 WS-SEND-ERASE-FLG PIC X(01) VALUE 'Y'.
47 88 SEND-ERASE-YES VALUE 'Y'.
48 88 SEND-ERASE-NO VALUE 'N'.
49
50 05 WS-RESP-CD PIC S9(09) COMP VALUE ZEROS.
51 05 WS-REAS-CD PIC S9(09) COMP VALUE ZEROS.
52 05 WS-REC-COUNT PIC S9(04) COMP VALUE ZEROS.
53 05 WS-IDX PIC S9(04) COMP VALUE ZEROS.
54 05 WS-PAGE-NUM PIC S9(04) COMP VALUE ZEROS.
55
56 05 WS-TRAN-AMT PIC +99999999.99.
57 05 WS-TRAN-DATE PIC X(08) VALUE '00/00/00'.
58
59
60
61 COPY COCOM01Y.
62 05 CDEMO-CT00-INFO.
63 10 CDEMO-CT00-TRNID-FIRST PIC X(16).
64 10 CDEMO-CT00-TRNID-LAST PIC X(16).
65 10 CDEMO-CT00-PAGE-NUM PIC 9(08).
66 10 CDEMO-CT00-NEXT-PAGE-FLG PIC X(01) VALUE 'N'.
67 88 NEXT-PAGE-YES VALUE 'Y'.
68 88 NEXT-PAGE-NO VALUE 'N'.
69 10 CDEMO-CT00-TRN-SEL-FLG PIC X(01).
70 10 CDEMO-CT00-TRN-SELECTED PIC X(16).
71
72 COPY COTRN00.
73
74 COPY COTTL01Y.
75 COPY CSDAT01Y.
76 COPY CSMSG01Y.
77
78 COPY CVTRA05Y.
79
80 COPY DFHAID.
81 COPY DFHBMSCA.
82
83 *----------------------------------------------------------------*
84 * LINKAGE SECTION
85 *----------------------------------------------------------------*
86 LINKAGE SECTION.
87 01 DFHCOMMAREA.
88 05 LK-COMMAREA PIC X(01)
89 OCCURS 1 TO 32767 TIMES DEPENDING ON EIBCALEN.
90
91 *----------------------------------------------------------------*
92 * PROCEDURE DIVISION
93 *----------------------------------------------------------------*
94 PROCEDURE DIVISION.
95 MAIN-PARA.
96
97 SET ERR-FLG-OFF TO TRUE
98 SET TRANSACT-NOT-EOF TO TRUE
99 SET NEXT-PAGE-NO TO TRUE
100 SET SEND-ERASE-YES TO TRUE
101
102 MOVE SPACES TO WS-MESSAGE
103 ERRMSGO OF COTRN0AO
104
105 MOVE -1 TO TRNIDINL OF COTRN0AI
106
107 IF EIBCALEN = 0
108 MOVE 'COSGN00C' TO CDEMO-TO-PROGRAM
109 PERFORM RETURN-TO-PREV-SCREEN
110 ELSE
111 MOVE DFHCOMMAREA(1:EIBCALEN) TO CARDDEMO-COMMAREA
112 IF NOT CDEMO-PGM-REENTER
113 SET CDEMO-PGM-REENTER TO TRUE
114 MOVE LOW-VALUES TO COTRN0AO
115 PERFORM PROCESS-ENTER-KEY
116 PERFORM SEND-TRNLST-SCREEN
117 ELSE
118 PERFORM RECEIVE-TRNLST-SCREEN
119 EVALUATE EIBAID
120 WHEN DFHENTER
121 PERFORM PROCESS-ENTER-KEY
122 WHEN DFHPF3
123 MOVE 'COMEN01C' TO CDEMO-TO-PROGRAM
124 PERFORM RETURN-TO-PREV-SCREEN
125 WHEN DFHPF7
126 PERFORM PROCESS-PF7-KEY
127 WHEN DFHPF8
128 PERFORM PROCESS-PF8-KEY
129 WHEN OTHER
130 MOVE 'Y' TO WS-ERR-FLG
131 MOVE -1 TO TRNIDINL OF COTRN0AI
132 MOVE CCDA-MSG-INVALID-KEY TO WS-MESSAGE
133 PERFORM SEND-TRNLST-SCREEN
134 END-EVALUATE
135 END-IF
136 END-IF
137
138 EXEC CICS RETURN
139 TRANSID (WS-TRANID)
140 COMMAREA (CARDDEMO-COMMAREA)
141 END-EXEC.
142
143 *----------------------------------------------------------------*
144 * PROCESS-ENTER-KEY
145 *----------------------------------------------------------------*
146 PROCESS-ENTER-KEY.
147
148 EVALUATE TRUE
149 WHEN SEL0001I OF COTRN0AI NOT = SPACES AND LOW-VALUES
150 MOVE SEL0001I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
151 MOVE TRNID01I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
152 WHEN SEL0002I OF COTRN0AI NOT = SPACES AND LOW-VALUES
153 MOVE SEL0002I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
154 MOVE TRNID02I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
155 WHEN SEL0003I OF COTRN0AI NOT = SPACES AND LOW-VALUES
156 MOVE SEL0003I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
157 MOVE TRNID03I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
158 WHEN SEL0004I OF COTRN0AI NOT = SPACES AND LOW-VALUES
159 MOVE SEL0004I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
160 MOVE TRNID04I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
161 WHEN SEL0005I OF COTRN0AI NOT = SPACES AND LOW-VALUES
162 MOVE SEL0005I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
163 MOVE TRNID05I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
164 WHEN SEL0006I OF COTRN0AI NOT = SPACES AND LOW-VALUES
165 MOVE SEL0006I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
166 MOVE TRNID06I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
167 WHEN SEL0007I OF COTRN0AI NOT = SPACES AND LOW-VALUES
168 MOVE SEL0007I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
169 MOVE TRNID07I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
170 WHEN SEL0008I OF COTRN0AI NOT = SPACES AND LOW-VALUES
171 MOVE SEL0008I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
172 MOVE TRNID08I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
173 WHEN SEL0009I OF COTRN0AI NOT = SPACES AND LOW-VALUES
174 MOVE SEL0009I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
175 MOVE TRNID09I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
176 WHEN SEL0010I OF COTRN0AI NOT = SPACES AND LOW-VALUES
177 MOVE SEL0010I OF COTRN0AI TO CDEMO-CT00-TRN-SEL-FLG
178 MOVE TRNID10I OF COTRN0AI TO CDEMO-CT00-TRN-SELECTED
179 WHEN OTHER
180 MOVE SPACES TO CDEMO-CT00-TRN-SEL-FLG
181 MOVE SPACES TO CDEMO-CT00-TRN-SELECTED
182 END-EVALUATE
183 IF (CDEMO-CT00-TRN-SEL-FLG NOT = SPACES AND LOW-VALUES) AND
184 (CDEMO-CT00-TRN-SELECTED NOT = SPACES AND LOW-VALUES)
185 EVALUATE CDEMO-CT00-TRN-SEL-FLG
186 WHEN 'S'
187 WHEN 's'
188 MOVE 'COTRN01C' TO CDEMO-TO-PROGRAM
189 MOVE WS-TRANID TO CDEMO-FROM-TRANID
190 MOVE WS-PGMNAME TO CDEMO-FROM-PROGRAM
191 MOVE 0 TO CDEMO-PGM-CONTEXT
192 EXEC CICS
193 XCTL PROGRAM(CDEMO-TO-PROGRAM)
194 COMMAREA(CARDDEMO-COMMAREA)
195 END-EXEC
196 WHEN OTHER
197 * SET TRANSACT-EOF TO TRUE
198 MOVE
199 'Invalid selection. Valid value is S' TO
200 WS-MESSAGE
201 MOVE -1 TO TRNIDINL OF COTRN0AI
202 * PERFORM SEND-TRNLST-SCREEN
203 END-EVALUATE
204 END-IF
205
206 IF TRNIDINI OF COTRN0AI = SPACES OR LOW-VALUES
207 MOVE LOW-VALUES TO TRAN-ID
208 ELSE
209 IF TRNIDINI OF COTRN0AI IS NUMERIC
210 MOVE TRNIDINI OF COTRN0AI TO TRAN-ID
211 ELSE
212 MOVE 'Y' TO WS-ERR-FLG
213 MOVE
214 'Tran ID must be Numeric ...' TO
215 WS-MESSAGE
216 MOVE -1 TO TRNIDINL OF COTRN0AI
217 PERFORM SEND-TRNLST-SCREEN
218 END-IF
219 END-IF
220
221 MOVE -1 TO TRNIDINL OF COTRN0AI
222
223
224 MOVE 0 TO CDEMO-CT00-PAGE-NUM
225 PERFORM PROCESS-PAGE-FORWARD
226
227 IF NOT ERR-FLG-ON
228 MOVE SPACE TO TRNIDINO OF COTRN0AO
229 END-IF.
230
231 *----------------------------------------------------------------*
232 * PROCESS-PF7-KEY
233 *----------------------------------------------------------------*
234 PROCESS-PF7-KEY.
235
236 IF CDEMO-CT00-TRNID-FIRST = SPACES OR LOW-VALUES
237 MOVE LOW-VALUES TO TRAN-ID
238 ELSE
239 MOVE CDEMO-CT00-TRNID-FIRST TO TRAN-ID
240 END-IF
241
242 SET NEXT-PAGE-YES TO TRUE
243 MOVE -1 TO TRNIDINL OF COTRN0AI
244
245 IF CDEMO-CT00-PAGE-NUM > 1
246 PERFORM PROCESS-PAGE-BACKWARD
247 ELSE
248 MOVE 'You are already at the top of the page...' TO
249 WS-MESSAGE
250 SET SEND-ERASE-NO TO TRUE
251 PERFORM SEND-TRNLST-SCREEN
252 END-IF.
253
254 *----------------------------------------------------------------*
255 * PROCESS-PF8-KEY
256 *----------------------------------------------------------------*
257 PROCESS-PF8-KEY.
258
259 IF CDEMO-CT00-TRNID-LAST = SPACES OR LOW-VALUES
260 MOVE HIGH-VALUES TO TRAN-ID
261 ELSE
262 MOVE CDEMO-CT00-TRNID-LAST TO TRAN-ID
263 END-IF
264
265 MOVE -1 TO TRNIDINL OF COTRN0AI
266
267 IF NEXT-PAGE-YES
268 PERFORM PROCESS-PAGE-FORWARD
269 ELSE
270 MOVE 'You are already at the bottom of the page...' TO
271 WS-MESSAGE
272 SET SEND-ERASE-NO TO TRUE
273 PERFORM SEND-TRNLST-SCREEN
274 END-IF.
275
276 *----------------------------------------------------------------*
277 * PROCESS-PAGE-FORWARD
278 *----------------------------------------------------------------*
279 PROCESS-PAGE-FORWARD.
280
281 PERFORM STARTBR-TRANSACT-FILE
282
283 IF NOT ERR-FLG-ON
284
285 IF EIBAID NOT = DFHENTER AND DFHPF7 AND DFHPF3
286 PERFORM READNEXT-TRANSACT-FILE
287 END-IF
288
289 IF TRANSACT-NOT-EOF AND ERR-FLG-OFF
290 PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > 10
291 PERFORM INITIALIZE-TRAN-DATA
292 END-PERFORM
293 END-IF
294
295 MOVE 1 TO WS-IDX
296
297 PERFORM UNTIL WS-IDX >= 11 OR TRANSACT-EOF OR ERR-FLG-ON
298 PERFORM READNEXT-TRANSACT-FILE
299 IF TRANSACT-NOT-EOF AND ERR-FLG-OFF
300 PERFORM POPULATE-TRAN-DATA
301 COMPUTE WS-IDX = WS-IDX + 1
302 END-IF
303 END-PERFORM
304
305 IF TRANSACT-NOT-EOF AND ERR-FLG-OFF
306 COMPUTE CDEMO-CT00-PAGE-NUM =
307 CDEMO-CT00-PAGE-NUM + 1
308 PERFORM READNEXT-TRANSACT-FILE
309 IF TRANSACT-NOT-EOF AND ERR-FLG-OFF
310 SET NEXT-PAGE-YES TO TRUE
311 ELSE
312 SET NEXT-PAGE-NO TO TRUE
313 END-IF
314 ELSE
315 SET NEXT-PAGE-NO TO TRUE
316 IF WS-IDX > 1
317 COMPUTE CDEMO-CT00-PAGE-NUM = CDEMO-CT00-PAGE-NUM
318 + 1
319 END-IF
320 END-IF
321
322 PERFORM ENDBR-TRANSACT-FILE
323
324 MOVE CDEMO-CT00-PAGE-NUM TO PAGENUMI OF COTRN0AI
325 MOVE SPACE TO TRNIDINO OF COTRN0AO
326 PERFORM SEND-TRNLST-SCREEN
327
328 END-IF.
329
330 *----------------------------------------------------------------*
331 * PROCESS-PAGE-BACKWARD
332 *----------------------------------------------------------------*
333 PROCESS-PAGE-BACKWARD.
334
335 PERFORM STARTBR-TRANSACT-FILE
336
337 IF NOT ERR-FLG-ON
338
339 IF EIBAID NOT = DFHENTER AND DFHPF8
340 PERFORM READPREV-TRANSACT-FILE
341 END-IF
342
343 IF TRANSACT-NOT-EOF AND ERR-FLG-OFF
344 PERFORM VARYING WS-IDX FROM 1 BY 1 UNTIL WS-IDX > 10
345 PERFORM INITIALIZE-TRAN-DATA
346 END-PERFORM
347 END-IF
348
349 MOVE 10 TO WS-IDX
350
351 PERFORM UNTIL WS-IDX <= 0 OR TRANSACT-EOF OR ERR-FLG-ON
352 PERFORM READPREV-TRANSACT-FILE
353 IF TRANSACT-NOT-EOF AND ERR-FLG-OFF
354 PERFORM POPULATE-TRAN-DATA
355 COMPUTE WS-IDX = WS-IDX - 1
356 END-IF
357 END-PERFORM
358
359 IF TRANSACT-NOT-EOF AND ERR-FLG-OFF
360 PERFORM READPREV-TRANSACT-FILE
361 IF NEXT-PAGE-YES
362 IF TRANSACT-NOT-EOF AND ERR-FLG-OFF AND
363 CDEMO-CT00-PAGE-NUM > 1
364 SUBTRACT 1 FROM CDEMO-CT00-PAGE-NUM
365 ELSE
366 MOVE 1 TO CDEMO-CT00-PAGE-NUM
367 END-IF
368 END-IF
369 END-IF
370
371 PERFORM ENDBR-TRANSACT-FILE
372
373 MOVE CDEMO-CT00-PAGE-NUM TO PAGENUMI OF COTRN0AI
374 PERFORM SEND-TRNLST-SCREEN
375
376 END-IF.
377
378 *----------------------------------------------------------------*
379 * POPULATE-TRAN-DATA
380 *----------------------------------------------------------------*
381 POPULATE-TRAN-DATA.
382
383 MOVE TRAN-AMT TO WS-TRAN-AMT
384 MOVE TRAN-ORIG-TS TO WS-TIMESTAMP
385 MOVE WS-TIMESTAMP-DT-YYYY(3:2) TO WS-CURDATE-YY
386 MOVE WS-TIMESTAMP-DT-MM TO WS-CURDATE-MM
387 MOVE WS-TIMESTAMP-DT-DD TO WS-CURDATE-DD
388 MOVE WS-CURDATE-MM-DD-YY TO WS-TRAN-DATE
389
390 EVALUATE WS-IDX
391 WHEN 1
392 MOVE TRAN-ID TO TRNID01I OF COTRN0AI
393 CDEMO-CT00-TRNID-FIRST
394 MOVE WS-TRAN-DATE TO TDATE01I OF COTRN0AI
395 MOVE TRAN-DESC TO TDESC01I OF COTRN0AI
396 MOVE WS-TRAN-AMT TO TAMT001I OF COTRN0AI
397 WHEN 2
398 MOVE TRAN-ID TO TRNID02I OF COTRN0AI
399 MOVE WS-TRAN-DATE TO TDATE02I OF COTRN0AI
400 MOVE TRAN-DESC TO TDESC02I OF COTRN0AI
401 MOVE WS-TRAN-AMT TO TAMT002I OF COTRN0AI
402 WHEN 3
403 MOVE TRAN-ID TO TRNID03I OF COTRN0AI
404 MOVE WS-TRAN-DATE TO TDATE03I OF COTRN0AI
405 MOVE TRAN-DESC TO TDESC03I OF COTRN0AI
406 MOVE WS-TRAN-AMT TO TAMT003I OF COTRN0AI
407 WHEN 4
408 MOVE TRAN-ID TO TRNID04I OF COTRN0AI
409 MOVE WS-TRAN-DATE TO TDATE04I OF COTRN0AI
410 MOVE TRAN-DESC TO TDESC04I OF COTRN0AI
411 MOVE WS-TRAN-AMT TO TAMT004I OF COTRN0AI
412 WHEN 5
413 MOVE TRAN-ID TO TRNID05I OF COTRN0AI
414 MOVE WS-TRAN-DATE TO TDATE05I OF COTRN0AI
415 MOVE TRAN-DESC TO TDESC05I OF COTRN0AI
416 MOVE WS-TRAN-AMT TO TAMT005I OF COTRN0AI
417 WHEN 6
418 MOVE TRAN-ID TO TRNID06I OF COTRN0AI
419 MOVE WS-TRAN-DATE TO TDATE06I OF COTRN0AI
420 MOVE TRAN-DESC TO TDESC06I OF COTRN0AI
421 MOVE WS-TRAN-AMT TO TAMT006I OF COTRN0AI
422 WHEN 7
423 MOVE TRAN-ID TO TRNID07I OF COTRN0AI
424 MOVE WS-TRAN-DATE TO TDATE07I OF COTRN0AI
425 MOVE TRAN-DESC TO TDESC07I OF COTRN0AI
426 MOVE WS-TRAN-AMT TO TAMT007I OF COTRN0AI
427 WHEN 8
428 MOVE TRAN-ID TO TRNID08I OF COTRN0AI
429 MOVE WS-TRAN-DATE TO TDATE08I OF COTRN0AI
430 MOVE TRAN-DESC TO TDESC08I OF COTRN0AI
431 MOVE WS-TRAN-AMT TO TAMT008I OF COTRN0AI
432 WHEN 9
433 MOVE TRAN-ID TO TRNID09I OF COTRN0AI
434 MOVE WS-TRAN-DATE TO TDATE09I OF COTRN0AI
435 MOVE TRAN-DESC TO TDESC09I OF COTRN0AI
436 MOVE WS-TRAN-AMT TO TAMT009I OF COTRN0AI
437 WHEN 10
438 MOVE TRAN-ID TO TRNID10I OF COTRN0AI
439 CDEMO-CT00-TRNID-LAST
440 MOVE WS-TRAN-DATE TO TDATE10I OF COTRN0AI
441 MOVE TRAN-DESC TO TDESC10I OF COTRN0AI
442 MOVE WS-TRAN-AMT TO TAMT010I OF COTRN0AI
443 WHEN OTHER
444 CONTINUE
445 END-EVALUATE.
446
447 *----------------------------------------------------------------*
448 * INITIALIZE-TRAN-DATA
449 *----------------------------------------------------------------*
450 INITIALIZE-TRAN-DATA.
451
452 EVALUATE WS-IDX
453 WHEN 1
454 MOVE SPACES TO TRNID01I OF COTRN0AI
455 MOVE SPACES TO TDATE01I OF COTRN0AI
456 MOVE SPACES TO TDESC01I OF COTRN0AI
457 MOVE SPACES TO TAMT001I OF COTRN0AI
458 WHEN 2
459 MOVE SPACES TO TRNID02I OF COTRN0AI
460 MOVE SPACES TO TDATE02I OF COTRN0AI
461 MOVE SPACES TO TDESC02I OF COTRN0AI
462 MOVE SPACES TO TAMT002I OF COTRN0AI
463 WHEN 3
464 MOVE SPACES TO TRNID03I OF COTRN0AI
465 MOVE SPACES TO TDATE03I OF COTRN0AI
466 MOVE SPACES TO TDESC03I OF COTRN0AI
467 MOVE SPACES TO TAMT003I OF COTRN0AI
468 WHEN 4
469 MOVE SPACES TO TRNID04I OF COTRN0AI
470 MOVE SPACES TO TDATE04I OF COTRN0AI
471 MOVE SPACES TO TDESC04I OF COTRN0AI
472 MOVE SPACES TO TAMT004I OF COTRN0AI
473 WHEN 5
474 MOVE SPACES TO TRNID05I OF COTRN0AI
475 MOVE SPACES TO TDATE05I OF COTRN0AI
476 MOVE SPACES TO TDESC05I OF COTRN0AI
477 MOVE SPACES TO TAMT005I OF COTRN0AI
478 WHEN 6
479 MOVE SPACES TO TRNID06I OF COTRN0AI
480 MOVE SPACES TO TDATE06I OF COTRN0AI
481 MOVE SPACES TO TDESC06I OF COTRN0AI
482 MOVE SPACES TO TAMT006I OF COTRN0AI
483 WHEN 7
484 MOVE SPACES TO TRNID07I OF COTRN0AI
485 MOVE SPACES TO TDATE07I OF COTRN0AI
486 MOVE SPACES TO TDESC07I OF COTRN0AI
487 MOVE SPACES TO TAMT007I OF COTRN0AI
488 WHEN 8
489 MOVE SPACES TO TRNID08I OF COTRN0AI
490 MOVE SPACES TO TDATE08I OF COTRN0AI
491 MOVE SPACES TO TDESC08I OF COTRN0AI
492 MOVE SPACES TO TAMT008I OF COTRN0AI
493 WHEN 9
494 MOVE SPACES TO TRNID09I OF COTRN0AI
495 MOVE SPACES TO TDATE09I OF COTRN0AI
496 MOVE SPACES TO TDESC09I OF COTRN0AI
497 MOVE SPACES TO TAMT009I OF COTRN0AI
498 WHEN 10
499 MOVE SPACES TO TRNID10I OF COTRN0AI
500 MOVE SPACES TO TDATE10I OF COTRN0AI
501 MOVE SPACES TO TDESC10I OF COTRN0AI
502 MOVE SPACES TO TAMT010I OF COTRN0AI
503 WHEN OTHER
504 CONTINUE
505 END-EVALUATE.
506
507 *----------------------------------------------------------------*
508 * RETURN-TO-PREV-SCREEN
509 *----------------------------------------------------------------*
510 RETURN-TO-PREV-SCREEN.
511
512 IF CDEMO-TO-PROGRAM = LOW-VALUES OR SPACES
513 MOVE 'COSGN00C' TO CDEMO-TO-PROGRAM
514 END-IF
515 MOVE WS-TRANID TO CDEMO-FROM-TRANID
516 MOVE WS-PGMNAME TO CDEMO-FROM-PROGRAM
517 MOVE ZEROS TO CDEMO-PGM-CONTEXT
518 EXEC CICS
519 XCTL PROGRAM(CDEMO-TO-PROGRAM)
520 COMMAREA(CARDDEMO-COMMAREA)
521 END-EXEC.
522
523
524 *----------------------------------------------------------------*
525 * SEND-TRNLST-SCREEN
526 *----------------------------------------------------------------*
527 SEND-TRNLST-SCREEN.
528
529 PERFORM POPULATE-HEADER-INFO
530
531 MOVE WS-MESSAGE TO ERRMSGO OF COTRN0AO
532
533 IF SEND-ERASE-YES
534 EXEC CICS SEND
535 MAP('COTRN0A')
536 MAPSET('COTRN00')
537 FROM(COTRN0AO)
538 ERASE
539 CURSOR
540 END-EXEC
541 ELSE
542 EXEC CICS SEND
543 MAP('COTRN0A')
544 MAPSET('COTRN00')
545 FROM(COTRN0AO)
546 * ERASE
547 CURSOR
548 END-EXEC
549 END-IF.
550
551 *----------------------------------------------------------------*
552 * RECEIVE-TRNLST-SCREEN
553 *----------------------------------------------------------------*
554 RECEIVE-TRNLST-SCREEN.
555
556 EXEC CICS RECEIVE
557 MAP('COTRN0A')
558 MAPSET('COTRN00')
559 INTO(COTRN0AI)
560 RESP(WS-RESP-CD)
561 RESP2(WS-REAS-CD)
562 END-EXEC.
563
564 *----------------------------------------------------------------*
565 * POPULATE-HEADER-INFO
566 *----------------------------------------------------------------*
567 POPULATE-HEADER-INFO.
568
569 MOVE FUNCTION CURRENT-DATE TO WS-CURDATE-DATA
570
571 MOVE CCDA-TITLE01 TO TITLE01O OF COTRN0AO
572 MOVE CCDA-TITLE02 TO TITLE02O OF COTRN0AO
573 MOVE WS-TRANID TO TRNNAMEO OF COTRN0AO
574 MOVE WS-PGMNAME TO PGMNAMEO OF COTRN0AO
575
576 MOVE WS-CURDATE-MONTH TO WS-CURDATE-MM
577 MOVE WS-CURDATE-DAY TO WS-CURDATE-DD
578 MOVE WS-CURDATE-YEAR(3:2) TO WS-CURDATE-YY
579
580 MOVE WS-CURDATE-MM-DD-YY TO CURDATEO OF COTRN0AO
581
582 MOVE WS-CURTIME-HOURS TO WS-CURTIME-HH
583 MOVE WS-CURTIME-MINUTE TO WS-CURTIME-MM
584 MOVE WS-CURTIME-SECOND TO WS-CURTIME-SS
585
586 MOVE WS-CURTIME-HH-MM-SS TO CURTIMEO OF COTRN0AO.
587
588 *----------------------------------------------------------------*
589 * STARTBR-TRANSACT-FILE
590 *----------------------------------------------------------------*
591 STARTBR-TRANSACT-FILE.
592
593 EXEC CICS STARTBR
594 DATASET (WS-TRANSACT-FILE)
595 RIDFLD (TRAN-ID)
596 KEYLENGTH (LENGTH OF TRAN-ID)
597 * GTEQ
598 RESP (WS-RESP-CD)
599 RESP2 (WS-REAS-CD)
600 END-EXEC.
601
602 EVALUATE WS-RESP-CD
603 WHEN DFHRESP(NORMAL)
604 CONTINUE
605 WHEN DFHRESP(NOTFND)
606 CONTINUE
607 SET TRANSACT-EOF TO TRUE
608 MOVE 'You are at the top of the page...' TO
609 WS-MESSAGE
610 MOVE -1 TO TRNIDINL OF COTRN0AI
611 PERFORM SEND-TRNLST-SCREEN
612 WHEN OTHER
613 DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CD
614 MOVE 'Y' TO WS-ERR-FLG
615 MOVE 'Unable to lookup transaction...' TO
616 WS-MESSAGE
617 MOVE -1 TO TRNIDINL OF COTRN0AI
618 PERFORM SEND-TRNLST-SCREEN
619 END-EVALUATE.
620
621 *----------------------------------------------------------------*
622 * READNEXT-TRANSACT-FILE
623 *----------------------------------------------------------------*
624 READNEXT-TRANSACT-FILE.
625
626 EXEC CICS READNEXT
627 DATASET (WS-TRANSACT-FILE)
628 INTO (TRAN-RECORD)
629 LENGTH (LENGTH OF TRAN-RECORD)
630 RIDFLD (TRAN-ID)
631 KEYLENGTH (LENGTH OF TRAN-ID)
632 RESP (WS-RESP-CD)
633 RESP2 (WS-REAS-CD)
634 END-EXEC.
635
636 EVALUATE WS-RESP-CD
637 WHEN DFHRESP(NORMAL)
638 CONTINUE
639 WHEN DFHRESP(ENDFILE)
640 CONTINUE
641 SET TRANSACT-EOF TO TRUE
642 MOVE 'You have reached the bottom of the page...' TO
643 WS-MESSAGE
644 MOVE -1 TO TRNIDINL OF COTRN0AI
645 PERFORM SEND-TRNLST-SCREEN
646 WHEN OTHER
647 DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CD
648 MOVE 'Y' TO WS-ERR-FLG
649 MOVE 'Unable to lookup transaction...' TO
650 WS-MESSAGE
651 MOVE -1 TO TRNIDINL OF COTRN0AI
652 PERFORM SEND-TRNLST-SCREEN
653 END-EVALUATE.
654
655 *----------------------------------------------------------------*
656 * READPREV-TRANSACT-FILE
657 *----------------------------------------------------------------*
658 READPREV-TRANSACT-FILE.
659
660 EXEC CICS READPREV
661 DATASET (WS-TRANSACT-FILE)
662 INTO (TRAN-RECORD)
663 LENGTH (LENGTH OF TRAN-RECORD)
664 RIDFLD (TRAN-ID)
665 KEYLENGTH (LENGTH OF TRAN-ID)
666 RESP (WS-RESP-CD)
667 RESP2 (WS-REAS-CD)
668 END-EXEC.
669
670 EVALUATE WS-RESP-CD
671 WHEN DFHRESP(NORMAL)
672 CONTINUE
673 WHEN DFHRESP(ENDFILE)
674 CONTINUE
675 SET TRANSACT-EOF TO TRUE
676 MOVE 'You have reached the top of the page...' TO
677 WS-MESSAGE
678 MOVE -1 TO TRNIDINL OF COTRN0AI
679 PERFORM SEND-TRNLST-SCREEN
680 WHEN OTHER
681 DISPLAY 'RESP:' WS-RESP-CD 'REAS:' WS-REAS-CD
682 MOVE 'Y' TO WS-ERR-FLG
683 MOVE 'Unable to lookup transaction...' TO
684 WS-MESSAGE
685 MOVE -1 TO TRNIDINL OF COTRN0AI
686 PERFORM SEND-TRNLST-SCREEN
687 END-EVALUATE.
688
689 *----------------------------------------------------------------*
690 * ENDBR-TRANSACT-FILE
691 *----------------------------------------------------------------*
692 ENDBR-TRANSACT-FILE.
693
694 EXEC CICS ENDBR
695 DATASET (WS-TRANSACT-FILE)
696 END-EXEC.
697 *
698 * Ver: CardDemo_v1.0-15-g27d6c6f-68 Date: 2022-07-19 23:12:34 CDT
699 *