Hi Enrico,
I observed after the below logic i.e., line num 31 it's directly moving to Otherwise condition. so i have commented the code line 30 & 31 after that also it's not working.
I'm not sure if i miss something here.
Code: Select all
000026 when left( tail, 9 ) = "EXEC CICS" then do
000027 exec = space( exec tail )
000028 end
000029
000030 when left( tail, 8) = "END-EXEC" then do
000031 exec = space( exec tail )
My complete code(same as you provided):
Code: Select all
000001 do i = 1 to data.0
000002 exec = ""; iden = ""; line = ""
000003
000004 work = translate( data.i, " ", "'")
000005 work = translate( work )
000006 work = space( work )
000007
000008 parse var work head "|" tail
000009 head = strip( head )
000010 line = head "|"
000011
000012 tail = strip( tail )
000013
000014 line = head "|"
000015 say ' line : ' line
000016 say ' tail1: ' tail
000017 p = pos("(", tail )
000018 say ' p : ' p
000019 do while p > 0
000020 tail = left( tail, p-1) || substr( tail, p+1)
000021 p = pos( "(", tail )
000022 end
000023
000024 select
000025
000026 when left( tail, 9 ) = "EXEC CICS" then do
000027 exec = space( exec tail )
000028 end
000029
000030 when left( tail, 8) = "END-EXEC" then do
000031 exec = space( exec tail )
000032
000033 select
000034 when wordpos( word( exec, 3), "LINK XCTL" ) > 0 then do
000035 line = line word( exec, 3) "|"
000036 parse value(space(exec,0)) with . "PROGRAM(" iden ")" .
000037 line = line iden "|" "NA" "|" "NA" "|"
000038 end
000039
000040 when wordpos( word( exec, 3), "WRITE READ INQUIRE STARTBR ENDBR READNEXT" ) > 0 then do
000041 line = line word( exec, 3) "|"
000042 parse value(space(exec,0)) with . "FILE(" iden ")"
000043 if iden = "" then ,
000044 parse value(space(exec,0)) with . "DATASET(" iden ")" .
000045 line = line "NA" "|" iden "|" "NA" "|"
000046 end
000047
000048 when wordpos( word( exec, 3), "READQ WRITEQ" ) > 0 then do
000049 line = line word( exec, 3)
000050 line = line word( exec, 4) "|"
000051 parse value(space(exec,0)) with . "QUEUE(" iden ")" .
000052 line = line "NA" "|" "NA" "|" iden "|"
000053 end
000054
000055 otherwise do
000056 line = line "NA" "|" "NA" "|" "NA" "|"
000057 end
000058 end
000059
000060 say line
000061 exec = ""; iden = ""; line = ""
000062
000063 end
000064 otherwise do
000065 exec = space( exec tail )
000066 say ' exec : ' exec
000067 end
000068
000069 end
000070
000071 end
Input:
Code: Select all
AAAAAAAA | EXEC CICS
AAAAAAAA | LINK
AAAAAAAA | PROGRAM(WS-INVOKED-PGM)
AAAAAAAA | COMMAREA(API-COMMAREA)
AAAAAAAA | RESP (CICS-RESP)
AAAAAAAA | END-EXEC.
AAAAAAAA | EXEC CICS WRITE
AAAAAAAA | FILE (WS-LOG-FILE)
AAAAAAAA | FROM (WS-LOG-RECORD)
AAAAAAAA | LENGTH (LENGTH OF WS-LOG-RECORD)
AAAAAAAA | RIDFLD (WS-RBA)
AAAAAAAA | RBA
AAAAAAAA | RESP (CICS-RESP)
AAAAAAAA | END-EXEC.
AAAAAAAA | EXEC CICS WRITEQ TD
AAAAAAAA | QUEUE ('CSMT')
AAAAAAAA | FROM (WS-CSMT-AREA)
AAAAAAAA | NOHANDLE
AAAAAAAA | END-EXEC.
BBBBBBBB | EXEC CICS LINK PROGRAM ('XXXXXXXX' )
BBBBBBBB | COMMAREA (DSA-COMMAREA )
BBBBBBBB | LENGTH (DSA-COMMAREA-LENGTH)
BBBBBBBB | END-EXEC.
BBBBBBBB | EXEC CICS READQ TS QUEUE (TSQ2-WSD )
BBBBBBBB | INTO (TSQ-AREA )
BBBBBBBB | LENGTH (TSQ-LEN )
BBBBBBBB | ITEM (TSQ-ITEM )
BBBBBBBB | END-EXEC.
BBBBBBBB | EXEC CICS READQ TS
BBBBBBBB | QUEUE (WRK-WSD )
BBBBBBBB | INTO (WRK-AREA )
BBBBBBBB | LENGTH (LENGTH OF WRK-AREA)
BBBBBBBB | ITEM (WRK-ITEM )
BBBBBBBB | END-EXEC
BBBBBBBB | EXEC CICS READ INTO (XXXX )
BBBBBBBB | LENGTH (REC-LEN )
BBBBBBBB | DATASET (CURR-FILE )
BBBBBBBB | RIDFLD (REC-KEY )
BBBBBBBB | RESP (WS-RESP )
BBBBBBBB | END-EXEC.
BBBBBBBB | EXEC CICS STARTBR KEYLENGTH (KEY-LEN )
BBBBBBBB | DATASET (CURR-FILE )
BBBBBBBB | RIDFLD (REC-KEY )
BBBBBBBB | END-EXEC.
BBBBBBBB | EXEC CICS READNEXT INTO (CP01 )
BBBBBBBB | DATASET (CURR-FILE )
BBBBBBBB | RIDFLD (REC-KEY )
BBBBBBBB | END-EXEC.
BBBBBBBB | EXEC CICS ENDBR
BBBBBBBB | DATASET(CURR-FILE)
BBBBBBBB | END-EXEC
BBBBBBBB | EXEC CICS INQUIRE FILE (CURR-FILE )
BBBBBBBB | DSNAME (CURR-DSN )
BBBBBBBB | END-EXEC.
BBBBBBBB | EXEC CICS INQUIRE FILE (CURR-FILE )
BBBBBBBB | DSNAME (CURR-DSN )
BBBBBBBB | END-EXEC.
BBBBBBBB | EXEC CICS READQ TS QUEUE (TSQ2-WAD )
BBBBBBBB | INTO (TSQ-AREA )
BBBBBBBB | LENGTH (TSQ-LEN )
BBBBBBBB | ITEM (TSQ-ITEM )
BBBBBBBB | END-EXEC.
CCCCCCCC | EXEC CICS LINK
CCCCCCCC | PROGRAM (ID-PROGRAM)
CCCCCCCC | COMMAREA (ID-COMMAREA)
CCCCCCCC | LENGTH (ID-COMMAREA-LENGTH)
CCCCCCCC | END-EXEC.
CCCCCCCC | EXEC CICS WRITE
CCCCCCCC | FILE ('FILE1')
CCCCCCCC | FROM (FILE1-DSA)
CCCCCCCC | LENGTH (FILE1-LENGTH)
CCCCCCCC | RIDFLD (FILE1-RELATIVE-BYTE)
CCCCCCCC | RBA
CCCCCCCC | END-EXEC.
DDDDDDDD | EXEC CICS XCTL
DDDDDDDD | PROGRAM ('YYYYYYYY')
DDDDDDDD | COMMAREA (DFHCOMMAREA)
DDDDDDDD | LENGTH (WS-SUB)
DDDDDDDD | NOHANDLE
DDDDDDDD | END-EXEC.
EEEEEEEE | EXEC CICS XCTL PROGRAM (AV-XCTL-PGM)
EEEEEEEE | COMMAREA (CA-COMMAREA)
EEEEEEEE | LENGTH (IMS-COMM-FP-LEN)
EEEEEEEE | END-EXEC.
Output:
Code: Select all
AAAAAAAA | NA | NA | NA |
AAAAAAAA | NA | NA | NA |
AAAAAAAA | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
BBBBBBBB | NA | NA | NA |
CCCCCCCC | NA | NA | NA |
CCCCCCCC | NA | NA | NA |
DDDDDDDD | NA | NA | NA |
EEEEEEEE | NA | NA | NA |