Massimo, Thank you, I modified the control statements to allow up to 500 records in a group. And now things seem to be perfect. I had tried setting the 500 value on the last group, thinking “I have less than five hundred of these”, rather than at the higher level to indicate there could be five hundred items in a group.
Anyway, I am back in business. Thanks again. …….Cameron From: IBM Mainframe Discussion List <[email protected]> On Behalf Of Massimo Biancucci Sent: Wednesday, January 19, 2022 6:07 PM To: [email protected] Subject: [External] Re: Having some challenges with a SORT Utility 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]<mailto:[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]><mailto:[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<https://isolate.menlosecurity.com/1/3735928037/http:/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<https://isolate.menlosecurity.com/1/3735928037/http:/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]<mailto:[email protected]> with > the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected]<mailto:[email protected]> with the message: INFO IBM-MAIN ________________________________ 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
