OK, my brain is just missing something. I am doing a SPLICE operation
against the RACF database unload flat file. I am trying to merge (join)
information from the type 0200 (userid), 0220 (TSO segment), and 0230 (CICS
segment) onto a single record. If I have all three records, then the output
is what I want it to be. If I have the base record (0200) and TSO record
(0220), then the output is what I want. If have have all three records, then
the output is what I want. However, if I am missing the 0220 record for a
given userid, then I am also missing the 0230 information after the SPLICE.
Example (cut down)
0200 RACFID01 BASE INFO
0220 RACFID01 TSO INFO
0230 RACFID01 CICS INFO
result
0220 RACFID01 BASE INFO TSO INFO CICS INFO
if the 0220 record is missing, then I only get:
0200 RACIFID01 BASE INFO
Note that what look like spaces in the example records are indeed spaces. I
check.
//TOOLIN DD *
SPLICE FROM(FLATFILE) -
TO(OUTPUT1) -
ON(9,8,CH) -
USING(SPL1) -
WITHEACH -
WITH(80,41) -
WITH(121,3) -
KEEPNODUPS -
VLENMAX
//*
//SPL1CNTL DD *
OPTION VLSHRT
INCLUDE COND=((5,4,CH,EQ,C'0200',OR,
5,4,CH,EQ,C'0220',OR,
5,4,CH,EQ,C'0230'),AND,
(15,1,CH,NE,C' ',AND,
16,1,CH,EQ,C' '))
INREC IFTHEN=(WHEN=(5,4,CH,EQ,C'0200'),
BUILD=(1,4,
5,4,
USBD_NAME,
USBD_CREATE_DATE,
USBD_SPECIAL,
USBD_OPER,
USBD_REVOKE,
USBD_PROGRAMMER,
USBD_DEFGRP_ID,
USBD_LASTJOB_TIME,
USBD_LASTJOB_DATE,
USBD_UAUDIT,
USBD_AUDITOR,
USBD_NOPWD,
USBD_OIDCARD,
124:C'|')),
IFTHEN=(WHEN=(5,4,CH,EQ,C'0220'),
BUILD=(1,4,
5,4,
USTSO_NAME,
23:75C' ',
19,7,
USTSO_LOGON_PROC,
USTSO_UNIT_NAME,
124:C'`')),
IFTHEN=(WHEN=(5,4,CH,EQ,C'0230'),
BUILD=(1,4,
5,4,
USCICS_NAME,
23:98C' ',
USCICS_OPIDENT,
124:C'~'))
Any ideas other than I'm an idiot?
--
John
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html