Writing the Definitive Systems Programmer Resume
Ever feel like your resume goes into a black hole? I would like to invite anyone attending next week's SHARE conference in Pittsburgh to come to my session entitled "Writing the Definitive Systems Programmer Resume" (session 25087, Tuesday, August 6, 2019 at 3:30 PM). This will be the 13th time I have given this presentation at SHARE and it contains a lot of useful information and samples for the aspiring resume writer. Over the last 37 years I have written thousands and thousands of mainframe systems resumes. Here is a link to my session: https://events.share.org/Summer2019/Public/SessionDetails.aspx?FromPage=Sessions.aspx&SessionID=8678 If you cannot attend, feel free to send me an email (or LinkedIn message) and I will send you a link to my PowerPoint slides. Joe Gallaher j...@spci.net 323-822-1569 work 323-363-7259 cell http://www.SPCI.net http://www.linkedin.com/in/joegallaher "You wouldn't hire a COBOL programmer to install your operating system. Why use an applications recruiter for your systems management needs?" -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IBM Destination z - Of Elephants and Mainframes
There was no NASA until 1958, although there was a National Advisory Committee for Aeronautics. But I doubt that such systems as SAGE and BUIC were written in machine language. LISP and Fortran cam later, but IPL was available in 1956. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List on behalf of Joe Monk Sent: Thursday, August 1, 2019 6:34 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: IBM Destination z - Of Elephants and Mainframes I can pretty much guarantee that NASA wasnt writing programs in the late 1950's in machine language... FORTRAN AND LISP were 704 languages. Joe On Thu, Aug 1, 2019 at 5:54 PM Seymour J Metz wrote: > Re 1957: with a SOAP II manual dated February 1957, how likely is it that > the original SOAP was 1957? > > As for COBOL, the report of the CODASYL short range committee didn't come > out until 1960, so no reasonable person can fault COBOL for not being > available until 1960. Predecessors COMTRAN, FACT and FLOW-MATIC were > available earlier. > > Was there a 702 AUTOCODER, or was 705 AUTOCODER the first? > > > -- > Shmuel (Seymour J.) Metz > http://mason.gmu.edu/~smetz3 > > > From: IBM Mainframe Discussion List on behalf > of Gabe Goldberg > Sent: Thursday, August 1, 2019 4:44 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: IBM Destination z - Of Elephants and Mainframes > > Think back… think way back, possibly to before you were born. Think of > the reasons why SHARE was founded in 1955, and the main activities of > SHARE. Once upon a time, when electronic computing technology was still > being figured out, each new machine was so different from its > predecessors that it was necessary to rewrite a whole new set of > utilities and drivers and applications for it. Even Assembly language > wasn’t available until 1957 (and the first COBOL compiler didn’t come > out until 1960) so most of this stuff had to be manually entered in > machine language. > > > http://secure-web.cisco.com/1sRflfpe_3MG-JJUXevBrHIvSyIEW9PsN2rYTWuTGqwBOAr-zFGHfNpUHvitRCLM_aCV9TSaREWmqUw_dpuFq2vpu-8gKxXZHSZE35BOXEQXdrprFGNKVESoQ0I00X03S9o8Yusb57C1545gU063YaXNTiyDJ_qwTiOHbvrZn-lL_8pKpLLxQ7rX9tBC3UCMgjbBqZgDI64oxgsleEgXwy84H-vMG9T4Es-zfkq9MbQLpd6YDZmf3loSs5fASiqKFwuWHZRV7sD2eQ22H8pR-Ag71cg41mlrqsQybgDR1EIh3B1Io7vZRxBNQ6JiKStnS86x_3hPa3RKCzsKv2h_CAHIQXoNbB3wAkfAAbD4VaG9Eu0ZgA0VouB7UkXZ5MUtGkMp4ulNnDWH6KEQKxSy9of51-PV2ok86Ql0JEK7d4DBnKdPKgo383q0YKCQ9xLYq/http%3A%2F%2Fdestinationz.org%2FMainframe-Solution%2FTrends%2Felephants-and-mainframes > > Um, no. ACM SIGPLAN History of Programming Languages Conference 1978 > article on FORTRAN says: > > Page 166 1.3 Programming Systems in 1954 > > Most "automatic programming" systems were either assembly programs, or > subroutine-fixing programs, or, most popularly, interpretive systems to > provide floating point and indexing operations. > > --- > > That's far beyond machine language three years before article claims > anything more advanced than that was used. > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IBM Destination z - Of Elephants and Mainframes
I can pretty much guarantee that NASA wasnt writing programs in the late 1950's in machine language... FORTRAN AND LISP were 704 languages. Joe On Thu, Aug 1, 2019 at 5:54 PM Seymour J Metz wrote: > Re 1957: with a SOAP II manual dated February 1957, how likely is it that > the original SOAP was 1957? > > As for COBOL, the report of the CODASYL short range committee didn't come > out until 1960, so no reasonable person can fault COBOL for not being > available until 1960. Predecessors COMTRAN, FACT and FLOW-MATIC were > available earlier. > > Was there a 702 AUTOCODER, or was 705 AUTOCODER the first? > > > -- > Shmuel (Seymour J.) Metz > http://mason.gmu.edu/~smetz3 > > > From: IBM Mainframe Discussion List on behalf > of Gabe Goldberg > Sent: Thursday, August 1, 2019 4:44 PM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: IBM Destination z - Of Elephants and Mainframes > > Think back… think way back, possibly to before you were born. Think of > the reasons why SHARE was founded in 1955, and the main activities of > SHARE. Once upon a time, when electronic computing technology was still > being figured out, each new machine was so different from its > predecessors that it was necessary to rewrite a whole new set of > utilities and drivers and applications for it. Even Assembly language > wasn’t available until 1957 (and the first COBOL compiler didn’t come > out until 1960) so most of this stuff had to be manually entered in > machine language. > > > http://secure-web.cisco.com/1sRflfpe_3MG-JJUXevBrHIvSyIEW9PsN2rYTWuTGqwBOAr-zFGHfNpUHvitRCLM_aCV9TSaREWmqUw_dpuFq2vpu-8gKxXZHSZE35BOXEQXdrprFGNKVESoQ0I00X03S9o8Yusb57C1545gU063YaXNTiyDJ_qwTiOHbvrZn-lL_8pKpLLxQ7rX9tBC3UCMgjbBqZgDI64oxgsleEgXwy84H-vMG9T4Es-zfkq9MbQLpd6YDZmf3loSs5fASiqKFwuWHZRV7sD2eQ22H8pR-Ag71cg41mlrqsQybgDR1EIh3B1Io7vZRxBNQ6JiKStnS86x_3hPa3RKCzsKv2h_CAHIQXoNbB3wAkfAAbD4VaG9Eu0ZgA0VouB7UkXZ5MUtGkMp4ulNnDWH6KEQKxSy9of51-PV2ok86Ql0JEK7d4DBnKdPKgo383q0YKCQ9xLYq/http%3A%2F%2Fdestinationz.org%2FMainframe-Solution%2FTrends%2Felephants-and-mainframes > > Um, no. ACM SIGPLAN History of Programming Languages Conference 1978 > article on FORTRAN says: > > Page 166 1.3 Programming Systems in 1954 > > Most "automatic programming" systems were either assembly programs, or > subroutine-fixing programs, or, most popularly, interpretive systems to > provide floating point and indexing operations. > > --- > > That's far beyond machine language three years before article claims > anything more advanced than that was used. > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Capital One Data Breach-100 Million Customers affected
Yeah, I'm missing a few key points. How is this PCI compliant? So the firewall was misconfigured, but how did they get access to my_biga$$_masterfile, my_biga$$_requests, and my_biga$$_revocations with no encryption? Inquiring minds want to know-hackers long gone probably more than one. In a message dated 8/1/2019 5:10:39 PM Central Standard Time, jesse1.robin...@sce.com writes: better care of your precious data than you can. I sense Death of a Salesman... -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IBM Destination z - Of Elephants and Mainframes
Re 1957: with a SOAP II manual dated February 1957, how likely is it that the original SOAP was 1957? As for COBOL, the report of the CODASYL short range committee didn't come out until 1960, so no reasonable person can fault COBOL for not being available until 1960. Predecessors COMTRAN, FACT and FLOW-MATIC were available earlier. Was there a 702 AUTOCODER, or was 705 AUTOCODER the first? -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Discussion List on behalf of Gabe Goldberg Sent: Thursday, August 1, 2019 4:44 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: IBM Destination z - Of Elephants and Mainframes Think back… think way back, possibly to before you were born. Think of the reasons why SHARE was founded in 1955, and the main activities of SHARE. Once upon a time, when electronic computing technology was still being figured out, each new machine was so different from its predecessors that it was necessary to rewrite a whole new set of utilities and drivers and applications for it. Even Assembly language wasn’t available until 1957 (and the first COBOL compiler didn’t come out until 1960) so most of this stuff had to be manually entered in machine language. http://secure-web.cisco.com/1sRflfpe_3MG-JJUXevBrHIvSyIEW9PsN2rYTWuTGqwBOAr-zFGHfNpUHvitRCLM_aCV9TSaREWmqUw_dpuFq2vpu-8gKxXZHSZE35BOXEQXdrprFGNKVESoQ0I00X03S9o8Yusb57C1545gU063YaXNTiyDJ_qwTiOHbvrZn-lL_8pKpLLxQ7rX9tBC3UCMgjbBqZgDI64oxgsleEgXwy84H-vMG9T4Es-zfkq9MbQLpd6YDZmf3loSs5fASiqKFwuWHZRV7sD2eQ22H8pR-Ag71cg41mlrqsQybgDR1EIh3B1Io7vZRxBNQ6JiKStnS86x_3hPa3RKCzsKv2h_CAHIQXoNbB3wAkfAAbD4VaG9Eu0ZgA0VouB7UkXZ5MUtGkMp4ulNnDWH6KEQKxSy9of51-PV2ok86Ql0JEK7d4DBnKdPKgo383q0YKCQ9xLYq/http%3A%2F%2Fdestinationz.org%2FMainframe-Solution%2FTrends%2Felephants-and-mainframes Um, no. ACM SIGPLAN History of Programming Languages Conference 1978 article on FORTRAN says: Page 166 1.3 Programming Systems in 1954 Most "automatic programming" systems were either assembly programs, or subroutine-fixing programs, or, most popularly, interpretive systems to provide floating point and indexing operations. --- That's far beyond machine language three years before article claims anything more advanced than that was used. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: IBM Destination z - Of Elephants and Mainframes
Thank you, Gabe. I'm honoured that you read my writing so closely, and I take your correction seriously. I'll be more careful how I phrase such things in future articles. FWIW, I am aware that Fortran and other pre-COBOL languages already existed, so perhaps I should have said "much of this stuff" instead. (And to those who have made other suggestions on IBM-MAIN that I should have caught, but missed, in the past, my apologies: still getting into good habits of keeping up with this important part of the mainframe ecosystem.) Reg Harbeck +1.403.605.7986 P.S. Looking forward to seeing many of you in Pittsburgh next week. -Original Message- From: IBM Mainframe Discussion List On Behalf Of Gabe Goldberg Sent: August 1, 2019 13:45 To: IBM-MAIN@LISTSERV.UA.EDU Subject: IBM Destination z - Of Elephants and Mainframes Think back… think way back, possibly to before you were born. Think of the reasons why SHARE was founded in 1955, and the main activities of SHARE. Once upon a time, when electronic computing technology was still being figured out, each new machine was so different from its predecessors that it was necessary to rewrite a whole new set of utilities and drivers and applications for it. Even Assembly language wasn’t available until 1957 (and the first COBOL compiler didn’t come out until 1960) so most of this stuff had to be manually entered in machine language. http://destinationz.org/Mainframe-Solution/Trends/elephants-and-mainframes Um, no. ACM SIGPLAN History of Programming Languages Conference 1978 article on FORTRAN says: Page 166 1.3 Programming Systems in 1954 Most "automatic programming" systems were either assembly programs, or subroutine-fixing programs, or, most popularly, interpretive systems to provide floating point and indexing operations. --- That's far beyond machine language three years before article claims anything more advanced than that was used. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
IBM Destination z - Of Elephants and Mainframes
Think back… think way back, possibly to before you were born. Think of the reasons why SHARE was founded in 1955, and the main activities of SHARE. Once upon a time, when electronic computing technology was still being figured out, each new machine was so different from its predecessors that it was necessary to rewrite a whole new set of utilities and drivers and applications for it. Even Assembly language wasn’t available until 1957 (and the first COBOL compiler didn’t come out until 1960) so most of this stuff had to be manually entered in machine language. http://destinationz.org/Mainframe-Solution/Trends/elephants-and-mainframes Um, no. ACM SIGPLAN History of Programming Languages Conference 1978 article on FORTRAN says: Page 166 1.3 Programming Systems in 1954 Most "automatic programming" systems were either assembly programs, or subroutine-fixing programs, or, most popularly, interpretive systems to provide floating point and indexing operations. --- That's far beyond machine language three years before article claims anything more advanced than that was used. -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: SMPE usermod to add .jar files to JAVA
On Wed, 31 Jul 2019 19:10:49 +, Jousma, David wrote: >Well, in the end, it may not have been so hard to accomplish. I have to run >compares against the original and SMPE installed jar files, but the gist of it >is > >++ JAR(MAJV831P) /* $java_home/lib/ext/PKKeyM.jar */ > DISTLIB (AAJVHFS) > SYSLIB (SAJV80M) > PARM (PATHMODE(0,6,4,4)) > LINK ('../lib/ext/PKKeyM.jar'). > >Followed by inline by the output of GIMDTS of the transformed jar file read >from PATH seemed to work. > I'm curious about how comprehensive SMPE's support of zFS objects is. For example, does the GIMDTS SYSUT2 reflect the values of extended (admittedly non-POSIX) attributes such as CCSID and FILEFMT, and are the restored by the RECEIVE; APPLY sequence? It's a shame if these valuable (at least to z/OS) metadata are not supported. ISPF, for example, has good support for combinations such as CCSID=UTF-8 and FILEFMT=RECORD. These matter in text files; less in .jar. Is there an extended compare utility that compares metadata also? -- gil -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: dfsort: Sort job to get price variance records
On Thu, Aug 1, 2019 at 11:20 AM retired mainframer wrote: > Why are two records desired for 96.12 but only one for 95.12? > Because there are two different "keys" for the 95.12 There is 50338 789997580026.00 36052910DF and 50318 789997580026.00 36052910DF In the second "key", the price in all three records is the same: 95.12. So there is no variance in the price. There are just duplicate records. > > > -Original Message- > > From: IBM Mainframe Discussion List On > > Behalf Of Ron Thomas > > Sent: Thursday, August 01, 2019 8:03 AM > > To: IBM-MAIN@LISTSERV.UA.EDU > > Subject: Re: dfsort: Sort job to get price variance records > > > > Ok Elardus. > > > > I will paste the requirement and output files generated again > > > > We have a FB File LRECL = 80 bytes and here below is the layout. > Buy_price is at > > position 65 of length 10 bytes . We need to pull those item nbrs > > which has same UPC,Vendor nbr ,State Code but there is price difference. > Could > > anyone let me know how this to be done using dfsort. > > > > Input file :- > > > > ITEM NUMBER UPC_NBR VendorNbr STATE_CODE > > BUY_PRICE > > 50338 789997580026.00 36052910DF 96.12 > > 50338 789997580026.00 36052910DF 96.12 > > 50338 789997580026.00 36052910DF 95.12 > > 50318 789997580026.00 36052910DF 95.12 > > 50318 789997580026.00 36052911DF 95.12 > > 50318 789997580026.00 36052911DF 95.12 > > > > Desired o/p > > > > 50338 789997580026.00 36052910DF 96.12 > > 50338 789997580026.00 36052910DF 96.12 > > 50338 789997580026.00 36052910DF 95.12 > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- A sine curve goes off to infinity, or at least the end of the blackboard. -- Prof. Steiner Maranatha! <>< John McKown -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
On Thu, Aug 1, 2019 at 8:22 AM Cameron Conacher wrote: > Hello to the DFSORT folks. > I have a file of data containing extracts from some JCL. > Specifically, I am looking for all values of DATACLAS. > This all relates back to Pervasive Encryption. I just want a quick report > of the DATACLAS values in use today, as well as the counts for each > DATACLAS item I find. > > I ran a quick compare to get a report from our JCL Library, and now I am > building a SORT to look at the variable length input file data. > I can use 'INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') to select a subset of > records from the original compare report. > I could take this file and play with it in ISPF EDIT to pull out the eight > bytes following 'DATACLAS='. > However, I am wondering if I can do this in DFSORT. > So, if I have > DATACLAS=FRED, > I would want to extract and summarize FRED and if I have >DATACLAS=POTATO I would want to extract and summarize POTATO > I guess the question is how can I extract characters from the input records > that appear following the SubString match? > > Thanks > Presenting an alternative route: The DATACLASS for a catalogued dataset is in the catalog. Maybe you could use some sort of catalog product to scan all your catalogs and extract the DSN and DATACLASS. -- A sine curve goes off to infinity, or at least the end of the blackboard. -- Prof. Steiner Maranatha! <>< John McKown -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
> Given that the OP said this was JCL, the DATACLAS= could be terminated with > a BLANK or a COMMA. So I think he needs three ENDBEFR= statements testing > for C' ' C',' and C')' Thanks John. I missed that. Cameron, Here are the updated control cards //SYSINDD * INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=',OR, 5,70,SS,EQ,C'DATACLAS(') INREC PARSE=(%01=(STARTAFT=C'DATACLAS=', STARTAFT=C'DATACLAS(', ENDBEFR=C')',ENDBEFR=C',', ENDBEFR=C' ',FIXLEN=8)), BUILD=(1,4,%01) SORT FIELDS=(5,8,CH,A) OUTFIL REMOVECC,NODETAIL,VTOF,BUILD=(80X), HEADER2=('DATACLASS COUNT',/, '- '), SECTIONS=(5,8, TRAILER3=(5,8,4X, COUNT=(M10,LENGTH=8))) /* Thanks, Kolusu DFSORT Development IBM Corporation -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
On Thu, Aug 1, 2019 at 11:17 AM Sri h Kolusu wrote: > > Here is what I ended up with using (retyped from my ISPF screen) . > > Cameron, > > You can optimize your control cards, You can have multiple STARTAFT and > ENDBEFR parms on PARSE. > > Use the following Control cards which will give you the desired results > > //SYSINDD * > OPTION VLSCMP > INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=',OR, > 5,70,SS,EQ,C'DATACLAS(') > > INREC PARSE=(%01=(STARTAFT=C'DATACLAS=', > STARTAFT=C'DATACLAS(', > ENDBEFR=C')', > ENDBEFR=C' ',FIXLEN=8)), > Given that the OP said this was JCL, the DATACLAS= could be terminated with a BLANK or a COMMA. So I think he needs three ENDBEFR= statements testing for C' ' C',' and C')' BUILD=(1,4,%01) > > SORT FIELDS=(5,8,CH,A) > > OUTFIL REMOVECC,NODETAIL,VTOF,BUILD=(80X), > HEADER2=('DATACLASS COUNT',/, >'- '), > SECTIONS=(5,8, > TRAILER3=(5,8,4X, > COUNT=(M10,LENGTH=8))) > /* > > Thanks, > Kolusu > DFSORT Development > IBM Corporation > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- A sine curve goes off to infinity, or at least the end of the blackboard. -- Prof. Steiner Maranatha! <>< John McKown -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: dfsort: Sort job to get price variance records
Why are two records desired for 96.12 but only one for 95.12? > -Original Message- > From: IBM Mainframe Discussion List On > Behalf Of Ron Thomas > Sent: Thursday, August 01, 2019 8:03 AM > To: IBM-MAIN@LISTSERV.UA.EDU > Subject: Re: dfsort: Sort job to get price variance records > > Ok Elardus. > > I will paste the requirement and output files generated again > > We have a FB File LRECL = 80 bytes and here below is the layout. Buy_price is > at > position 65 of length 10 bytes . We need to pull those item nbrs > which has same UPC,Vendor nbr ,State Code but there is price difference. Could > anyone let me know how this to be done using dfsort. > > Input file :- > > ITEM NUMBER UPC_NBR VendorNbr STATE_CODE > BUY_PRICE > 50338 789997580026.00 36052910DF 96.12 > 50338 789997580026.00 36052910DF 96.12 > 50338 789997580026.00 36052910DF 95.12 > 50318 789997580026.00 36052910DF 95.12 > 50318 789997580026.00 36052911DF 95.12 > 50318 789997580026.00 36052911DF 95.12 > > Desired o/p > > 50338 789997580026.00 36052910DF 96.12 > 50338 789997580026.00 36052910DF 96.12 > 50338 789997580026.00 36052910DF 95.12 -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
> Here is what I ended up with using (retyped from my ISPF screen) . Cameron, You can optimize your control cards, You can have multiple STARTAFT and ENDBEFR parms on PARSE. Use the following Control cards which will give you the desired results //SYSINDD * OPTION VLSCMP INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=',OR, 5,70,SS,EQ,C'DATACLAS(') INREC PARSE=(%01=(STARTAFT=C'DATACLAS=', STARTAFT=C'DATACLAS(', ENDBEFR=C')', ENDBEFR=C' ',FIXLEN=8)), BUILD=(1,4,%01) SORT FIELDS=(5,8,CH,A) OUTFIL REMOVECC,NODETAIL,VTOF,BUILD=(80X), HEADER2=('DATACLASS COUNT',/, '- '), SECTIONS=(5,8, TRAILER3=(5,8,4X, COUNT=(M10,LENGTH=8))) /* Thanks, Kolusu DFSORT Development IBM Corporation -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
Oh very nice. I like the report!! Just never thought about it. Amazing. Thank you! On Thu, Aug 1, 2019 at 11:26 AM Sri h Kolusu wrote: > > I would want to extract and summarize FRED and if I have > >DATACLAS=POTATO I would want to extract and summarize POTATO > > > Cameron Conacher, > > Use the following DFSORT JCL which will give you the desired results. I > coded the JCL to handle if your input is VB or FB based on the INCLUDE cond > you showed. > > //STEP0100 EXEC PGM=SORT > //SYSOUT DD SYSOUT=* > //SORTIN DD * > SOME HEADER - NOT INCLUDED > DATACLAS=POTATO - NEEDED > DATACLAS=FRED > DATACLAS=POTATO - NEEDED >DATACLAS=POTATO - NEEDED > SOME OTHER RECORD - NOT INCLUDED > DATACLAS=CONACHER > DATACLAS=CONACHER >DATACLAS=CONACHER > //SORTOUT DD SYSOUT=* > //SYSINDD * > INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') > > INREC PARSE=(%01=(STARTAFT=C'DATACLAS=', > ENDBEFR=C' ',FIXLEN=8)), > BUILD=(1,4,%01) > > SORT FIELDS=(5,8,CH,A) > > OUTFIL REMOVECC,NODETAIL,VTOF,BUILD=(80X), > HEADER2=('DATACLASS COUNT',/, >'- '), > SECTIONS=(5,8, > TRAILER3=(5,8,4X, > COUNT=(M10,LENGTH=8))) > /* > > The output from this job is > > DATACLASS COUNT > - > CONACHER 3 > FRED 1 > POTATO 3 > > > Further if you have any questions please let me know > > Thanks, > Kolusu > DFSORT Development > IBM Corporation > > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
Thanks everyone, I found that sometime I see DATACLAS=value and sometimes I would see DATACLAS(value) so I made a couple of changes to allow VB input and FB output, as well as choosing the DATACLAS format. Here is what I ended up with using (retyped from my ISPF screen) . OPTION VLSCMP RECORD TYPE=V INCLUDE COND=(5,70,SS,EQ,C'DATACLAS') INREC IFOUTLEN=21, IFTHEN=(WHEN=(5,70,SS,EQ,C'DATACLAS=', PARSE=(%01=(ENDBEFR=C'DATACLAS=',FIXLEN=8), %02=(ENDBEFR=C',',FIXLEN=8)), BUILD=(1,4,5:%02,13:X'001C')), IFTHEN=(WHEN=(5,70,SS,EQ,C'DATACLAS(', PARSE=(%03=(ENDBEFR=C'DATACLAS(',FIXLEN=8), %04=(ENDBEFR=C')',FIXLEN=8)), BUILD=(1,4,5:%04,13:X'001C')) SORT FIELDS=(5,8,CH,A) SUM FIELDS=(13,8,PD) OUTFIL FNAMES=SORTOF01,CONVERT,OUTREC=(5,16) END On Thu, Aug 1, 2019 at 10:27 AM John McKown wrote: > On Thu, Aug 1, 2019 at 8:43 AM John McKown > wrote: > > > On Thu, Aug 1, 2019 at 8:22 AM Cameron Conacher > > wrote: > > > >> Hello to the DFSORT folks. > >> I have a file of data containing extracts from some JCL. > >> Specifically, I am looking for all values of DATACLAS. > >> This all relates back to Pervasive Encryption. I just want a quick > report > >> of the DATACLAS values in use today, as well as the counts for each > >> DATACLAS item I find. > >> > >> I ran a quick compare to get a report from our JCL Library, and now I am > >> building a SORT to look at the variable length input file data. > >> I can use 'INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') to select a subset of > >> records from the original compare report. > >> I could take this file and play with it in ISPF EDIT to pull out the > eight > >> bytes following 'DATACLAS='. > >> However, I am wondering if I can do this in DFSORT. > >> So, if I have > >> DATACLAS=FRED, > >> I would want to extract and summarize FRED and if I have > >>DATACLAS=POTATO I would want to extract and summarize POTATO > >> I guess the question is how can I extract characters from the input > >> records > >> that appear following the SubString match? > >> > >> Thanks > >> > >> > > > > I am not a DFSORT expert. But I think that you'd be better off trying to > > use PARSE. > > > https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.iceg200/rrwvf.htm > > > > OUTREC PARSE=(%01=(STARTAFT=C'DATACLAS=',ENDBEFR=C',')), > > BUILD=(%01) > > > > > > I didn't include all the other SORT control cards. > > > > Tough morning. Perhaps this would be better: > > INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') > INREC PARSE=(%01=(STARTAFT=C'DATACLAS=',ENDBEFR=C',')), > BUILD=(%01,9:C' ') > SORT FIELDS=(1,8,CH,A) > SUM FIELDS=NONE > > > The only thing which concerns me is whether the BUILD= is correct to make a > fixed length output record. > > > > > > > > > -- > > A sine curve goes off to infinity, or at least the end of the blackboard. > > -- Prof. Steiner > > > > Maranatha! <>< > > John McKown > > > > > -- > A sine curve goes off to infinity, or at least the end of the blackboard. > -- Prof. Steiner > > Maranatha! <>< > John McKown > > -- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN > -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Sort job to get price variance records
Thanks a lot Kolusu.. You are amazing to say the least !!! -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Sort job to get price variance records
>>I am getting the o/p as expected , but not sure whether what i have done is completely correct . Could you please check and let me know if the above needs correction ? Ron, You are NOT getting the o/p as expected. You shouldn't be writing the 50318 789997580026.00 36052911 DF record as it does NOT have any record with a price difference. You simply did not follow the directions that I gave. STEP 1 should be writing 2 files, but you only wrote 1 file and you added your own logic of counts. Not sure as to why you need the counts. Your Price starts at 65 and not 64. I accidentally mentioned 64 and you the owner of the data should be able to correct it to the right positions. Since you had at least put in a effort and tried to code the job based on the directions, I will show you the optimized control cards. (please don't expect it all the time) //STEP0100 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD * 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 95.12 50318 789997580026.00 36052910 DF 95.12 50318 789997580026.00 36052911 DF 95.12 50318 789997580026.00 36052911 DF 95.12 //ORIG DD DSN=&&INA,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE) //PULL DD DSN=&&INB,DISP=(,PASS),SPACE=(CYL,(1,1),RLSE) //SYSINDD * SORT FIELDS=(1,37,CH,A) OUTREC IFTHEN=(WHEN=INIT,OVERLAY=(81:C'0')), IFTHEN=(WHEN=GROUP,KEYBEGIN=(1,37),PUSH=(81:65,10)), IFTHEN=(WHEN=(65,10,CH,NE,81,10,CH),OVERLAY=(92:C'P')) OUTFIL FNAMES=ORIG,BUILD=(1,80) OUTFIL FNAMES=PULL,BUILD=(80X), REMOVECC,NODETAIL, INCLUDE=(92,1,CH,EQ,C'P'), SECTIONS=(1,37,TRAILER3=(1,37)) /* //STEP0200 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //INA DD DSN=&&INA,DISP=(OLD,DELETE) //INB DD DSN=&&INB,DISP=(OLD,DELETE) //SORTOUT DD SYSOUT=* //SYSINDD * OPTION COPY JOINKEYS F1=INA,FIELDS=(1,37,A),SORTED,NOSEQCK JOINKEYS F2=INB,FIELDS=(1,37,A),SORTED,NOSEQCK REFORMAT FIELDS=(F1:1,80) /* The output from this job is 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 95.12 Thanks, Kolusu DFSORT Development IBM Corporation -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
> I would want to extract and summarize FRED and if I have >DATACLAS=POTATO I would want to extract and summarize POTATO Cameron Conacher, Use the following DFSORT JCL which will give you the desired results. I coded the JCL to handle if your input is VB or FB based on the INCLUDE cond you showed. //STEP0100 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD * SOME HEADER - NOT INCLUDED DATACLAS=POTATO - NEEDED DATACLAS=FRED DATACLAS=POTATO - NEEDED DATACLAS=POTATO - NEEDED SOME OTHER RECORD - NOT INCLUDED DATACLAS=CONACHER DATACLAS=CONACHER DATACLAS=CONACHER //SORTOUT DD SYSOUT=* //SYSINDD * INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') INREC PARSE=(%01=(STARTAFT=C'DATACLAS=', ENDBEFR=C' ',FIXLEN=8)), BUILD=(1,4,%01) SORT FIELDS=(5,8,CH,A) OUTFIL REMOVECC,NODETAIL,VTOF,BUILD=(80X), HEADER2=('DATACLASS COUNT',/, '- '), SECTIONS=(5,8, TRAILER3=(5,8,4X, COUNT=(M10,LENGTH=8))) /* The output from this job is DATACLASS COUNT - CONACHER 3 FRED 1 POTATO 3 Further if you have any questions please let me know Thanks, Kolusu DFSORT Development IBM Corporation -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: dfsort: Sort job to get price variance records
Ok Elardus. I will paste the requirement and output files generated again We have a FB File LRECL = 80 bytes and here below is the layout. Buy_price is at position 65 of length 10 bytes . We need to pull those item nbrs which has same UPC,Vendor nbr ,State Code but there is price difference. Could anyone let me know how this to be done using dfsort. Input file :- ITEM NUMBER UPC_NBR VendorNbr STATE_CODE BUY_PRICE 50338 789997580026.00 36052910DF 96.12 50338 789997580026.00 36052910DF 96.12 50338 789997580026.00 36052910DF 95.12 50318 789997580026.00 36052910DF 95.12 50318 789997580026.00 36052911DF 95.12 50318 789997580026.00 36052911DF 95.12 Desired o/p 50338 789997580026.00 36052910DF 96.12 50338 789997580026.00 36052910DF 96.12 50338 789997580026.00 36052910DF 95.12 Code created: - //STEP03 EXEC SORT //SORTIN DD * 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 95.12 50318 789997580026.00 36052910 DF 95.12 50318 789997580026.00 36052911 DF 95.12 50318 789997580026.00 36052911 DF 95.12 //SORTOUT DD DSN=T01.RXVD.PULL, //SPACE=(CYL,(50,50),RLSE),VOL=(,,,99), //DISP=(NEW,CATLG,DELETE) //SYSINDD * SORT FIELDS=(1,37,CH,A) OUTREC IFTHEN=(WHEN=GROUP,KEYBEGIN=(1,37),PUSH=(81:65,10)), IFTHEN=(WHEN=(64,10,CH,NE,81,10,CH),OVERLAY=(92:C'P')) OUTFIL FNAMES=SORTOUT,REMOVECC,NODETAIL, INCLUDE=(92,1,CH,EQ,C'P'), SECTIONS=(1,64,TRAILER3=(1,64,COUNT=(EDIT=())),65,10) /* output file Generated - 50318 789997580026.00 36052910 DF 1 50318 789997580026.00 36052911 DF 2 50338 789997580026.00 36052910 DF 3 I am not sure whether this o/p is correct . Also for the Joinkeys . This below is what i have coded //STEP01 EXEC SORT //SYSOUT DD SYSOUT=* // DD SYSOUT=* //BOTH DD DD SYSOUT=* //SORTJNF1 DD * 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 95.12 50318 789997580026.00 36052910 DF 95.12 50318 789997580026.00 36052911 DF 95.12 50318 789997580026.00 36052911 DF 95.12 //SORTJNF2 DD DSN=T01.RXVD.PULL,DISP=SHR--> O/p from the above step //SYSINDD * JOINKEYS FILES=F1,FIELDS=(1,37,A),SORTED,NOSEQCK JOINKEYS FILES=F2,FIELDS=(1,37,A),SORTED,NOSEQCK REFORMAT FIELDS=(F1:01,80,F2:01,92,?) OPTION COPY JOIN UNPAIRED,F1,F2 OUTFIL FNAMES=BOTH, INCLUDE=(173,1,CH,EQ,C'B'),BUILD=(1,80) /* output file generated 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 95.12 The above o/p generated based on the sample file is correct, but I am not sure whether the summarization done in the first step is correct. Regards Ron T -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
On Thu, Aug 1, 2019 at 8:43 AM John McKown wrote: > On Thu, Aug 1, 2019 at 8:22 AM Cameron Conacher > wrote: > >> Hello to the DFSORT folks. >> I have a file of data containing extracts from some JCL. >> Specifically, I am looking for all values of DATACLAS. >> This all relates back to Pervasive Encryption. I just want a quick report >> of the DATACLAS values in use today, as well as the counts for each >> DATACLAS item I find. >> >> I ran a quick compare to get a report from our JCL Library, and now I am >> building a SORT to look at the variable length input file data. >> I can use 'INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') to select a subset of >> records from the original compare report. >> I could take this file and play with it in ISPF EDIT to pull out the eight >> bytes following 'DATACLAS='. >> However, I am wondering if I can do this in DFSORT. >> So, if I have >> DATACLAS=FRED, >> I would want to extract and summarize FRED and if I have >>DATACLAS=POTATO I would want to extract and summarize POTATO >> I guess the question is how can I extract characters from the input >> records >> that appear following the SubString match? >> >> Thanks >> >> > > I am not a DFSORT expert. But I think that you'd be better off trying to > use PARSE. > https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.iceg200/rrwvf.htm > > OUTREC PARSE=(%01=(STARTAFT=C'DATACLAS=',ENDBEFR=C',')), > BUILD=(%01) > > > I didn't include all the other SORT control cards. > Tough morning. Perhaps this would be better: INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') INREC PARSE=(%01=(STARTAFT=C'DATACLAS=',ENDBEFR=C',')), BUILD=(%01,9:C' ') SORT FIELDS=(1,8,CH,A) SUM FIELDS=NONE The only thing which concerns me is whether the BUILD= is correct to make a fixed length output record. > > -- > A sine curve goes off to infinity, or at least the end of the blackboard. > -- Prof. Steiner > > Maranatha! <>< > John McKown > -- A sine curve goes off to infinity, or at least the end of the blackboard. -- Prof. Steiner Maranatha! <>< John McKown -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Sort job to get price variance records
Ok Kolusu, will remove dfsort tag from subject line . Thanks again for providing the steps. Here is what i have done //STEP03 EXEC SORT //SORTIN DD * 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 96.12 50338 789997580026.00 36052910 DF 95.12 50318 789997580026.00 36052910 DF 95.12 50318 789997580026.00 36052911 DF 95.12 50318 789997580026.00 36052911 DF 95.12 //SORTOUT DD DSN=T01.RXVD.PULL, //SPACE=(CYL,(50,50),RLSE),VOL=(,,,99), //DISP=(NEW,CATLG,DELETE) //SYSINDD * SORT FIELDS=(1,37,CH,A) OUTREC IFTHEN=(WHEN=GROUP,KEYBEGIN=(1,37),PUSH=(81:65,10)), IFTHEN=(WHEN=(64,10,CH,NE,81,10,CH),OVERLAY=(92:C'P')) OUTFIL FNAMES=SORTOUT,REMOVECC,NODETAIL, INCLUDE=(92,1,CH,EQ,C'P'), SECTIONS=(1,64,TRAILER3=(1,64,COUNT=(EDIT=())),65,10) /* O/p Generated 50318 789997580026.00 36052910 DF 1 50318 789997580026.00 36052911 DF 2 50338 789997580026.00 36052910 DF 3 I am not sure whether this o/p is correct . Also for the Joinkeys . This below is what i have coded JOINKEYS FILES=F1,FIELDS=(1,37,A),SORTED,NOSEQCK JOINKEYS FILES=F2,FIELDS=(1,37,A),SORTED,NOSEQCK REFORMAT FIELDS=(F1:01,80,F2:01,92,?) OPTION COPY JOIN UNPAIRED,F1,F2 OUTFIL FNAMES=BOTH, INCLUDE=(173,1,CH,EQ,C'B'),BUILD=(1,80) I am getting the o/p as expected , but not sure whether what i have done is completely correct . Could you please check and let me know if the above needs correction ? Regards Ron T -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Re: Extract next eight character positions after SubString Match
On Thu, Aug 1, 2019 at 8:22 AM Cameron Conacher wrote: > Hello to the DFSORT folks. > I have a file of data containing extracts from some JCL. > Specifically, I am looking for all values of DATACLAS. > This all relates back to Pervasive Encryption. I just want a quick report > of the DATACLAS values in use today, as well as the counts for each > DATACLAS item I find. > > I ran a quick compare to get a report from our JCL Library, and now I am > building a SORT to look at the variable length input file data. > I can use 'INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') to select a subset of > records from the original compare report. > I could take this file and play with it in ISPF EDIT to pull out the eight > bytes following 'DATACLAS='. > However, I am wondering if I can do this in DFSORT. > So, if I have > DATACLAS=FRED, > I would want to extract and summarize FRED and if I have >DATACLAS=POTATO I would want to extract and summarize POTATO > I guess the question is how can I extract characters from the input records > that appear following the SubString match? > > Thanks > > I am not a DFSORT expert. But I think that you'd be better off trying to use PARSE. https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.iceg200/rrwvf.htm OUTREC PARSE=(%01=(STARTAFT=C'DATACLAS=',ENDBEFR=C',')), BUILD=(%01) I didn't include all the other SORT control cards. -- A sine curve goes off to infinity, or at least the end of the blackboard. -- Prof. Steiner Maranatha! <>< John McKown -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
Extract next eight character positions after SubString Match
Hello to the DFSORT folks. I have a file of data containing extracts from some JCL. Specifically, I am looking for all values of DATACLAS. This all relates back to Pervasive Encryption. I just want a quick report of the DATACLAS values in use today, as well as the counts for each DATACLAS item I find. I ran a quick compare to get a report from our JCL Library, and now I am building a SORT to look at the variable length input file data. I can use 'INCLUDE COND=(5,70,SS,EQ,C'DATACLAS=') to select a subset of records from the original compare report. I could take this file and play with it in ISPF EDIT to pull out the eight bytes following 'DATACLAS='. However, I am wondering if I can do this in DFSORT. So, if I have DATACLAS=FRED, I would want to extract and summarize FRED and if I have DATACLAS=POTATO I would want to extract and summarize POTATO I guess the question is how can I extract characters from the input records that appear following the SubString match? Thanks -- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN