Cameron, sorry for not fully understanding. For me it's not so simple to "see your dataset". I'm wondering why you specified the RECORDS= on WHEN=GROUP. If I well understand the manual: " If RECORDS is specified with BEGIN or KEYBEGIN, up to n records starting with the begin record belong to a group. " this could mean the dataset infos will populate a maximum of 3 records after it triggers. How does TRACEIT look like ?
Hope this helps. Max Il giorno mer 19 gen 2022 alle ore 23:24 Cameron Conacher < [email protected]> ha scritto: > Hello folks, > Hopefully someone can point me in a correct direction. > I can do this in a different manner, but I am stubborn..... > > I have crafted a little sort utility to read a file and then to grab data > from a couple of records and include the data with subsequent records. > > So, I have a record identifying a dataset name. (One record) > Then some number of records later, I will have a record identifying an > Owner group. (One record) > And then after a few records I will have some other record with names. (A > number of records- hundreds or perhaps only one) > > DataSet Name Record > Noise records > Owner Group record > Noise records > Name Record > Name Record > . > . > . > . > Noise records > DataSet Name Record > > And so on. > > My sort eliminate the noise records, and then I try to carry the dataset > name and the owner group forward to add it to the name records for final > output. > > When I run my utility, I get the very first name record (with the dataset > and owner information). > The subsequent name records do not have the additional data on output > because somehow I have messed up. > > > Could someone have a peek at my sort control statement and suggest either > a fix or tell me DON'T DO IT. > > Thanks. > > And here are my sort control statements. > ********************************************************************** > * * > * SCAN THROUGH THE INPUT FILE AND GENERATE AN OUTPUT DETAIL * > * FILE COMBINING DATA FROM MULTIPLE RECORDS. * > * * > * WE ONLY WANT THE RECORDS CONTAINING ONE OF: * > * 'LISTDSD DATASET(' IN POSITION 002 * > * ' 00 ' IN POSITION 002 * > * ' ALTER ' IN POISITON 011 * > * 'CONTROL' IN POISITON 011 * > * ' READ ' IN POISITON 011 * > * 'UPDATE ' IN POISITON 011 * > * * > ********************************************************************** > > INCLUDE COND=(01,20,SS,EQ,C'LISTDSD DATASET', * ONLY LISTDSD RECS > OR, > 01,20,SS,EQ,C' 00 ', * OWNER RECORDS > OR, > 10,20,SS,EQ,C' ALTER ', * ALTER ACCESS > OR, > 10,20,SS,EQ,C'CONTROL ', * CONTROL ACCESS > OR, > 10,20,SS,EQ,C' READ ', * READ ACCESS > OR, > 10,20,SS,EQ,C'UPDATE ') * UPDATE ACCESS > > > * * > * PARSE THE INPUT RECORDS LOOKING FOR THE LITERALS REPRESENTING * > * THE LISTDSD, OWNER AND RACF ID/ACCESS (DIFFERENT RECORDS) * > * USING A GROUP OF THREE RECORDS (1=LISTDSD 2=OWNER 3=RACF ID) * > * OVERLAY THE WORK AREA DATA IN 101-132 WITH: * > * 101-104 = 'RACF' * > * 105-150 = 45 CHARACTERS FOR LISTDSD NAME * > * 151-158 = OWNER NAME * > * 159-166 = RACF ID * > * 167 175 = RACF ID ACCESS ALLOWED * > * 181-184 = FOUR DIGIT RECORD NUMBER * > * 185-186 = TWO DIGIT GROUP ID NUMBER * > * 187-189 = THREE DIGIT SEQUENCE NUMBER * > * 190-190 = RECORD TYPE; 1=LISTDSD 2=OWNER 3=RACF ID/ACCESS * > * 191-193 = '123' RECORD TYPES * > * 201-245 = 45 CHARACTERS FOR LISTDSD NAME * > * 246-253 = EIGHT CHANRATER OWNER NAME * > * 254-261 = EIGHT CHANRATER RACF ID * > * 262-268 = SEVEN CHARACTER RACF ACCESS AVAILABLE * > * * > INREC IFTHEN=(WHEN=INIT, > BUILD=(001,080, * CURRENT RECORD > 101:C'RACF', * LITERAL > 105:C'LISTDSD', * LISTDSD DATASET > 151:C'OWNER', * OWNER > 159:C'RACF ID', * RACF ID > 167:C'ACCESS', * RACF ID ACCESS > 181:SEQNUM,4,ZD, * RECNUM > 191:C'123')), * REC TYPE > > * > * WE INITIALIZE THE LISTDSD IN 201-245 > * > IFTHEN=(WHEN=INIT, > PARSE=(%01=(STARTAFT=C'LISTDSD DATASET(', > ENDBEFR=C')', > FIXLEN=45)), > OVERLAY=(201:%01)), * LISTDSD > > * > * WE INITIALIZE THE OWNER IN 246-253 > * > IFTHEN=(WHEN=INIT, > PARSE=(%02=(STARTAFT=C' 00 ', > ENDBEFR=C' ', > FIXLEN=8)), > OVERLAY=(246:%02)), * OWNER > > * > * WE INITIALIZE THE RACF ID IN 254-270 > * > IFTHEN=(WHEN=INIT, > PARSE=(%03=(STARTAFT=C' ', > ENDBEFR=C' ', > FIXLEN=17)), > OVERLAY=(254:%03)), * RACF DATA > > * > * IF WE CAN FIND THE LISTDSD DATA ITEM > * SAVE THE LISTDSD IN 105-149 > * > IFTHEN=(WHEN=GROUP, > BEGIN=(01,50,SS,EQ,C'LISTDSD DATASET('), > RECORDS=3, * COMBINING LISTDSD > PUSH=(105:201,45, * LISTDSD > 185:ID=2,SEQ=3, > 190:191,001)), * REC TYPE=1 > > * > * IF WE CAN FIND OWNER IDENTIFIER > * SAVE THE OWNER VALUE IN 151-158 > * > IFTHEN=(WHEN=GROUP, > BEGIN=(01,50,SS,EQ,C' 00 '), > RECORDS=2, * COMBINING OWNER > PUSH=(150:246,08, * OWNER TAG > 187:SEQ=3, > 185:ID=2,SEQ=3, > 190:192,001)), * REC TYPE=2 > > * > * IF WE CAN FIND RACF ID/ACCESS > * SAVE THE UPDATEABLE VALUE IN 120-122 > * OF THE THREE RECORD TYPES WE SELECTED, ONLY THE RACF > * RECORD WILL HAVE A SPACE IN COLUMN 11. > * > IFTHEN=(WHEN=GROUP, > BEGIN=(10,01,CH,EQ,C' ',AND,02,02,CH,GE,C' '), > RECORDS=400, * COMBINING RACF > PUSH=(159:254,08, * RACF ID > 167:264,07, * RACF ACCESS > 185:ID=2,SEQ=3, > 190:193,001)) * REC TYPE=3 > * > * > SORT FIELDS=COPY LISTDSD > > OUTFIL FNAMES=TRACEIT > > * > * THERE ARE THREE RECORDS IN THE SORTED FILE FOR EVERY DDNAME > * THE DATA WE WANT IN THE SORTED FILE IS FROM RECORD TYPE='3' > * 101-104 = 'RACF' > * 105-149 = LISTDSD DATASET NAME > * 150-157 = OWNER TAG IDENTIFIER > * 159-166 = RACF ID > * 167-173 = RACF ID ACCESS > * > OUTFIL FNAMES=RACFOUT, > INCLUDE=(190,001,CH,EQ,C'3'), > OUTREC=(101,076) > > END > > > > > Thanks > > Cameron Conacher > Senior Engineer II > > American Express Canada Inc. > GCICS > 2225 Sheppard Avenue East, Toronto, ON M2J 5C2 > > [email protected]<mailto:[email protected]> > Office: 1-437-836-5265 > Mobile: 1-416-409-5147 > > https://amex.webex.com/join/cameron.conacher > > > ________________________________ > American Express made the following annotations > ________________________________ > This e-mail was sent to you by a representative of Amex Bank of Canada, > P.O. Box 3204, Station "F", Toronto, ON, M1W 3W7, www.americanexpress.ca. > If you no longer wish to receive these e-mails, please notify the sender by > reply e-mail. > > This e-mail is solely for the intended recipient and may contain > confidential or privileged information. If you are not the intended > recipient, any disclosure, copying, use, or distribution of the information > included in this e-mail is prohibited. If you have received this e-mail in > error, please notify the sender by reply e-mail and immediately and > permanently delete this e-mail and any attachments. Thank you. > > American Express a fait les remarques suivantes > Ce courriel vous a ?t? envoy? par un repr?sentant de la Banque Amex du > Canada, C.P. 3204, succursale F, Toronto (Ontario) M1W 3W7, > www.americanexpress.ca. Si, par la suite, vous ne souhaitez plus recevoir > ces courriels, veuillez en aviser les exp?diteurs par courriel. > > Ce courriel est r?serv? au seul destinataire indiqu? et peut renfermer des > renseignements confidentiels et privil?gi?s. Si vous n'?tes pas le > destinataire pr?vu, toute divulgation, duplication, utilisation ou > distribution du courriel est interdite. Si vous avez re?u ce courriel par > erreur, veuillez en aviser l'exp?diteur par courriel et d?truire > imm?diatement le courriel et toute pi?ce jointe. Merci. > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
