Re: Generating output in SORT with a time value

2024-01-31 Thread Billy Ashton
Thanks so much for this, Kolusu. I was hoping to find a way to get a new 
time on every record, but I think I can work with this and the following 
sequence number.


I hope you have a great day today!

Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 1/31/2024 1:32:23 PM
Subject Re: Generating output in SORT with a time value


 Hi there Kolusu, I messed up my format, and should have had colons instead of 
commas.


Billy,

Apart from usage of Colons, did you realize that you have OVERLAPPING data?

At position 82 you wanted to write 82:C'This is my data field 3',  and then at 
position 102 you wanted to write this 102:C'AZ',

The length of the text at 82 is 23 bytes long.

+1+2
THIS IS MY DATA FIELD 3

You want to write 23 bytes into a 20-byte length which is NOT possible.


 I checked the APG, and could not find a way to use only the timestamp.


Not every user requirement in the world can be documented.  You get the 
timestamp and strip of the values and get the desired value.

btw I hope you do realize that TIMESTAMP is got ONCE and since you are writing 
1500 records, every record will have the SAME exact timestamp.   The Timestamp 
is NOT changed for every record.

For example, this is the time stamp

+1+2+---
-mm-dd-hh.mm.ss.nn
2024-01-31-11.05.40.559424

Now you want to remove the separators and have the time as 110540559424.

That value will remain the SAME value for all the 1500 records.

If you want the same time for all the records, then here is the JCL that would 
get you the desired results ( I fixed the overlapping fields )

2 lines(see the lines in bold) is what is required to get the time without 
separators.

//STEP0100 EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD *
ABC
//SORTOUT  DD SYSOUT=*
//SYSINDD *
  OPTION COPY
  INREC BUILD=(DATE5)
  OUTFIL REPEAT=1500,
  BUILD=(01:C'TLX1',
 05:12,15,UFF,M11,LENGTH=12,
 17:SEQNUM,5,ZD,START=10001,INCR=3,
 22:C'THIS IS MY DATA FIELD 1',
 52:C'THIS IS MY DATA FIELD 2',
 82:C'THIS IS MY DATA FIELD 3',
112:C'AZ',
114:C'1')
/*
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: Generating output in SORT with a time value

2024-01-31 Thread Billy Ashton
Hi there Kolusu, I messed up my format, and should have had colons 
instead of commas. Here is what I should have written:

OUTFIL   REPEAT=1500
BUILD=(1:C'TLX1',
5:SEQNUM,12,ZD,START=12345600,INCR=1,  <<==This is the 
one to change from a number to a dynamic timestamp

   17:SEQNUM,5,ZD,START=10001,INCR=3
   22:C'This is my data field 1',
   52:C'This is my data field 2' ,
   82:C'This is my data field 3',
  102:C'AZ',
  104:C'1')

I checked the APG, and could not find a way to use only the timestamp. 
What I want in column 5 is a 12 numeral value (let's say 125110104322) 
that represents the HHMMSSmm for each record as it is built. I have 
seen examples using a static date for the entire execution, but I am 
hoping for multiple milliseconds to show up in these records.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 1/31/2024 12:06:40 PM
Subject Re: Generating output in SORT with a time value


 We have this so far:

OUTFIL   REPEAT=1500
BUILD=(1,C'TLX1',
5,SEQNUM,12,ZD,START=12345600,INCR=1,
   17,SEQNUM,5,ZD,START=10001,INCR=3
   22,C'This is my data field 1',
   52,C'This is my data field 2' ,
   82,C'This is my data field 3',
  102,C'AZ',
  104,C'1')


Billy,

Looks like you created your own syntax as that is NOT a valid for both DFSORT 
and Syncsort.


 IS there a way I can say "In column 5, put the right-now-time-millisecond value as 
HHMMSSmm". We will create multiple files at different times for our test, which 
is why we want to have the real time instead of a generated number.


No idea, what column 5 is.   If you want a 26 byte date of the format 
C'-mm-dd-hh.mm.ss.nn', then use DATE5. Look at examples in the DFSORT 
Application programming Guide.


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


Generating output in SORT with a time value

2024-01-31 Thread Billy Ashton

Hey everyone!
I have a user who is creating some test data to load into VSAM using 
DFSORT, and he wants to create part of the key using the current 
millisecond timestamp. IS there a way I can say "In column 5, put the 
right-now-time-millisecond value as HHMMSSmm". We will create 
multiple files at different times for our test, which is why we want to 
have the real time instead of a generated number.


We have this so far:
OUTFIL   REPEAT=1500
BUILD=(1,C'TLX1',
   5,SEQNUM,12,ZD,START=12345600,INCR=1,
  17,SEQNUM,5,ZD,START=10001,INCR=3
  22,C'This is my data field 1',
  52,C'This is my data field 2' ,
  82,C'This is my data field 3',
 102,C'AZ',
 104,C'1')

Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Replacement for LMAC program in ISPF 3.1

2024-01-29 Thread Billy Ashton

Hello, we just turned on z/OS 3.1, and its component ISPF 3.1 here.

Now, I just saw when editing a member that my LMAC program (from Doug 
Nadel originally) no longer works, and gives me a message:
LMAC005 You must be running an ISPF version greater than 5.8 and less 
than  7.9 to run LMAC.


How should I deal with this? A quick look on the web indicated that I 
should use the utility function to define each line command to a macro. 
I currently have 85 macros in my single Rexx driver, and cannot imagine 
splitting this and going through that.


Do I have any way to drive my single macro program like I had before 
with LMAC?


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Can this be done?

2023-12-15 Thread Billy Ashton
Ok, it looks like my plan to read any type of file is not going to be as 
simple as I thought. I guess I will abandon that for now, as it was just 
going to be a learning exercise to see if we could have a single program 
open and read data from any disk filetype.  I will stop thinking now, 
and go back to work!


Thanks for letting me know how complicated this simple thought was - you 
can all carry on here without me...


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Can this be done?

2023-12-14 Thread Billy Ashton
Hey everyone! I have a little down time here at the end of the year with 
our freeze, and I wanted to play with some ideas I have had.


I would like to write a program that can open any kind of file - PDS, 
Sequential, Panvalet, loadlib, and maybe even VSAM components. I want to 
open the file in "raw" format, as if I were going straight to the disk 
pack and scooping up the bytes from the beginning of the allocation to 
the end.


Is there any way to do this without caring about the catalog RECFM? 
Obviously, the easiest way is through some JCL parameter that says 
"force as PS" but I doubt that is likely. I can't go into more detail at 
present, sorry!


What do you think?

Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Scan a VSAM LDS?

2023-09-12 Thread Billy Ashton
This looks interesting at first glance...do you know where I might find 
some examples to see it in action?


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Seymour J Metz" 

To IBM-MAIN@listserv.ua.edu
Date 9/12/2023 12:39:47 PM
Subject Re: Scan a VSAM LDS?


You could use windowing.Look at CSRIDAC if you don't want to use assembler.


From: IBM Mainframe Discussion List  on behalf of Billy 
Ashton 
Sent: Tuesday, September 12, 2023 11:19 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Scan a VSAM LDS?

Hey everyone!
I was wondering if there is a way to scan a VSAM LDS for string
occurrences? I know that there is no way to see the individual records,
but it could be helpful if I could at least dump the data block where
the string was found.

As an example, something like this:
OPTION COPY
RECORD TYPE=V
INCLUDE COND=(5,24576,SS,EQ,C'MBC$23005X')

(I don't know if I need special statements for VSAM LDS...I couldn't
find any indication in the docs.)

Thank you and best regards,
Billy Ashton

--
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


Scan a VSAM LDS?

2023-09-12 Thread Billy Ashton

Hey everyone!
I was wondering if there is a way to scan a VSAM LDS for string 
occurrences? I know that there is no way to see the individual records, 
but it could be helpful if I could at least dump the data block where 
the string was found.


As an example, something like this:
OPTION COPY
RECORD TYPE=V
INCLUDE COND=(5,24576,SS,EQ,C'MBC$23005X')

(I don't know if I need special statements for VSAM LDS...I couldn't 
find any indication in the docs.)


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Is SMP/E needed for installs?

2023-08-31 Thread Billy Ashton
If you want to INCLUDE a member, this is like a PROC, so you need to 
have SETS in a system-defined proclib or you have to add something like

//JCLLIB ORDER=PHS.PDS.JCL840

and I would probably move the INCLUDE up to where you explain what is in 
the SETS member, to make it clearer.


Billy

Thank you and best regards,
Billy Ashton


-- Original Message --

From "Phil Smith III" 

To IBM-MAIN@listserv.ua.edu
Date 8/31/2023 11:58:23 AM
Subject Re: Is SMP/E needed for installs?


Thanks to many people politely telling me, "Hey dummy, use SYMBOLS=", I have 
gotten around the must-change-many-places problem with the SMP/E jobs. Thanks!

Next, Gil suggested using an INCLUDE member, so the SETs get done exactly once, 
which I quite like. But now I'm stumped again.

Here's my trivial test job:
//TEST JOB  MSGLEVEL=(1,1),MSGCLASS=A,NOTIFY=
//*
//* THE FOLLOWING DATA SETS EXIST:
//*  PHS.PDS.JCL840(TEST) **THIS JOB
//*  PHS.PDS.JCL840(SETS) **THE INCLUDE MEMBER
//*  HUD840.VVSH84C.SMPMCS**THE INPUT DATA SET
//*  PHS840.SAMPLE.MCS**THE OUTPUT DATA SET
//*
//* PHS.PDS.JCL840(SETS) INCLUDES THE FOLLOWING LONE STATEMENT:
//*  SET  HLQ=HUD840
//*
//COPYIT   EXEC PGM=IEBCOPY
//JCLLIB   DD   DSN=PHS.PDS.JCL840,DISP=SHR
// INCLUDE MEMBER=SETS
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DSN=
//SYSUT2   DD DSN=PHS840.SAMPLE.MCS,DISP=OLD
//SYSINDD *
COPYGRP INDD=((SYSUT1,R)),OUTDD=SYSUT2
/*

This fails with:
STMT NO. MESSAGE
   4 IEFC017I INCLUDE SETS WAS NOT FOUND
   6 IEFC624I INCORRECT USE OF PERIOD IN THE DSN FIELD
I understand the latter error (because the SET didn't happen), but the first is 
baffling. Based on
https://www.ibm.com/docs/en/zos/2.1.0?topic=description-examples-include-statement
I first thought that the JCLLIB needed to *precede* the EXEC statement. That's 
sure what they show. But if I move it up one, I get:
STMT NO. MESSAGE
   2 IEFC019I MISPLACED DD STATEMENT
.followed by the same two other errors.

I'm sure this is something obvious, but I've been tinkering and not getting anywhere. At 
one point I did have it complaining not about the JCLLIB (which was before the EXEC at 
that point), but rather that the "JOB HAS NO STEPS", which I don't understand 
either, but that went away with more tinkering-though nothing I did really ADDED a 
jobstep.

Any ideas?


--
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: SORTWK space usage

2023-07-06 Thread Billy Ashton
OK, the team is going to figure out what is the best set of defaults for 
the majority of work (80/20 rule), and then use the full DFSPARM 
override for those odd jobs that need to add FILSZ. I think we will 
leave the DYNSPC out for now, and work with the default 256 unless we 
need to change it. Of course, we test all the job changes like this.


Thanks again so much for your guidance here! I don't think I have any 
more questions, but other folks may still jump in, I guess.


Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 7/6/2023 1:13:39 PM
Subject Re: SORTWK space usage


 and their intention is to use the common DFSPARM like I showed, but then to 
concatenate another line there with the FILSZ=E### value. This way, they don't 
need to specify everything again, and can focus on only the parameter they need.


Billy,

Unfortunately, that would NOT work.  You cannot have multiple OPTION 
statements.  However, you can override the contents of DD of a proc in the JCL. 
 So, you add the FILSZ parameter at the end of your parms. Or you need to add a 
COMMA at the end and have FILSZ parm on the next line.


 Is there some formula for the DYNSPC setting? the manual had a table, but it 
said it was showing a value for 6000-byte records...that doesn't sound overly 
useful


The manual also mentions about the size of the file in MB in relation to DYNSPC.  
"Blockset is able to sort approximately 150 megabytes with DYNSPC=32 and 
approximately 1200 megabytes with DYNSPC=256."

In your case you overrode DYNSPC=768 which would let your Sort 3600 
megabytes(3.6 GB).   However, your program is trying to sort about 69 GB of 
data.   You cannot really tune DYNSPC for that size.  You are better off 
providing the estimated filesize via DFSPARM with DYNALLOC and sort will 
automatically allocate the necessary disk space.

≫--is there a different setting for secondary allocation?

Look up the parm WRKSEC which specifies whether DFSORT uses automatic secondary 
allocation for temporary JCL SORTWKdd data sets for which a secondary 
allocation amount is not specified.

https://www.ibm.com/docs/en/zos/2.5.0?topic=statements-option-control-statement


Thanks,
Kolusu


--
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: SORTWK space usage

2023-07-06 Thread Billy Ashton
Yes, you are right. We are looking for a common proc (well, it is common 
per application team - we have 7 major teams). Once we get done going 
through this exercise, we will see what makes sense to update 
installation defaults - that is a good idea!


Now, for the one big job - the COBOL program is releasing records to the 
sort, and their intention is to use the common DFSPARM like I showed, 
but then to concatenate another line there with the FILSZ=E### value. 
This way, they don't need to specify everything again, and can focus on 
only the parameter they need.


Is there some formula for the DYNSPC setting? the manual had a table, 
but it said it was showing a value for 6000-byte records...that doesn't 
sound overly useful. And based on what you said, this is primary 
allocations--is there a different setting for secondary allocation? So 
for example, If I had my SORTWKxx file defined as CYL(4000,1000) - which 
might be too high a primary as you said - How can I convert that sort of 
allocation to DYNSPC settings? It sounds like that would be a crucial 
setting for my common parameters to be successful.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 7/6/2023 12:05:52 PM
Subject Re: SORTWK space usage


 One question they asked me, about our common SORT proc:


Billy,

Common SORT proc?  Does that mean every SORT gets that override?  If that is 
the intention, why not update the Installation defaults with those overrides? 
You can use PARMLIB member and update for both ICEAM1 (JCL Invocations)  ICEAM2 
(Program invoked) environments.


 Is it acceptable to code this DFSPARM data in a single PDS member, and then 
let it be the default for all our SORT calls? Is there any potential problem 
with using this everywhere?


Billy,

It looks good, but I just don't see the FILSZ parm.  I remember you mentioning 
that a COBOL program is passing the records to DFSORT.  The DYNSPC=768 would 
give you 1068 cylinders as primary space.

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: SORTWK space usage

2023-07-06 Thread Billy Ashton
This discussion has gone well in my meeting with the programming team. 
One question they asked me, about our common SORT proc:


Is it acceptable to code this DFSPARM data in a single PDS member, and 
then let it be the default for all our SORT calls? Is there any 
potential problem with using this everywhere?

//DFSPARM  DD   *
 OPTION DYNALLOC=(SYSDA,15),DYNSPC=768,HIPRMAX=OPTIMAL,MOSIZE=MAX,MOWRK
/*

(I put the data instream here, but we want to stick it into a system PDS 
member.)


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 7/5/2023 11:18:26 AM
Subject Re: SORTWK space usage


 Also, I assume there is no way to force a Hipersort or a Dataspace sort? In 
one of my tests this morning, I saw this:


Don,

If you want to force HIPERSORT, then you need to turn off other paths of code.  
You can do that with the following.

MOSIZE=0,DSPSIZE=0,NOMOWRK,HIPRMAX=OPTIMAL

Similarly, if you want to run dataspace path then you need.

MOSIZE=0,NOMOWRK,HIPRMAX=0,DSPSIZE=MAX


 Should I be concerned about the ICED180 and 188 messages showing they weren't 
used?


NO.  DFSORT executes 5 different paths and depending on the path used, the 
message ICE165I, ICE199I, ICE299I, ICE399I, ICE180I and ICE188I will have a 
non-zero value.  In your case your job used Memory objects as work storage and 
hence the other paths of code have ZERO values for usage.

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: SORTWK space usage

2023-07-03 Thread Billy Ashton
Thanks so much to everyone who replied. I have gotten some positive 
responses internally here, and we are going to look at retooling some of 
our jobs after we do some testing to be sure we don't hurt anything. Who 
knows, we might even get some performance gains by letting the system 
take defaults.


Have a good evening, and a happy Independence Day to the US folks!

Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 7/3/2023 6:40:56 PM
Subject Re: SORTWK space usage


 how can I dump off the current SORT system options?


Billy,

Check this.

https://www.mail-archive.com/ibm-main@listserv.ua.edu/msg105660.html

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: SORTWK space usage

2023-07-03 Thread Billy Ashton
Sri Kolusu, you mentioned getting better diagnostics from the SORTDIAG 
DD DUMMY. Are these diagnostics something I can interpret? I know that 
many of the SORT messages that normally come out are coded values and 
not overly useful on their own without some interpretation (unless I 
missed some docu somewhere that helps interpret the SYSOUT messages).


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 7/3/2023 4:54:39 PM
Subject Re: SORTWK space usage


450mill * 110 * 1.5 = 7425000 = 69GB so maybe SORTWK01 - SORTWK10


Billy,

Based on your above description, you would need about 1.345 million tracks of 
sortwk space if the sorting is to be done entirely using Disk space.


//SORTWK01  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))


It is highly unlikely that you have 10 SINGLE volumes that have 4000 cylinders 
of contiguous space.  So I would reduce the primary to reasonable amount 
depending on your shop disk space availability.


//SORTWK01 DD UNIT=(WORK,5)...

and this will not work, is that right, Sri Kolusu? I would only get the first 
volume anyway?

Well, you will NOT a JCL error or any DFSORT message as it would ONLY consider 
the FIRST volume. SORTWK space cannot span multiple volumes. Only the First 
volume is considered.

Ideally, I would code up Dynamic Allocation and let DFSORT figure out how much 
disk space it needs.

//SYSINDD *
  OPTION DYNALLOC=(,16),MOSIZE=MAX
  SORT FIELDS=(P,M,F,X)
/*

This would allocate 16 + 2(reserve based on DYNAPCT=10) = 18 sortwk datasets 
along with setting the MOSIZE to max so that you get the max of 64 bit memory 
objects.

If you know the esoteric name for disk pool space then you can specify on 
dynalloc parm.  For example if you diskspace has an esoteric SYSWRK

//SYSINDD *
  OPTION DYNALLOC=(SYSWRK,16),MOSIZE=MAX
  SORT FIELDS=(P,M,F,X)
/*


 If I have a COBOL program doing a SORT in the middle of the program (I am not 
sure if the big file is doing this, too or not), is using this DFSORT the best 
way to force the use of 15 Dynalloc SORTWK files, so I would not have to code 
SORTWK DD statements?


Well if a COBOL program is passing the records then DFSORT has no ability of 
Calculating the filesize and hence you would receive ICE118I message. 
Generally, DFSORT can automatically determine the input file size. However, in 
a few cases, such as when an E15 supplies all of the input records,
or when information about a tape data set is not available from a tape 
management system, DFSORT cannot determine an accurate file size.

I believe you are using Cobol SORT key word to sort the data. In such cases you 
have to code DFSPARM along with dynamic allocation and the estimated file size, 
so that DFSORT can determine the size of the file that is being sorted. So 
something like this. I assumed that the size of the file to be sorted has 500 
million (450 + 10% for future growth).

//DFSPARM  DD *
  OPTION DYNALLOC=(,16),MOSIZE=MAX, FILSZ=E5
/*


Also make sure that your JCL has  //SORTDIAG DD DUMMY   Which will produce more 
diagnostic messages


Thanks,
Kolusu
DFSORT Development
IBM Corporation

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Billy Ashton
Sent: Monday, July 3, 2023 11:14 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: SORTWK space usage

Thanks everyone - these are good recommendations.

However, the guy who came to me first has a job that sorts 450 million records 
of 110 bytes, and I can't see how I could run SORT without specifying SORTWK DD 
statements. Are there special configuration options I can verify that we have 
in place to help my comfort level that I could eliminate SORTWK DD?

If the programming team are not convinced, does this look right, based on the 
discussion - and based on a 100% Disk sort, which is not likely?
450mill * 110 * 1.5 = 7425000 = 69GB so maybe SORTWK01 - SORTWK10
//SORTWK01  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))
to
//SORTWK10  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))

and this will give me 4000 + (15*1000) on each, or 4c primary + (up to 150 
* 1000) secondary

While we have been talking here, I have looked, and found some jobs with
//SORTWK01 DD UNIT=(WORK,5)...
and this will not work, is that right, Sri Kolusu? I would only get the first 
volume anyway?

Thank you and best regards,
Billy Ashton


-- Original Message --
From "Farley, Peter" 
<031df298a9da-dmarc-requ...@listserv.ua.edu<mailto:031df298a9da-dmarc-requ...@listserv.ua.edu>>
To IBM-MAIN@listserv.ua.edu<mailto:IBM-MAIN@listserv.ua.edu>
Date 7/3/2023 12:44:43 PM
Subject Re: SORTWK space usage


I will add on to Sri's excellent answer with my very STRONG recommendation NOT 
to use hard-coded SORTWK's in your JCL.  Both of the major SORT vendors (IBM 
and Syncsort) do a far, far better job of estimating necessary SOR

Re: SORTWK space usage

2023-07-03 Thread Billy Ashton
Thanks again, Peter, and all. One last question - how can I dump off the 
current SORT system options? For example, Peter, you said, "my shop 
defaults DYNALLOC to 59" - how can I see what our default setting has?


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Farley, Peter" <031df298a9da-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 7/3/2023 5:27:52 PM
Subject Re: SORTWK space usage


Billy,

If it is an internal sort then supply the FILSZ=Ennn parameter in 
DFSPARM (or $ORTPARM for Syncsort) along with the DYNALLOC parameter.

My shop defaults DYNALLOC to 59 and allows production jobs to use the max of 
255 for particularly large sorts.  Some of ours are, like yours, multiple 
hundreds of millions of relatively short records, and DYNALLOC is used all the 
time for those, no JCL SORTWK at all.

My team has a standing policy to:

(1) remove SORTWKnn from JCL and PROC's that have them when they are next 
updated
(2) add the appropriate PARM JCL if not already there
(3) add/update PARM control card(s): DYNALLOC larger than default if needed by 
testing on production volume files; for internal SORT's also add FILSZ=Ennn at 
about 1.2 times current volume unless there is known future growth anticipated
(4) enlarge too-small REGION parameters to at least 512M for large sort steps 
(internal or external) and higher if needed up to the installation-controlled 
max

Let SORT do the work for you, there is really no need to do that work yourself.

HTH

Peter

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Billy Ashton
Sent: Monday, July 3, 2023 3:48 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: SORTWK space usage

Doug, this raises a good point. If I have a COBOL program doing a SORT in the 
middle of the program (I am not sure if the big file is doing this, too or 
not), is using this DFSPARM the best way to force the use of 15 Dynalloc SORTWK 
files, so I would not have to code SORTWK DD statements?

Thank you and best regards,
Billy Ashton


-- Original Message --
From "Doug" 
To IBM-MAIN@listserv.ua.edu
Date 7/3/2023 2:45:28 PM
Subject Re: SORTWK space usage


Try adding this instead off sorted dd.
//DFSPARM  DD   *
   OPTION DYNALLOC=(SYSDA,15),DYNSPC=768
/*

You can add other options too.
Regards, Doug

On Jul 3, 2023, at 14:34, Michael Oujesky  wrote:

Just a warning, but the SORTWK specification decision depends on how SORT is 
provided the input data.  If via SORTIN, then allowing SORT to make the 
determination should be fine.  But when the incoming records are provided SORT 
one records at a time (piping, E15 exit, etc,) then nudging SORT's SORTWK 
decision by providing some SORTWK areas would probably be a better approach.

At 01:13 PM 7/3/2023, Billy Ashton wrote:


  Thanks everyone - these are good recommendations.

  However, the guy who came to me first has a job that sorts 450 million 
records of 110 bytes, and I can't see how I could run SORT without specifying 
SORTWK DD statements. Are there special configuration options I can verify that 
we have in place to help my comfort level that I could eliminate SORTWK DD?

  If the programming team are not convinced, does this look right, based on the 
discussion - and based on a 100% Disk sort, which is not likely?
  450mill * 110 * 1.5 = 7425000 = 69GB  so maybe SORTWK01 -
 SORTWK10
  //SORTWK01  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))
  to
  //SORTWK10  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))

  and this will give me 4000 + (15*1000) on each, or 4c primary +
 (up to 150 * 1000) secondary

  While we have been talking here, I have looked, and found some jobs
 with
  //SORTWK01 DD UNIT=(WORK,5)...
  and this will not work, is that right, Sri Kolusu? I would only get the first 
volume anyway?

  Thank you and best regards,
  Billy Ashton


  -- Original Message --
  From "Farley, Peter"
 <031df298a9da-dmarc-requ...@listserv.ua.edu>
  To IBM-MAIN@listserv.ua.edu
  Date 7/3/2023 12:44:43 PM
  Subject Re: SORTWK space usage


  I will add on to Sri's excellent answer with my very STRONG recommendation 
NOT to use hard-coded SORTWK's in your JCL.  Both of the major SORT vendors 
(IBM and Syncsort) do a far, far better job of estimating necessary SORTWK 
space and memory utilization than any human could hope to do.

  I also STRONGLY recommend that you give your JCL and program-controlled SORT 
steps as much memory in the REGION parameter as your installation allows for 
production and test jobs.  Both of the major SORT programs will figure out how 
much of that memory to use, whether and how much of it to use in the current 
WLM environment, and will make VERY effective use of as much of it as they can 
to cut down on SORT execution and elapsed time.  Memory is (relatively) cheap, 
don't be afraid to use all you've got available to shorten your SORT ti

Re: SORTWK space usage

2023-07-03 Thread Billy Ashton

It is on disk, Doug. Thanks for the caveat!

Thank you and best regards,
Billy Ashton


-- Original Message --

From "Doug Shupe" 

To IBM-MAIN@listserv.ua.edu
Date 7/3/2023 4:07:05 PM
Subject Re: SORTWK space usage


Billy,
Am only trying to present a possible option. The number of volumes and 
available space is shop dependent. Best to grab a sort manual and go through 
the possible option then test.
The expert, Sri Kolusu many have thoughts on best practice.
Is the input disk or tape ? It makes a difference..
Doug

Stay Safe


 On Jul 3, 2023, at 15:48, Billy Ashton  wrote:

 Doug, this raises a good point. If I have a COBOL program doing a SORT in the 
middle of the program (I am not sure if the big file is doing this, too or 
not), is using this DFSPARM the best way to force the use of 15 Dynalloc SORTWK 
files, so I would not have to code SORTWK DD statements?

 Thank you and best regards,
 Billy Ashton


 -- Original Message --
 From "Doug" 
 To IBM-MAIN@listserv.ua.edu
 Date 7/3/2023 2:45:28 PM
 Subject Re: SORTWK space usage


 Try adding this instead off sorted dd.
 //DFSPARM  DD   *
  OPTION DYNALLOC=(SYSDA,15),DYNSPC=768
 /*

 You can add other options too.
 Regards, Doug


 On Jul 3, 2023, at 14:34, Michael Oujesky  wrote:

 Just a warning, but the SORTWK specification decision depends on how SORT is 
provided the input data.  If via SORTIN, then allowing SORT to make the 
determination should be fine.  But when the incoming records are provided SORT 
one records at a time (piping, E15 exit, etc,) then nudging SORT's SORTWK 
decision by providing some SORTWK areas would probably be a better approach.

 At 01:13 PM 7/3/2023, Billy Ashton wrote:

 Thanks everyone - these are good recommendations.

 However, the guy who came to me first has a job that sorts 450 million records 
of 110 bytes, and I can't see how I could run SORT without specifying SORTWK DD 
statements. Are there special configuration options I can verify that we have 
in place to help my comfort level that I could eliminate SORTWK DD?

 If the programming team are not convinced, does this look right, based on the 
discussion - and based on a 100% Disk sort, which is not likely?
 450mill * 110 * 1.5 = 7425000 = 69GB
 so maybe SORTWK01 - SORTWK10
 //SORTWK01  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))
 to
 //SORTWK10  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))

 and this will give me 4000 + (15*1000) on each, or 4c primary + (up to 150 
* 1000) secondary

 While we have been talking here, I have looked, and found some jobs with
 //SORTWK01 DD UNIT=(WORK,5)...
 and this will not work, is that right, Sri Kolusu? I would only get the first 
volume anyway?

 Thank you and best regards,
 Billy Ashton


 -- Original Message --
 From "Farley, Peter" <031df298a9da-dmarc-requ...@listserv.ua.edu>
 To IBM-MAIN@listserv.ua.edu
 Date 7/3/2023 12:44:43 PM
 Subject Re: SORTWK space usage


 I will add on to Sri's excellent answer with my very STRONG recommendation NOT 
to use hard-coded SORTWK's in your JCL.  Both of the major SORT vendors (IBM 
and Syncsort) do a far, far better job of estimating necessary SORTWK space and 
memory utilization than any human could hope to do.

 I also STRONGLY recommend that you give your JCL and program-controlled SORT 
steps as much memory in the REGION parameter as your installation allows for 
production and test jobs.  Both of the major SORT programs will figure out how 
much of that memory to use, whether and how much of it to use in the current 
WLM environment, and will make VERY effective use of as much of it as they can 
to cut down on SORT execution and elapsed time.  Memory is (relatively) cheap, 
don't be afraid to use all you've got available to shorten your SORT times.

 My basic advice is don't try to second-guess these very intelligent programs - 
they each have more than half a century of practice and experience that none of 
us can match, even those of us who have been around that long.

 Peter

 -Original Message-
 From: IBM Mainframe Discussion List  On Behalf Of 
Sri h Kolusu
 Sent: Monday, July 3, 2023 12:28 PM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: SORTWK space usage


 I will only get the primary space of 5000 cylinders, and the other 14x2000 
cylinders is never used. Is that right?


 Billy,

 No. Incorrect. DFSORT will make use of BOTH primary and secondary space 
allocations ( 1 primary + 15 Secondary) for a total of 16 extents.  So if you 
allocated 1 sortwk dataset with (CYL,(5000,2000)), then DFSORT would use 5000 + 
15* 2000 = 5000 + 3 = 35,000 cylinders.  Also note that the secondary 
extents will only come into picture ONLY when needed.


 Is there a written explanation I can forward to the programmers so they 
understand this?
 Also (since I know it will come), is there any good way to calculate how much 
DASD sortwork would be used? I know this depends on what is in 

Re: SORTWK space usage

2023-07-03 Thread Billy Ashton
Doug, this raises a good point. If I have a COBOL program doing a SORT 
in the middle of the program (I am not sure if the big file is doing 
this, too or not), is using this DFSPARM the best way to force the use 
of 15 Dynalloc SORTWK files, so I would not have to code SORTWK DD 
statements?


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Doug" 

To IBM-MAIN@listserv.ua.edu
Date 7/3/2023 2:45:28 PM
Subject Re: SORTWK space usage


Try adding this instead off sorted dd.
//DFSPARM  DD   *
  OPTION DYNALLOC=(SYSDA,15),DYNSPC=768
/*

You can add other options too.
Regards, Doug

On Jul 3, 2023, at 14:34, Michael Oujesky  wrote:

Just a warning, but the SORTWK specification decision depends on how SORT is 
provided the input data.  If via SORTIN, then allowing SORT to make the 
determination should be fine.  But when the incoming records are provided SORT 
one records at a time (piping, E15 exit, etc,) then nudging SORT's SORTWK 
decision by providing some SORTWK areas would probably be a better approach.

At 01:13 PM 7/3/2023, Billy Ashton wrote:


 Thanks everyone - these are good recommendations.

 However, the guy who came to me first has a job that sorts 450 million records 
of 110 bytes, and I can't see how I could run SORT without specifying SORTWK DD 
statements. Are there special configuration options I can verify that we have 
in place to help my comfort level that I could eliminate SORTWK DD?

 If the programming team are not convinced, does this look right, based on the 
discussion - and based on a 100% Disk sort, which is not likely?
 450mill * 110 * 1.5 = 7425000 = 69GB
 so maybe SORTWK01 - SORTWK10
 //SORTWK01  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))
 to
 //SORTWK10  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))

 and this will give me 4000 + (15*1000) on each, or 4c primary + (up to 150 
* 1000) secondary

 While we have been talking here, I have looked, and found some jobs with
 //SORTWK01 DD UNIT=(WORK,5)...
 and this will not work, is that right, Sri Kolusu? I would only get the first 
volume anyway?

 Thank you and best regards,
 Billy Ashton


 -- Original Message --
 From "Farley, Peter" <031df298a9da-dmarc-requ...@listserv.ua.edu>
 To IBM-MAIN@listserv.ua.edu
 Date 7/3/2023 12:44:43 PM
 Subject Re: SORTWK space usage


 I will add on to Sri's excellent answer with my very STRONG recommendation NOT 
to use hard-coded SORTWK's in your JCL.  Both of the major SORT vendors (IBM 
and Syncsort) do a far, far better job of estimating necessary SORTWK space and 
memory utilization than any human could hope to do.

 I also STRONGLY recommend that you give your JCL and program-controlled SORT 
steps as much memory in the REGION parameter as your installation allows for 
production and test jobs.  Both of the major SORT programs will figure out how 
much of that memory to use, whether and how much of it to use in the current 
WLM environment, and will make VERY effective use of as much of it as they can 
to cut down on SORT execution and elapsed time.  Memory is (relatively) cheap, 
don't be afraid to use all you've got available to shorten your SORT times.

 My basic advice is don't try to second-guess these very intelligent programs - 
they each have more than half a century of practice and experience that none of 
us can match, even those of us who have been around that long.

 Peter

 -Original Message-
 From: IBM Mainframe Discussion List  On Behalf Of 
Sri h Kolusu
 Sent: Monday, July 3, 2023 12:28 PM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: SORTWK space usage


 I will only get the primary space of 5000 cylinders, and the other 14x2000 
cylinders is never used. Is that right?


 Billy,

 No. Incorrect. DFSORT will make use of BOTH primary and secondary space 
allocations ( 1 primary + 15 Secondary) for a total of 16 extents.  So if you 
allocated 1 sortwk dataset with (CYL,(5000,2000)), then DFSORT would use 5000 + 
15* 2000 = 5000 + 3 = 35,000 cylinders.  Also note that the secondary 
extents will only come into picture ONLY when needed.


 Is there a written explanation I can forward to the programmers so they 
understand this?
 Also (since I know it will come), is there any good way to calculate how much 
DASD sortwork would be used? I know this depends on what is in memory at the 
time, but want to get a better handle on how Sort determines what it needs.


 I would suggest that you use DFSORT's Dynamic Allocation as it will allocate 
the required workspace optimally rather than programmers calculating it.  The 
reason is you don't want to change the allocation every time there is an 
increase/decrease in the number of records to be sorted.

 Having said that, here is a general formula that you want to use.

 The amount of sortwk space required depends on the size of the file. It 
usually ranges from 1.3X to 1.8X of the size of the file to be sorted depending 
on the sort

Re: Broadcom SCRT

2023-07-03 Thread Billy Ashton
Broadcom was having some problems with the customer website earlier 
today, but I think they are back up and running now.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "rpinion865" <042a019916dd-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 7/3/2023 9:49:55 AM
Subject Broadcom SCRT


Anyone else having issues logging onto Broadcom SCRT website?

Sent from Proton Mail mobile

--
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: SORTWK space usage

2023-07-03 Thread Billy Ashton

Thanks everyone - these are good recommendations.

However, the guy who came to me first has a job that sorts 450 million 
records of 110 bytes, and I can't see how I could run SORT without 
specifying SORTWK DD statements. Are there special configuration options 
I can verify that we have in place to help my comfort level that I could 
eliminate SORTWK DD?


If the programming team are not convinced, does this look right, based 
on the discussion - and based on a 100% Disk sort, which is not likely?

450mill * 110 * 1.5 = 7425000 = 69GB
so maybe SORTWK01 - SORTWK10
//SORTWK01  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))
to
//SORTWK10  DD  UNIT=WORK,DSNTYPE=LARGE,SPACE=(CYL,(4000,1000))

and this will give me 4000 + (15*1000) on each, or 4c primary + (up 
to 150 * 1000) secondary


While we have been talking here, I have looked, and found some jobs with
//SORTWK01 DD UNIT=(WORK,5)...
and this will not work, is that right, Sri Kolusu? I would only get the 
first volume anyway?


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Farley, Peter" <031df298a9da-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 7/3/2023 12:44:43 PM
Subject Re: SORTWK space usage


I will add on to Sri's excellent answer with my very STRONG recommendation NOT 
to use hard-coded SORTWK's in your JCL.  Both of the major SORT vendors (IBM 
and Syncsort) do a far, far better job of estimating necessary SORTWK space and 
memory utilization than any human could hope to do.

I also STRONGLY recommend that you give your JCL and program-controlled SORT 
steps as much memory in the REGION parameter as your installation allows for 
production and test jobs.  Both of the major SORT programs will figure out how 
much of that memory to use, whether and how much of it to use in the current 
WLM environment, and will make VERY effective use of as much of it as they can 
to cut down on SORT execution and elapsed time.  Memory is (relatively) cheap, 
don't be afraid to use all you've got available to shorten your SORT times.

My basic advice is don't try to second-guess these very intelligent programs - 
they each have more than half a century of practice and experience that none of 
us can match, even those of us who have been around that long.

Peter

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of Sri 
h Kolusu
Sent: Monday, July 3, 2023 12:28 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: SORTWK space usage


I will only get the primary space of 5000 cylinders, and the other 14x2000 
cylinders is never used. Is that right?


Billy,

No. Incorrect. DFSORT will make use of BOTH primary and secondary space 
allocations ( 1 primary + 15 Secondary) for a total of 16 extents.  So if you 
allocated 1 sortwk dataset with (CYL,(5000,2000)), then DFSORT would use 5000 + 
15* 2000 = 5000 + 3 = 35,000 cylinders.  Also note that the secondary 
extents will only come into picture ONLY when needed.


Is there a written explanation I can forward to the programmers so they 
understand this?
Also (since I know it will come), is there any good way to calculate how much 
DASD sortwork would be used? I know this depends on what is in memory at the 
time, but want to get a better handle on how Sort determines what it needs.


I would suggest that you use DFSORT's Dynamic Allocation as it will allocate 
the required workspace optimally rather than programmers calculating it.  The 
reason is you don't want to change the allocation every time there is an 
increase/decrease in the number of records to be sorted.

Having said that, here is a general formula that you want to use.

The amount of sortwk space required depends on the size of the file. It usually 
ranges from 1.3X to 1.8X of the size of the file to be sorted depending on the 
sorting path that DFSORT chose.

Filesize = Number of records * Avg length of the record ( for Fixed length 
RECFM=F or FB , it is the LRECL value, or RECFM=V or RECFM=VB is the average 
length of the record)

However, that range is applicable ONLY when the entire file is being sorted 
using Disk workspace. DFSORT has the capability of using memory (real and 
auxiliary storage) and if it runs out of it, it will then use disk workspace.


Thanks,
Kolusu
--

This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...

SORTWK space usage

2023-07-03 Thread Billy Ashton

Hello DFSort experts!

Where can I find the explanation of SORTWK space usage? I seem to recall 
reading that only the primary space is used on a SORTWK, so if I have

//SORTWK  DD SPACE=(CYL,(5000,2000))...
I will only get the primary space of 5000 cylinders, and the other 
14x2000 cylinders is never used. Is that right?


Is there a written explanation I can forward to the programmers so they 
understand this?


Also (since I know it will come), is there any good way to calculate how 
much DASD sortwork would be used? I know this depends on what is in 
memory at the time, but want to get a better handle on how Sort 
determines what it needs.


Thanks, everyone! This might be a good discussion!
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Are there samples of COBOL methods or classes?

2023-05-26 Thread Billy Ashton
Hi, While working on the earlier problems I had, I ran into the concepts 
of COBOL Methods and Classes, and understand they can be used for Java 
in addition to regular COBOL programs. The documentation does not 
explain the "why" behind these or the "how" and "what", so I wonder if 
anyone has any business case explanations of what these are or samples 
of some COBOL-only implementations so I can see why I might want to use 
them and how to do it?


I like to keep my COBOL current and if there is a way to use COBOL more 
effectively, I hope you can help me understand this!


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: COBOL Field Length problem

2023-05-24 Thread Billy Ashton

Just for fun, I tried another quick 6.3 test using the Repository setup.

Here are the nested function results:
Function Length(Function Trim(indexed field))  - Worked fine
Function Length( Trim(indexed field))  - Worked fine
 Length(Function Trim(indexed field))  - Failed - only used 
indexedfield(1)
 Length( Trim(indexed field))  - Failed - only used 
indexedfield(1)


So it seems the problem seems to be with the Length function, when 
called using the Repository Intrinsic functions description.


Got to get this programmer back in the saddle, so that's all I have time 
for here. Thanks again!


Billy

-- Original Message --

From "Billy Ashton" 

To "IBM Mainframe Discussion List" 
Date 5/24/2023 1:24:05 PM
Subject Re[2]: COBOL Field Length problem


Michael, you gave me something interesting to try. It seems the Configuration 
Section use of the Repository for Intrinsic functions is new with 6.3, as it 
did not compile under 6.2.

So...I removed that paragraph and added the explicit references to the FUNCTION 
keyword and got the same results that you did - everything worked fine. I then 
moved up to 6.3 with that working code, and guess what? It worked there, too.

So it seems that there is some problem with how that Repository Intrinsic 
function thing is not working, and I haven't the time to chase it down right 
now. I will just use explicit FUNCTION calls to get past the problem.

Thanks for pointing me the right direction through the fog!
Billy Ashton


-- Original Message --
From "Schmitt, Michael" 
To IBM-MAIN@listserv.ua.edu
Date 5/24/2023 1:03:18 PM
Subject Re: COBOL Field Length problem


I don't have 6.3, but I tried your program on 6.2 after adding FUNCTION before 
the TRIM and LENGTH functions.

The results seem to be as expected.  For example:

0005  +1+2+3+4+5+6+
   Original: >  COMND VALUE3 21<
   Trim: >  COMND VALUE3 21<
   Lengths:   I1(0021) I2(0021) Hold(0021) By name(0021)

0006  +1+2+3+4+5+6+
   Original: >COMND VALUE4 15  <
   Trim: >COMND VALUE4 15<
   Lengths:   I1(0015) I2(0015) Hold(0015) By name(0015)


I'd suggest reducing the test case down to the MINIMUM amount of code that 
demonstrates the issue.

Then look at the p-map to see what the compiler is doing.

-Original Message-----
From: IBM Mainframe Discussion List  On Behalf Of 
Billy Ashton
Sent: Wednesday, May 24, 2023 11:25 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: COBOL Field Length problem

Hey everyone - back again with another COBOL problem. Your help with my
COPY REPLACING question was great and the programmer is quite happy with
that solution. Now, he came to me with what looks like a problem, and I
am not sure if we are doing something wrong, or if it is a bug in our
Enterprise COBOL for z/OS  6.3.0 P220314 system.

In a nutshell, when using the LENGTH(TRIM(some-field)) function against
any elementary data item, it works great. However, when using it against
an item within an occurs (think data table), every reference beyond 1
gets handled as item #1. For example, if I have a group with 8 items,
the length of item #1 is right, but the length of item(2) through
item(8) is always the value of item(1). The table index can be display
numeric, packed, or binary, and the results are the same, so I don't
think it is a problem with the index, but somehow the reference is not
resolved correctly within the nested function.

Maybe a short program would be helpful. I hope a 60 line program is ok!
Let me know what you think is happening.

IDENTIFICATION DIVISION.
PROGRAM-ID. TSTPG002.
ENVIRONMENT DIVISION.
Configuration   Section.
Repository.
Function  All  Intrinsic.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS.
05  INL-NO  PIC S9(08)  VALUE ZERO BINARY.
05  INL-I1  PIC S9(08)  VALUE ZERO BINARY.
05  INL-I2  PIC S9(08)  VALUE ZERO BINARY.
05  INL-H   PIC S9(08)  VALUE ZERO BINARY.
05  IN-GRP-X.
10  L1 PIC X(65) VALUE '* THIS_IS_A_COMMENT Here .28'.
10  L2 PIC X(65) VALUE SPACE.
10  L3 PIC X(65) VALUE 'COMND   VALUE1 17'.
10  L4 PIC X(65) VALUE 'COMND   VALUE2 21'.
10  L5 PIC X(65) VALUE '  COMND VALUE3 21'.
10  L6 PIC X(65) VALUE 'COMND VALUE4 15  '.
10  L7 PIC X(65) VALUE ' COMND  VAL* 27 '.
10  L8 PIC X(65) VALUE '* THIS_IS_A_COMMENT... 29'.
05   REDEFINES IN-GRP-X  OCCURS 8.
10  IN-LINE PIC  X(65).
05  Hold

Re: COBOL Field Length problem

2023-05-24 Thread Billy Ashton
Michael, you gave me something interesting to try. It seems the 
Configuration Section use of the Repository for Intrinsic functions is 
new with 6.3, as it did not compile under 6.2.


So...I removed that paragraph and added the explicit references to the 
FUNCTION keyword and got the same results that you did - everything 
worked fine. I then moved up to 6.3 with that working code, and guess 
what? It worked there, too.


So it seems that there is some problem with how that Repository 
Intrinsic function thing is not working, and I haven't the time to chase 
it down right now. I will just use explicit FUNCTION calls to get past 
the problem.


Thanks for pointing me the right direction through the fog!
Billy Ashton


-- Original Message --

From "Schmitt, Michael" 

To IBM-MAIN@listserv.ua.edu
Date 5/24/2023 1:03:18 PM
Subject Re: COBOL Field Length problem


I don't have 6.3, but I tried your program on 6.2 after adding FUNCTION before 
the TRIM and LENGTH functions.

The results seem to be as expected.  For example:

0005  +1+2+3+4+5+6+
   Original: >  COMND VALUE3 21<
   Trim: >  COMND VALUE3 21<
   Lengths:   I1(0021) I2(0021) Hold(0021) By name(0021)

0006  +1+2+3+4+5+6+
   Original: >COMND VALUE4 15  <
   Trim: >COMND VALUE4 15<
   Lengths:   I1(0015) I2(0015) Hold(0015) By name(0015)


I'd suggest reducing the test case down to the MINIMUM amount of code that 
demonstrates the issue.

Then look at the p-map to see what the compiler is doing.

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Billy Ashton
Sent: Wednesday, May 24, 2023 11:25 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: COBOL Field Length problem

Hey everyone - back again with another COBOL problem. Your help with my
COPY REPLACING question was great and the programmer is quite happy with
that solution. Now, he came to me with what looks like a problem, and I
am not sure if we are doing something wrong, or if it is a bug in our
Enterprise COBOL for z/OS  6.3.0 P220314 system.

In a nutshell, when using the LENGTH(TRIM(some-field)) function against
any elementary data item, it works great. However, when using it against
an item within an occurs (think data table), every reference beyond 1
gets handled as item #1. For example, if I have a group with 8 items,
the length of item #1 is right, but the length of item(2) through
item(8) is always the value of item(1). The table index can be display
numeric, packed, or binary, and the results are the same, so I don't
think it is a problem with the index, but somehow the reference is not
resolved correctly within the nested function.

Maybe a short program would be helpful. I hope a 60 line program is ok!
Let me know what you think is happening.

IDENTIFICATION DIVISION.
PROGRAM-ID. TSTPG002.
ENVIRONMENT DIVISION.
Configuration   Section.
Repository.
Function  All  Intrinsic.
DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS.
05  INL-NO  PIC S9(08)  VALUE ZERO BINARY.
05  INL-I1  PIC S9(08)  VALUE ZERO BINARY.
05  INL-I2  PIC S9(08)  VALUE ZERO BINARY.
05  INL-H   PIC S9(08)  VALUE ZERO BINARY.
05  IN-GRP-X.
10  L1 PIC X(65) VALUE '* THIS_IS_A_COMMENT Here .28'.
10  L2 PIC X(65) VALUE SPACE.
10  L3 PIC X(65) VALUE 'COMND   VALUE1 17'.
10  L4 PIC X(65) VALUE 'COMND   VALUE2 21'.
10  L5 PIC X(65) VALUE '  COMND VALUE3 21'.
10  L6 PIC X(65) VALUE 'COMND VALUE4 15  '.
10  L7 PIC X(65) VALUE ' COMND  VAL* 27 '.
10  L8 PIC X(65) VALUE '* THIS_IS_A_COMMENT... 29'.
05   REDEFINES IN-GRP-X  OCCURS 8.
10  IN-LINE PIC  X(65).
05  Hold-L  PIC  X(65).
05  I1  PIC S9(08)  VALUE ZERO Binary.
05  I2  PIC S9(08)  VALUE ZERO.

PROCEDURE DIVISION.
PERFORM VARYING I1 FROM 1 BY 1 UNTIL I1 GREATER 8
Move I1 to I2
Move In-line(I1) to Hold-L
Display I1 '  '
'+1+2+3+4'
'+5+6+'
Display '   Original: >' IN-LINE(I1) '<'
Display '   Trim: >' Trim(In-line(I1) Trailing) '<'
Compute INL-I1 = Length(Trim(In-line(I1) Trailing))
Compute INL-I2 = Length(Trim(In-line(I2) Trailing))
Compute INL-H  = Length(Trim(Hold-L  Trailing))
Evalu

COBOL Field Length problem

2023-05-24 Thread Billy Ashton
Hey everyone - back again with another COBOL problem. Your help with my 
COPY REPLACING question was great and the programmer is quite happy with 
that solution. Now, he came to me with what looks like a problem, and I 
am not sure if we are doing something wrong, or if it is a bug in our 
Enterprise COBOL for z/OS  6.3.0 P220314 system.


In a nutshell, when using the LENGTH(TRIM(some-field)) function against 
any elementary data item, it works great. However, when using it against 
an item within an occurs (think data table), every reference beyond 1 
gets handled as item #1. For example, if I have a group with 8 items, 
the length of item #1 is right, but the length of item(2) through 
item(8) is always the value of item(1). The table index can be display 
numeric, packed, or binary, and the results are the same, so I don't 
think it is a problem with the index, but somehow the reference is not 
resolved correctly within the nested function.


Maybe a short program would be helpful. I hope a 60 line program is ok! 
Let me know what you think is happening.


   IDENTIFICATION DIVISION.
   PROGRAM-ID. TSTPG002.
   ENVIRONMENT DIVISION.
   Configuration   Section.
   Repository.
   Function  All  Intrinsic.
   DATA DIVISION.
   WORKING-STORAGE SECTION.
   01  WS.
   05  INL-NO  PIC S9(08)  VALUE ZERO BINARY.
   05  INL-I1  PIC S9(08)  VALUE ZERO BINARY.
   05  INL-I2  PIC S9(08)  VALUE ZERO BINARY.
   05  INL-H   PIC S9(08)  VALUE ZERO BINARY.
   05  IN-GRP-X.
   10  L1 PIC X(65) VALUE '* THIS_IS_A_COMMENT Here .28'.
   10  L2 PIC X(65) VALUE SPACE.
   10  L3 PIC X(65) VALUE 'COMND   VALUE1 17'.
   10  L4 PIC X(65) VALUE 'COMND   VALUE2 21'.
   10  L5 PIC X(65) VALUE '  COMND VALUE3 21'.
   10  L6 PIC X(65) VALUE 'COMND VALUE4 15  '.
   10  L7 PIC X(65) VALUE ' COMND  VAL* 27 '.
   10  L8 PIC X(65) VALUE '* THIS_IS_A_COMMENT... 29'.
   05   REDEFINES IN-GRP-X  OCCURS 8.
   10  IN-LINE PIC  X(65).
   05  Hold-L  PIC  X(65).
   05  I1  PIC S9(08)  VALUE ZERO Binary.
   05  I2  PIC S9(08)  VALUE ZERO.

   PROCEDURE DIVISION.
   PERFORM VARYING I1 FROM 1 BY 1 UNTIL I1 GREATER 8
   Move I1 to I2
   Move In-line(I1) to Hold-L
   Display I1 '  '
   '+1+2+3+4'
   '+5+6+'
   Display '   Original: >' IN-LINE(I1) '<'
   Display '   Trim: >' Trim(In-line(I1) Trailing) '<'
   Compute INL-I1 = Length(Trim(In-line(I1) Trailing))
   Compute INL-I2 = Length(Trim(In-line(I2) Trailing))
   Compute INL-H  = Length(Trim(Hold-L  Trailing))
   Evaluate TRUE
 When I1 = 1 Compute INL-NO = Length(Trim(L1 Trailing))
 When I1 = 2 Compute INL-NO = Length(Trim(L2 Trailing))
 When I1 = 3 Compute INL-NO = Length(Trim(L3 Trailing))
 When I1 = 4 Compute INL-NO = Length(Trim(L4 Trailing))
 When I1 = 5 Compute INL-NO = Length(Trim(L5 Trailing))
 When I1 = 6 Compute INL-NO = Length(Trim(L6 Trailing))
 When I1 = 7 Compute INL-NO = Length(Trim(L7 Trailing))
 When Other  Compute INL-NO = Length(Trim(L8 Trailing))
   End-Evaluate
   Display '   Lengths:'
   '   I1(' INL-I1 ')'
   ' I2(' INL-I2 ')'
   ' Hold(' INL-H ')'
   ' By name(' INL-NO ')'
   Display ' '
   END-PERFORM
   GOBACK.

Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using COBOL COPY/REPLACING in display literals?

2023-05-23 Thread Billy Ashton
I was able to use the String command successfully with the replacement. 
Thanks for the direction, Michael!


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Schmitt, Michael" 

To IBM-MAIN@listserv.ua.edu
Date 5/22/2023 3:49:29 PM
Subject Re: Using COBOL COPY/REPLACING in display literals?


Copy FRED Replacing ==:CC:== By ==COMND==
':CC:' By 'COMND'

Move  SpacesTo  w-in-:CC:-grp
Move  '*'   To  w-in-:CC:(1)
Move  w-set-max To  w-in-:CC:-ct
String 'Global Default Set for '
   ':CC'
   into w-sysin-msg



-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Farley, Peter
Sent: Monday, May 22, 2023 2:43 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Using COBOL COPY/REPLACING in display literals?

Billy,

I do not believe it is possible to use COPY REPLACING to replace text inside a 
literal.  I haven't the time ATM to research the relevant manual citation, but 
I believe the answer is that REPLACING is a COBOL WORD-based search-and-replace 
rather than a simple string search-and-replace, and a literal is a single 
COBOL-word token.

With sufficient quoting you may be able to replace an entire (probably only 
relatively short in practical terms) literal string, but I am not even sure 
that can be done.

I'll look up the manual reference (if there is one, and there may not be) later 
if I can find the time.  Or maybe Tom Ross can pick up on your question and 
provide a more complete answer than mine.

Another solution could be a string-based pre-processing step before a compile 
that does those literal replacements for you instead of asking the compiler to 
do it, but that has its own complexities (like wrapping literals with 
replacements that expand the literal beyond column 72).

Peter

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Billy Ashton
Sent: Monday, May 22, 2023 3:21 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Using COBOL COPY/REPLACING in display literals?

Hi guys and gals, I have an odd one that someone asked and I could not come up 
with an answer.

In a COBOL program, using a COPY REPLACING directive, I can see the replacement 
of COBOL procedure statements fine, but when the tag is inside of a literal 
used for a DISPLAY, it is not replaced.

Is this something that can't be done, or is there some special syntax for it?

For example, my copy member (FRED) has this (plus a lot more):
If sysin-dflt
Move  SpacesTo  w-in-:CC:-grp
Move  '*'   To  w-in-:CC:(1)
Move  w-set-max To  w-in-:CC:-ct
Move  'Global Default set for :CC:' To  w-sysin-msg Else ...

So if I say
Copy FRED Replacing ==:CC:== By ==COMND==

I get this:
If sysin-dflt
Move  SpacesTo  w-in-COMND-grp
Move  '*'   To  w-in-COMND(1)
Move  w-set-max To  w-in-COMND-ct
Move  'Global Default set for :CC:' To  w-sysin-msg Else ...

I have looked through the manuals and done my Google diligence, but saw nothing 
about replacements (or lack of) in Procedure Division literals.

Does anyone have a good answer here? Can my programmer do this or not, and if 
so, how?

Thank you and best regards,
Billy Ashton
--


This message and any attachments are intended only for the use of the addressee 
and may contain information that is privileged and confidential. If the reader 
of the message is not the intended recipient or an authorized representative of 
the intended recipient, you are hereby notified that any dissemination of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately by e-mail and delete the message and any 
attachments from your system.


--
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


Using COBOL COPY/REPLACING in display literals?

2023-05-22 Thread Billy Ashton
Hi guys and gals, I have an odd one that someone asked and I could not 
come up with an answer.


In a COBOL program, using a COPY REPLACING directive, I can see the 
replacement of COBOL procedure statements fine, but when the tag is 
inside of a literal used for a DISPLAY, it is not replaced.


Is this something that can't be done, or is there some special syntax 
for it?


For example, my copy member (FRED) has this (plus a lot more):
If sysin-dflt
   Move  SpacesTo  w-in-:CC:-grp
   Move  '*'   To  w-in-:CC:(1)
   Move  w-set-max To  w-in-:CC:-ct
   Move  'Global Default set for :CC:' To  w-sysin-msg
Else
...

So if I say
Copy FRED Replacing ==:CC:== By ==COMND==

I get this:
If sysin-dflt
   Move  SpacesTo  w-in-COMND-grp
   Move  '*'   To  w-in-COMND(1)
   Move  w-set-max To  w-in-COMND-ct
   Move  'Global Default set for :CC:' To  w-sysin-msg
Else
...

I have looked through the manuals and done my Google diligence, but saw 
nothing about replacements (or lack of) in Procedure Division literals.


Does anyone have a good answer here? Can my programmer do this or not, 
and if so, how?


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Edit commands without a macro?

2023-04-21 Thread Billy Ashton
Hey Rexxers, I suspect that this is simple, but my old, feeble brain 
can't find the answer.


Is it possible to use a Rexx program to edit a file (maybe a PDS member, 
maybe a flat file, shouldn't care) and to issue ISREDIT commands there, 
but not by using a separate macro? IOW, I want to have a single program 
that I can pass a file as a parm, and then this Rexx program edits the 
file, does some commands to find things and maybe change things, saves 
the file, displays some other stuff, and then ends.


Is there a way to do this Edit stuff without a separate macro?

Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: DFSORT to count and sum subsets of data

2023-03-28 Thread Billy Ashton
Kolusu, you are great and gracious! Thank you for this - it works as 
expected. I will dress up the file a bit with a good header, date and 
timestamp, and be able to turn it over to my user tomorrow. I greatly 
appreciate the teaching through this, too.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 3/28/2023 4:00:27 PM
Subject Re: DFSORT to count and sum subsets of data


 Wow, I did not want this to be so difficult...but given a choice, I would like 
the second approach


Billy,

It isn't that difficult; we just need to adjust the way we are summing the 
results. Since you did not want the department row, we just need to switch to 
using SUM instead of Reporting features.  Since we are using SUM, we need to 
handle the overflow of data, so when summing the 9 byte items, we will pad 3 
zeroes and sum it as 12 byte so that we account for overflow of the summation.

As for the header, generating a symbol by reading the 2nd record is the 
simplest and easiest way.

//**
//* The filename is on the 2nd record of the file. use SORT*
//* to read just that record and generate a symbol of the  *
//* filename.  *
//**
//GETFNAME EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD DISP=(OLD,PASS),DSN=&
//SORTOUT  DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,1),RLSE)
//SYSINDD *
  OPTION COPY,SKIPREC=1,STOPAFT=1
  OUTREC BUILD=(02,44,JFY=(SHIFT=LEFT,
LEAD=C'FILENAME,C''',
   TRAIL=C,
  LENGTH=80))
/*
//**
//* Generate summary report of "D" records *
//**
//GENREP   EXEC PGM=SORT,COND=(0,LT)
//SYSOUT   DD SYSOUT=*
//SYMNAMES DD DISP=(OLD,DELETE),DSN=&
//SYMNOUT  DD SYSOUT=*
//SORTIN   DD DISP=(OLD,PASS),DSN=&
//SORTOUT  DD SYSOUT=*
//SYSINDD *
  INCLUDE COND=(019,03,FS,EQ,NUM,AND,  # Field is numeric and
022,01,CH,EQ,C'D') # Type = D

  INREC BUILD=(001,03, # Department
   3C'0',  # pad 3 zeros
   102,09,UFF,M11,LENGTH=9,# item qty
   C'0001')# init counter

  SORT FIELDS=(01,03,CH,A) # Department
   SUM FIELDS=(04,12,ZD,   # item
   16,08,ZD)   # count

  OUTFIL REMOVECC,
 BUILD=(C' DEPARTMENT  ',
01,03,
16,08,ZD,M10,LENGTH=8,
C' ARTICLES, TOTAL ITEMS: ',
04,12,ZD,M10,LENGTH=12),
  HEADER1=(FILENAME),
  TRAILER1=('*** TOTAL *** : ',
TOT=(16,08,ZD,M10,LENGTH=8),
' ARTICLES, TOTAL ITEMS: ',
TOT=(04,12,ZD,M10,LENGTH=12))
/*



 but for the sake of learning (if you don't mind), I would welcome the first 
option, also, to make my training more complete!


Just run your existing control cards without any D records and see the output.  
 (You will not have the filename as header, but you will have 1 row for 
department and total row)

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: DFSORT to count and sum subsets of data

2023-03-28 Thread Billy Ashton
Wow, I did not want this to be so difficult...but given a choice, I 
would like the second approach, as it is cleaner, but for the sake of 
learning (if you don't mind), I would welcome the first option, also, to 
make my training more complete!


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 3/28/2023 3:14:21 PM
Subject Re: DFSORT to count and sum subsets of data


 Kolusu, this works well when I have records to work with, but if I have no "D" 
records (sorry for the fat finger earlier...) to count or sum, I would still like to 
produce a summary. There will be no DEPARTMENT rows, but I would like to have the file 
name Header1, and a TOTAL line with the 0 Articles and 0 Items.


Billy,

There are different ways of getting results.  When the input does NOT have a 
"D" record, it will still generate the department row as you are using trailer3 
and it will have ZERO count and ZERO total.

Something like this

PROD.A31XAD.IDARTA00
 DEPARTMENT0 ARTICLES, TOTAL ITEMS:0
*** TOTAL *** :0 ARTICLES, TOTAL ITEMS:0


But if you insist on NOT having the Department record, then we need to do it 
slightly different.

PROD.A31XAD.IDARTA00
*** TOTAL *** :0 ARTICLES, TOTAL ITEMS:0


What is the preferred output ?  the First one or the second one?

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: DFSORT to count and sum subsets of data

2023-03-28 Thread Billy Ashton
Kolusu, this works well when I have records to work with, but if I have 
no "D" records (sorry for the fat finger earlier...) to count or sum, I 
would still like to produce a summary. There will be no DEPARTMENT rows, 
but I would like to have the file name Header1, and a TOTAL line with 
the 0 Articles and 0 Items.


Is this possible?

Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 3/28/2023 12:09:14 PM
Subject Re: DFSORT to count and sum subsets of data


 Kolusu, this works great, and the end user is happy with the detail.  Now, he 
wants one additional tweak. The top of the file (within the first two rows) has 
this:


Billy,

If your intention is to pick the 2nd or 3rd record, all you need to do is add 
the sequence number to the records and then use that in WHEN=GROUP to push it 
all records.  The numeric validation and D record validation can also be done 
on OUTFIL.

Use the control cards.(This uses the info from the 2nd record)

//SYSINDD *
  INREC IFTHEN=(WHEN=INIT,
 OVERLAY=(134:SEQNUM,8,ZD)),
IFTHEN=(WHEN=GROUP,BEGIN=(134,8,ZD,EQ,2),
PUSH=(143:02,44))

   SORT FIELDS=(01,03,CH,A)

  OUTFIL REMOVECC,NODETAIL,
  INCLUDE=(19,03,FS,EQ,NUM,AND,
   22,01,CH,EQ,C'D'),
  HEADER1=(143,044),
  SECTIONS=(01,03,
  TRAILER3=(' DEPARTMENT  ',
01,03,
COUNT=(M10,LENGTH=8),
' ARTICLES, TOTAL ITEMS: ',
TOT=(102,09,UFF,M10,LENGTH=12))),
  TRAILER1=('*** TOTAL *** : ',
COUNT=(M10,LENGTH=8),
' ARTICLES, TOTAL ITEMS: ',
TOT=(102,09,UFF,M10,LENGTH=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


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: DFSORT to count and sum subsets of data

2023-03-28 Thread Billy Ashton
Kolusu, this works great, and the end user is happy with the detail. 
Now, he wants one additional tweak. The top of the file (within the 
first two rows) has this:


PROD.A31XAD.IDARTA00  ARTICLE LISTING BY 
DEPARTMENT


(This starts in Col 2)   (This 
starts in Col 56)


I managed to include this file name by pushing it onto the unneeded area 
in every row like this:

INREC IFTHEN=(WHEN=GROUP,BEGIN=(56,15,CH,EQ,C'ARTICLE LISTING'),
   PUSH=(30:2,44))

and then I could include it in a Header1 clause. However, if there are 
no "L" records in the file, there is no file name in col 30 to use. Is 
there some other way I can capture this filename from the first or 
second row, and then use it in my OUTFIL Header1 clause even if there 
are no detail records to Count or Tot?


Billy


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 3/27/2023 12:29:22 PM
Subject Re: DFSORT to count and sum subsets of data


 What I want to do is produce a single line for each Department (cols 1-3), that tells me 
the number of articles (Count of all rows with a numeric value in cols 19-21, and an 
Indicator in col 22 of "D"), and a sum of the Counter (cols 102-110, pic 
9), with a grand total. It will look like this:


Billy,

It is quite simple.  Use the following control cards.

//SYSINDD *
  INCLUDE COND=(22,01,CH,EQ,C'D')

   SORT FIELDS=(01,03,CH,A)

  OUTFIL REMOVECC,NODETAIL,
  SECTIONS=(01,03,
  TRAILER3=(' DEPARTMENT  ',
01,03,
COUNT=(M10,LENGTH=8),
' ARTICLES, TOTAL ITEMS: ',
TOT=(102,09,UFF,M10,LENGTH=12))),
  TRAILER1=('*** TOTAL *** : ',
COUNT=(M10,LENGTH=8),
' ARTICLES, TOTAL ITEMS: ',
TOT=(102,09,UFF,M10,LENGTH=12))
/*


If you do need to validate the contents of 19-21 for numeric , then you just 
need to use the following control cards.  Just add an IFTHEN statement for 
numeric check.

//SYSINDD *
  INCLUDE COND=(22,01,CH,EQ,C'D')

  INREC IFTHEN=(WHEN=(19,3,FS,EQ,NUM),
   OVERLAY=(130:C'1'))

   SORT FIELDS=(01,03,CH,A)

  OUTFIL REMOVECC,NODETAIL,
  SECTIONS=(01,03,
  TRAILER3=(' DEPARTMENT  ',
01,03,
TOT=(130,01,ZD,M10,LENGTH=8),
' ARTICLES, TOTAL ITEMS: ',
TOT=(102,09,UFF,M10,LENGTH=12))),
  TRAILER1=('*** TOTAL *** : ',
TOT=(130,01,ZD,M10,LENGTH=8),
' ARTICLES, TOTAL ITEMS: ',
TOT=(102,09,UFF,M10,LENGTH=12))
/*



If you intend to have the spaces trimmed in the output, let me know and I will 
suggest an alternative.


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


DFSORT to count and sum subsets of data

2023-03-27 Thread Billy Ashton

Hey everyone - happy Monday!

I am trying to come up with a single SORT step to give me counts and a 
sum of a field on subsets of data, and using control breaks. Here is a 
sample of my input with lines shortened for the email:


A01DDATE  001D<< Cols 23 to 101 MISCELLANEOUS DATA >>   10   
 2
A01DDATE  001W<< Cols 23 to 101 MISCELLANEOUS DATA >>   93   
 2
A01MEXTRA 047D<< Cols 23 to 101 MISCELLANEOUS DATA >>3   
 2
A01MEXTRA 022P<< Cols 23 to 101 MISCELLANEOUS DATA >>5   
 2
A01MEXTRA 019R<< Cols 23 to 101 MISCELLANEOUS DATA >>   35   
 2
A02QTRAN  103D<< Cols 23 to 101 MISCELLANEOUS DATA >>  802   
 2
A02QTRAN  014R<< Cols 23 to 101 MISCELLANEOUS DATA >>9   
 2
A02QTRAN  012T<< Cols 23 to 101 MISCELLANEOUS DATA >>   41   
 2
A02QTRAN  083V<< Cols 23 to 101 MISCELLANEOUS DATA >>   12   
 2
A02ZHORIZ 023D<< Cols 23 to 101 MISCELLANEOUS DATA >>  456   
 2
A02ZHORIZ 011P<< Cols 23 to 101 MISCELLANEOUS DATA >>   81   
 2
A02ZVERTICAL  011D<< Cols 23 to 101 MISCELLANEOUS DATA >>  773   
 2
A02ZVERTICAL  003M<< Cols 23 to 101 MISCELLANEOUS DATA >>1   
 2


This is the layout:
  1 - len  3, Dept
 19 - len  3, numeric
 22 - len  1, Indicator
 23 - len 77, miscellaneous
102 - len  9, Counter
111 - len 19, miscellaneous

What I want to do is produce a single line for each Department (cols 
1-3), that tells me the number of articles (Count of all rows with a 
numeric value in cols 19-21, and an Indicator in col 22 of "D"), and a 
sum of the Counter (cols 102-110, pic 9), with a grand total. It 
will look like this:


Department A01:   2 articles, total items:  13  (# = 
suppressed zeros)

Department A02: ##3 articles, total items: ###2031
*** TOTAL *** : ##5 articles, total items: ###2044

I can get the count to work through a simple sum, but I can't get the 
number of articles to break on the Department code (there could be 
1-to-n departments in each file).


Can someone help me with what should be fairly simple here?

Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: location of JCL for started task

2023-03-18 Thread Billy Ashton
Bill, does this help at all: 
https://www.ibm.com/docs/en/zos/2.2.0?topic=language-setting-up-started-tasks-master-jcl


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Bill Giannelli" 

To IBM-MAIN@listserv.ua.edu
Date 3/18/2023 1:42:45 PM
Subject Re: location of JCL for started task


hi Steve,
We have IOF not SDSF.
But I do not see anywhere where it indicates the pds where the JCL came from 
for that proc.
thanks
Bill
On Sat, 18 Mar 2023 12:30:25 -0500, Steve Beaver  wrote:


Go into the running STC in SDSF and in the section that gives the stats it will 
be first line

Sent from my iPhone

No one said I could type with one thumb


 On Mar 18, 2023, at 12:26, Bill Giannelli  wrote:

 we have a PDS for job cards for started tasks, which reference our system 
proclib.
 I have a started task that is executing, yet I can not find the actual JCL 
(Jobcard, etc). I can find the proc.
 How can I find where the JCL is being read from?
 thanks
 Bill

 --
 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: JCL Procedure help

2023-02-08 Thread Billy Ashton
I agree with Steve's approach...since you want the job to be on a 
certain system, le the check be in the job. This keeps the proc 
concentrated on the work it needs and less cluttered.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Steve Smith" 

To IBM-MAIN@listserv.ua.edu
Date 2/8/2023 9:17:22 AM
Subject Re: JCL Procedure help


You can probably just invoke the original program in your REXX (ADDRESS
LINKMVS, etc.) when it's on the correct system.  Then your proc is still
one step.

sas

On Wed, Feb 8, 2023 at 8:56 AM Willy Jensen 
wrote:


 Since you are running a REXX anyway, that REXX could copy DDname SYSIN to
 a temporary dataset, which is then used for SYSIN in the 2nd step, A simple
 REPRO INFILE(SYSIN) OUTFILE(TEMP) should do it.




--
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: JCL // SET SYMBOL indirection

2023-01-31 Thread Billy Ashton

Unfortunately, you can not have "nested" symbols...just one and done.

Thank you and best regards,
Billy Ashton


-- Original Message --

From "Robert Garrett" 

To IBM-MAIN@listserv.ua.edu
Date 1/31/2023 7:07:31 PM
Subject JCL // SET SYMBOL indirection


I love symbols.

I've been trying to figure out if a level of indirection is possible.
Here's an example that both doesn't work and isn't' even syntactically correct, 
but hopefully will serve to illustrate what I'm trying to do:

//SYM1 SET SYM1=VALUE1
//SYM2 SET SYM2=VALUE2

//TARGET   SET TARGET=SYM1

//RESULT   SET RESULT=&   (and end up with  being set to VALUE1 
and not SYM1)

I know it'll be tempting to ask "why?" but trust me, I have a good reason.

Thanks,
Rob

--
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: DFSORT maximum input records

2023-01-12 Thread Billy Ashton
I have run into large files with DFSORT, and when I asked them they told 
me that there are hard limits:

* EQUALS in effect - 4 294 967 295 records
* VLSHRT in effect - 2 147 483 647 records
* Blockset technique not selected - 2 147 483 647 records

I wonder if you could do something in your process to either segment the 
sorts into two pieces based on the high order part of the sort key, or 
if you could split, sort, and merge files outside of your program. It 
sounds to me that it is a special program that has to touch 4.3billion 
records in its run.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Charles Hardee" 

To IBM-MAIN@listserv.ua.edu
Date 1/12/2023 11:42:51 AM
Subject DFSORT maximum input records


Hello Listers,

I've searched the IBM-MAIN archives and found nothing to help me so I
thought I'd better ask the question.

I am trying to sort roughly 4295217295, records using DFSORT.
DFSORT issues a message that I have exceeded the sort input record maximum.
It appears that this maximum is 4294967295.

Since this is a program calling sort internally, and does so several times,
I cannot do the "normal" thing of splitting the file down into smaller
files, sort them, then merge them back together.

Anyone have any thoughts on this?

Thanks,
Chuck

--
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: Rexx function STORAGE with weird behavior on Netview

2022-12-19 Thread Billy Ashton
Paul, the Storage command works on Hex values by default, so 
Storage(10,4) is dealing with the address x'0010'.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Paul Gorlinsky" 

To IBM-MAIN@listserv.ua.edu
Date 12/19/2022 8:52:02 AM
Subject Re: Rexx function STORAGE with weird behavior on Netview


If you are trying to get the cut the address is x10 not 10 try 16 instead of 
10… boundary issue if you use 10…

--
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: Rexx function STORAGE with weird behavior on Netview

2022-12-19 Thread Billy Ashton
Hi Jack, I would recommend that you put a Call Trace("I") statement 
before this CVT variable set statement, and also add a Say 
C2X(Storage(10,4)) statement before it, so you can see what is there. 
This piece of code would look like:


Call Trace("I")
Say C2X(Storage(10,4))
CVT= C2D(Storage(10,4))
Call Trace("O")   /* though you won't get here if it fails...*/


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Jack Zukt" 

To IBM-MAIN@listserv.ua.edu
Date 12/19/2022 8:20:10 AM
Subject Rexx function STORAGE with weird behavior on Netview


Hi,

My colleagues come to me with a weird situation for which I cannot find an
explanation.

You are probably familiar with the IPLINFO REXX. It works just fine but
there is one system on which, when invoked by NETVIEW, the

CVT  = C2d(Storage(10,4))/* point to CVT */

instruction fails by not returning a value:

IRX0044I Error running ASVTASID, line 42: Function did not return data

As I said before, it works fine on every system and when running under
NETVIEW, except on this one system.

Any ideas where to look for the reason for this behavior?
Thank you all for your help,
Regards,
Jack

--
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: How to SORT Variable records with OVERLAY

2022-12-13 Thread Billy Ashton
Hi Kolusu...I have to toss in the white flag here, as I tried a few 
different things unsuccessfully. I have attached a groomed file of the 
input (it is the output of an IDCAMS Listcat for certain sales report 
files), and below is a second file for my second part of this. Here is 
what I am trying to get:
1. From the groomed File1 - a VBA 133 file of LISTCAT data - I am trying 
to get a list of the files and their created date, sorted in order of 
division, order number, and descending document creation date.
2. Then, I am trying to match that against the second file which has the 
latest processed document for each order to show two different reports:
A. Any document that has not been processed for an order (1 to n records 
each), and

B. The most recent document that has not been processed (1 record only)

Here is my SORT for #1, which works great to copy, but does not work to 
sort:

//SYSINDD *
  OPTION VLSCMP,VLSHRT
  SORT FIELDS=COPY
* SORT FIELDS=(116,08,CH,A,124,03,CH,A,135,7,CH,D)
*
  INCLUDE COND=(06,07,CH,EQ,C'NONVSAM',OR,
42,10,CH,EQ,C'CREATION--')
*
  INREC  IFOUTLEN=150,IFTHEN=(WHEN=GROUP,
BEGIN=(06,07,CH,EQ,C'NONVSAM'),
 PUSH=(69:22,44)),
 IFTHEN=(WHEN=(42,10,CH,EQ,C'CREATION--'),
  PARSE=(%=(ENDBEFR=C'.',ABSPOS=65),
   %=(ENDBEFR=C'.'),
   %01=(STARTAFT=C'SLDIV',Division
ENDBEFR=C'.',FIXLEN=3),
   %02=(ENDBEFR=C'.',FIXLEN=8),   Order Num
   %03=(ENDBEFR=C'.',FIXLEN=8)),  Doc ID
  OVERLAY=(115:C'Y',
   116:%03,
   124:%01,
   127:%02,
   135:58,08,UFF,M11,LENGTH=7,
   142:135,07,Y4T,TOGREG=Y4T,
   150:X))
*
  OUTFIL VTOF,
  INCLUDE=(115,01,CH,EQ,C'Y'),
  BUILD=(124,03,X,  # Division
 116,08,X,  # Doc ID
 127,08,X,  # Order Num
 19X,   # Filler
 142,08,X,  # Cre Date Greg
 135,07,X)  # Cre Date Jul
/*

For #2, I am trying to create report #1 with a title "Current Order 
Documents/By Division and Document Type". There are no control breaks, 
just a list, showing any items from #1, above, in Ascending Division and 
Order, and Descending Document Createdate.  Here is a sample:

Div OrderDocument  Cre Date
120 $3B37368 DORDP001 20201204
120 @7415755 DPINS003 20201127
120 @7415755 DORDP001 20201129
120 @7415755 DPAYI022 20201204
120 @7415755 DXCHP3R4 20201220
136 $G855813 DORDC244 20210505
242 @Q405827 DPINS003 20200808
242 @Q405827 DPINB022 20200808
242 @Q405827 DORDPP22 20200812

Report #2 is called "Orders With All Documents Current" and is a 
reflection of orders with the most recent (file2) and latest document 
(file1) being the same. There is one record per order.

Div OrderDocument
120 $3B37368 DORDP001
(120 @7415755 is not here bc file2 has DPAYI022, and file1 has a later 
DXCHP3R40 document)

136 $G855813 DORDC244
242 @Q405827 DREFC001

File1 is attached (the LISTCAT output)
File2 a FB 40 file with
120 $3B37368 DORDP001
120 @7415755 DPAYI022
136 $G855813 DORDC244
242 @Q405827 DREFC001
251 DM405862 DORDPP22
251 DM415866 DORDC244
251 DM423871 DINVP002
281 RB415889 DSPL1PR4
281 TA720006 DORDP042
281 TA916078 DPINM111
281 VJ124311 DRET1PR4
288 @@366084 DINVC011
288 @N416086 DRETW023
288 MM737722 DCRMV002

Kolusu, I appreciate whatever guidance you can give me here. I am sure I 
could write a program to do this two-file match, but I am trying to open 
eyes to the possibility of a faster-running SORT process.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 12/12/2022 5:02:55 PM
Subject Re: How to SORT Variable records with OVERLAY


 Because my input is a VBA file (out of my control), some of the records are 
much shorter than my SORT FIELDS location.


Billy,

Ideally you can use VLSHRT for padding short records for SORTING. However, if 
you use INREC/OUTREC , it will not work.

So, if you want to use INREC editing you need to PUSH the contents right after 
RDW to retain the variable length records.  If you don't care about variable 
lengths of the output file then use IFOUTLEN= nnn  ( where nnn= max length of 
the overlay/push record).

Alternatively, if you show me the control cards I can show you the optimal way 
of achieving the results.

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.

How to SORT Variable records with OVERLAY

2022-12-12 Thread Billy Ashton
Hi all, I am taking a file and using PUSH and OVERLAY to condense 
multiple input lines into a single line. That all works fine and I even 
get the correct format output when I use OPTION COPY or SORT 
FIELDS=COPY.


However, I want to sort on my OVERLAY area fields, but I get an error 
message
ICE218A 3 117 BYTE VARIABLE RECORD IS SHORTER THAN 138 BYTE MINIMUM FOR  
FIELDS


Because my input is a VBA file (out of my control), some of the records 
are much shorter than my SORT FIELDS location.


What do I need to do to use SORT FIELDS=(...) here? Do I need to just 
overlay the unneeded columns at the beginning of the record? All my sort 
keys will be shorter than the shortest record in the file, but I 
expected that by using INCLUDE statements to only keep the long records 
I needed, I would not run into this.


My control cards say
OPTION VLSCMP
SORT FIELDS=(set1,set2, set3)
INCLUDE COND=...,OR, ...
INREC with multiple IFTHEN and PUSH and OVERLAYs
OUTFIL VTOF, INCLUDE,BUILD

There must be something simple I am missing (and there will be another 
question tomorrow if I get this fixed).


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using JCL variables with DFSORT

2022-11-03 Thread Billy Ashton

Jack, here are a few thoughts:
1. Be sure you have a line like this before you SET the variable:
//  EXPORT SYMLIST=(*)
2. On the input to the sort, specify it like this:
//SYSIN DD *,SYMBOLS=(JCLONLY,SYMOUT)
3. Add a DD statement for the output:
//SYMOUT  DD SYSOUT=*

Then, when you run it, look at the SYMOUT DD statement to see the before 
and after image of the statement. Let us know what you see for the 
symbol.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Jack Zukt" 

To IBM-MAIN@listserv.ua.edu
Date 11/3/2022 2:08:46 PM
Subject Re: Using JCL variables with DFSORT


Hi Massimo,
Thank you for your input.
I have tried that approach, that I have used on other JCL without a glitch,
but it has not worked with this particular situation and I have not been
able to figure out why.
Regards
Jack

On Thu, Nov 3, 2022, 17:42 Massimo Biancucci  wrote:


Jack,

I usually use JCLVAR this way (I think you need at least zOS 2.3 or 2.4):

// EXPORT SYMLYST=*
// SET EXTNUM=200
//ST010 EXEC PGM=SORT
//SYSIN DD *,SYMBOLS=JCLONLY
 INCLUDE COND=(INP_EXTNTS,GT,)
/*

JES should change SYSIN before seeding SORT.

Best regards.
Max


Il giorno gio 3 nov 2022 alle ore 18:23 Jack Zukt  ha
scritto:

> Hi,
> I am trying to improve a SORT by using a variable to specify a Include
> variable.
> I defined the variable by means of a
> //SET#EXTN SET EXTNUM=200
>  and then I used
> //STEP0100 EXEC PGM=SORT,PARM='JP1""'
> and
> INCLUDE=(INP_EXTNTS,GT,JP1),
>
> The problem, I think, is that the "200" is then used as C'200' and the
> INP_EXTNTS is numeric,
>
> INP_EXTNTS,*,04,BI
> and
> SUM FIELDS=(INP_EXTNTS,
>
>  so no records are selected.
> Is there a way around this?
>
> Thanks for your help
> Jack
>
> --
> 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: Variable Sort Parsing

2022-10-22 Thread Billy Ashton
Kolusu, this worked great! I went with the Version 2 selection, and 
replaced the pipe delimiter with just a simple space.


Thanks again - one day, I hope to be able to do these simple things 
myself!


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 10/20/2022 12:15:22 AM
Subject Re: Variable Sort Parsing


2. The input is a FB file of 150, and these records are just space padded. The 
other log records in the file are of all different lengths, with some using the 
whole 150.



Billy,

It is quite simple to parse out the contents.  I am going to 2 show different 
versions.

Version 1 : will Parse ALL fields and then we pick and choose which fields we 
need
Version 2 : Will Parse ONLY specific fields of interest.

FIXLEN is the parm which determines the length of the parsed field, so adjust 
it according to your needs.

I added a Delimiter of '|' to distinguish the fields. You can remove it if you 
don't need it

Version 1 :

//STEP0100 EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD DISP=SHR,DSN=your Input FB 150 byte file
//SORTOUT  DD SYSOUT=*
//SYSINDD *
 OPTION COPY
 INCLUDE COND=(001,150,SS,EQ,C'MSG004CI')
 INREC IFTHEN=(WHEN=INIT,
BUILD=(001,150,SQZ=(SHIFT=LEFT,MID=C' '))),
   IFTHEN=(WHEN=INIT,
PARSE=(%01=(ENDBEFR=BLANKS,FIXLEN=08),  # Job Time
   %02=(ENDBEFR=BLANKS,FIXLEN=08),  # Job num
   %03=(ENDBEFR=BLANKS,FIXLEN=08),  # Job name
   %04=(ENDBEFR=BLANKS,FIXLEN=08),  # Msg number
   %05=(STARTAFT=C'PARM ',
 ENDBEFR=C': ',FIXLEN=15),  # Prog parm
   %06=(ENDBEFR=C',',FIXLEN=08),# Job Date
   %07=(STARTAFT=C'(',
 ENDBEFR=C') ',FIXLEN=10),  # Run Type
   %08=(ENDBEFR=BLANKS,FIXLEN=15),  # Location
   %09=(ENDBEFR=BLANKS,FIXLEN=06)), # Indicator

BUILD=(%03, # Job name
   C'|',# Delimiter
   %05, # Prog Parm
   C'|',# Delimiter
   %06, # Job Date
   C'|',# Delimiter
   %07, # Run Type
   C'|',# Delimiter
   %08, # Location
   C'|',# Delimiter
   %09, # Indicator
   C'|'))   # Delimiter
/*
The output from this is

PAYW015A|SCHEDULED  |20221008|WEEKLY|ALLSITES   |10.4  |
PAYW052X|REQUEST|20221012|DAILY |OH03   |10.6  |
BILLW015|new|20221016|hourly|ASH01  |10.2  |

Version 2:  Notice the ignored fields with % and pay attention to FIXLEN parm

//SYSINDD *
 OPTION COPY
 INCLUDE COND=(001,150,SS,EQ,C'MSG004CI')
 INREC IFTHEN=(WHEN=INIT,
BUILD=(001,150,SQZ=(SHIFT=LEFT,MID=C' '))),
   IFTHEN=(WHEN=INIT,
PARSE=(%=(ENDBEFR=BLANKS),  # Job Time
   %=(ENDBEFR=BLANKS),  # Job num
   %03=(ENDBEFR=BLANKS,FIXLEN=08),  # Job name
   %=(ENDBEFR=BLANKS),  # Msg number
   %05=(STARTAFT=C'PARM ',
 ENDBEFR=C': ',FIXLEN=03),  # Prog parm
   %06=(ENDBEFR=C',',FIXLEN=08),# Job Date
   %07=(STARTAFT=C'(',
 ENDBEFR=C') ',FIXLEN=01),  # Run Type
   %08=(ENDBEFR=BLANKS,FIXLEN=15),  # Location
   %09=(ENDBEFR=BLANKS,FIXLEN=06)), # Indicator

BUILD=(%03, # Job name
   C'|',# Delimiter
   %05, # Prog Parm
   C'|',# Delimiter
   %06, # Job Date
   C'|',# Delimiter
   %07, # Run Type
   C'|',# Delimiter
   %08, # Location
   C'|',# Delimiter
   %09, # Indicator
   C'|'))   # Delimiter
/*

The output from this is

PAYW015A|SCH|20221008|W|ALLSITES   |10.4  |
PAYW052X|REQ|20221012|D|OH03   |10.6  |
BILLW015|new|20221016|h|ASH01  |10.2  |

Thanks,
Kolusu
DFSORT Development
IBM Corporation




--
For IBM-MAIN subscribe / signoff / archive access in

Re: Variable Sort Parsing

2022-10-19 Thread Billy Ashton

Hi Kolusu, and thanks for looking into this.
1. No, these are two different records, with different parameters on 
them. They are both MSG004CI, but have different data fields. I tried to 
show just two with the shortest and the longest length. Each message is 
one line with:
time Jobnum jobname Msgkey - "Program Parm" type date , runtype() 
location numeric-code


2. The input is a FB file of 150, and these records are just space 
padded. The other log records in the file are of all different lengths, 
with some using the whole 150.


Thank you and best regards,
Billy Ashton


-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 10/19/2022 8:57:22 PM
Subject Re: Variable Sort Parsing


This will be fed into another reporting program to generate different reports, 
along with other operational data. Here are the two basic kinds of formats:
 01.34.15 JOB47986  PAYW015A MSG004CI - PROGRAM PARM SCHEDULED: 20221008, 
RUNTYPE(WEEKLY) ALLSITES  10.4

>> 01.34.15 JOB47986  PAYW052X MSG004CI - PROGRAM PARM REQUEST: 20221012,

RUNTYPE(DAILY) OH03  10.6


Hi Billy,

You have the right idea of using PARSE in DFSORT to extract the data. However, 
I need a few more details.

1.  The sample input that you have shown for EACH MSG004CI is split into 2 
records. Is that right ?  If so, can there be a single line message for 
MSG004CI ?
2.  What is the LRECL and RECFM of the input file?

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


Variable Sort Parsing

2022-10-19 Thread Billy Ashton
Hi all, I have a SORT problem I can't quite get my head around. I think 
I want to use PARSE, but can't figure out if there is an easy way to do 
it.


I have an application log file that contains joblogs of thousands of 
jobs a day, all with different records. I am interested in only getting 
records with a key value of MSG004CI . However, the records have 
variable format, and I would like to have SORT not only extract the 
records, but also just give me the fields I need. This will be fed into 
another reporting program to generate different reports, along with 
other operational data. Here are the two basic kinds of formats:
 01.34.15 JOB47986  PAYW015A MSG004CI - PROGRAM PARM SCHEDULED: 
20221008, RUNTYPE(WEEKLY) ALLSITES  10.4
 01.34.15 JOB47986  PAYW052X MSG004CI - PROGRAM PARM REQUEST: 20221012, 
RUNTYPE(DAILY) OH03  10.6


Here are my requirements:
1. We will extract if the message is MSG004CI and then I need the 
jobname word that comes before that.
2. Next, I need to know how the job was run - either Scheduled or 
Request and the date it was run (follows the type). Output is either SCH 
or REQ then the date.
3. Then, I want to know what type of run. This can be Daily, Weekly, 
Monthly, or Yearly. Output D, W, M, or Y.
4. Next, I need to know the locations processed: This is a variable 
length value, ALLSITES is the longest, OH03 is the shortest, with others 
of other lengths between.

5. Finally, I need the numeric indicator at the end of the line.

So given the above records, my output would be
PAYW015A SCH 20221008 W ALLSITES 10.4
PAYW052X REQ 20221012 D OH03 10.6spaces to allow me to have a fixed format>


I think I would use Parse to capture these 6 fields, but don't know how 
to allow for the different positions they could have. Can you help with 
the Inrec definition?


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Is there such a thing as JCL to transfer files using https?

2022-10-01 Thread Billy Ashton
Hi everyone! You have been so helpful in the past to help me with 
getting my file transfers working with sftp, and now, we have a manager 
who wants to explore using https in batch like we do online in our 
browsers. He thinks we can secure our ports better if we are not using 
as many. We would be using it to move files back and forth with a couple 
of our major business partners.


Is such a thing possible? What do I need to think about if this is 
possible? Does anyone have any sample JCL they have used and would be 
able to share with me?


I have tried to research this, but really haven't found anything useful 
(I guess this should be a clue).


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: REXX Testing a bit?

2022-08-02 Thread Billy Ashton
If you will be doing many of these kinds of tests, you can create a 
simple proc to tell you if the bit is on:


BitOn:
   If Arg(2) > Length(Arg(1)) * 8 Then Return 9;

   tval = Overlay('1',X2B(C2X(Copies('00'x,Length(Arg(1),Arg(2),1);
   tval = X2C(B2X(tval));
Return C2X(BitAnd(Arg(1),tval)) > 0;

The first test will return a 9 if you make an error, like specify Bit 9 
of a 1-byte field. Otherwise, it will return a 1 or 0 as True or False 
indicating the bit is on or not. Note that it will work on multi-byte or 
single-byte values.


Examples:
If BitOn("AC",15) Then Say "It is on"---> RC (1): It is on
If BitOn("ABC",26) Then Say "It is on"  ---> RC (9): null
If BitOn("A",4) Then Say "It is on"---> RC (0): null


Thank you and best regards,
Billy Ashton

-- Original Message --

From "Billy Ashton" 

To "IBM Mainframe Discussion List" 
Date 8/2/2022 8:40:49 AM
Subject Re: REXX Testing a bit?


I usually am displaying something depending on the bit setting, so I wrote a 
small proc:

/**
 * BITSW function: to test a bit for a value and return translation   *
 **/
BitSw:
tr$ = Trace(o);;

   test_str = Arg(1);
   test_bit = Arg(2);
   test_ret = Arg(3);

   Return Translate(Substr(x2b(test_str),test_bit,1),test_ret,"01");


You could use it like this:
mystring = BitSw(flag1,6,"NY")

This means:
Test the setting of bit 6 of the flag1 variable
Translate to the values I pass in (N, Y) from the bit value of 0, 1


Another simple way you could do it is to build your test mask (bit 6 on), and 
use this:
If C2X(Bitand(flag1,'0100'b)) > 0 Then say "got it"

Thank you and best regards,
Billy Ashton

-- Original Message --
From "Lionel B. Dyck" 
To IBM-MAIN@listserv.ua.edu
Date 8/2/2022 7:50:10 AM
Subject REXX Testing a bit?


What is the best way to test if a bit is 1 or 0?



I'm doing this but was thinking there may/probably is a better way:



If substr(x2b(c2x(flag1)),6,1)  = 1 then say 'got  it'





Lionel B. Dyck <><

Website:  <https://www.lbdsoftware.com> https://www.lbdsoftware.com

Github:  <https://github.com/lbdyck> https://github.com/lbdyck



"Worry more about your character than your reputation. Character is what you
are, reputation merely what others think you are."   - - - John Wooden




--
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: REXX Testing a bit?

2022-08-02 Thread Billy Ashton
I usually am displaying something depending on the bit setting, so I 
wrote a small proc:


/**
 * BITSW function: to test a bit for a value and return translation   *
 **/
BitSw:
tr$ = Trace(o);;

   test_str = Arg(1);
   test_bit = Arg(2);
   test_ret = Arg(3);

   Return Translate(Substr(x2b(test_str),test_bit,1),test_ret,"01");


You could use it like this:
mystring = BitSw(flag1,6,"NY")

This means:
Test the setting of bit 6 of the flag1 variable
Translate to the values I pass in (N, Y) from the bit value of 0, 1


Another simple way you could do it is to build your test mask (bit 6 
on), and use this:

If C2X(Bitand(flag1,'0100'b)) > 0 Then say "got it"

Thank you and best regards,
Billy Ashton

-- Original Message --

From "Lionel B. Dyck" 

To IBM-MAIN@listserv.ua.edu
Date 8/2/2022 7:50:10 AM
Subject REXX Testing a bit?


What is the best way to test if a bit is 1 or 0?



I'm doing this but was thinking there may/probably is a better way:



If substr(x2b(c2x(flag1)),6,1)  = 1 then say 'got  it'





Lionel B. Dyck <><

Website:  <https://www.lbdsoftware.com> https://www.lbdsoftware.com

Github:  <https://github.com/lbdyck> https://github.com/lbdyck



"Worry more about your character than your reputation. Character is what you
are, reputation merely what others think you are."   - - - John Wooden




--
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: Using SORT to generate sequential Dates

2022-07-06 Thread Billy Ashton
Hi Kolusu, and thanks for your help. I have been out for a few days, and 
got to work with it today. It is just what I need, and is easy enough to 
change the volume of data to add another month (which I was going to try 
later).


I appreciate all that you do, and for your expert knowledge!

Thank you and best regards,
Billy Ashton

-- Original Message --

From "Sri h Kolusu" 

To IBM-MAIN@listserv.ua.edu
Date 6/30/2022 6:14:04 PM
Subject Re: Using SORT to generate sequential Dates


Billy,

If I understand your requirement correctly, you need current month begin to end 
and 1 or 2 months before the current month. So if you are run the job 
today(June 30th), it will generate the dates from April 1st to June 30th.   If 
you run the job on July 1st then it would generate dates beginning May 1 thru 
May 31 , June 1 thru June 30 and July 1 thru July 31. If that is true, then use 
the following job which will give you the desired results.

//***
//* Generate DFSORT symbols for begin date and repeat value *
//* Begindate  =  Current month - 2 months (CCYYMM)  01 *
//* Enddate=  Last day of the current month (CCYYMMDD)  *
//* Repeatval  =  Number of entries (Enddate - Begmmdd) *
//***
//STEP0100 EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD *
ABC
//SORTOUT  DD DSN=&,DISP=(,PASS),SPACE=(TRK,(1,0))
//SYSINDD *
 OPTION COPY,STOPAFT=1,NULLOUT=RC4
 INREC OVERLAY=(01:DATE2-2,C'01',
11:DATE1,
21:11,08,Y4T,LASTDAYM,TOGREG=Y4T,
31:21,08,Y4T,DATEDIFF,01,08,Y4T)

 OUTFIL BUILD=(C'SDATE,C''',01,08,C,/,
   C'EDATE,C''',21,08,C,/,
   C'RPVAL,',31,08,UFF,ADD,+1,M11,LENGTH=8,
   80:X)
/*
//***
//* Use the symbols from previous step and generate the data*
//***
//STEP0200 EXEC PGM=SORT,COND=(0,LT)
//SYSOUT   DD SYSOUT=*
//SYMNOUT  DD SYSOUT=*
//SYMNAMES DD DISP=(OLD,PASS),DSN=&
//SORTIN   DD *
ABC
//SORTOUT  DD SYSOUT=*
//SYSINDD *
 OPTION COPY,STOPAFT=1,NULLOUT=RC4
 OUTFIL REPEAT=RPVAL,
 IFOUTLEN=80,
 IFTHEN=(WHEN=INIT,
  OVERLAY=(081:SDATE,
   091:SEQNUM,3,ZD,START=0,
   101:081,08,Y4T,ADDDAYS,091,3,ZD,TOGREG=Y4T)),
 IFTHEN=(WHEN=INIT,
 BUILD=(C'(''',C'D',SEQNUM,3,ZD,C''',',
C,101,04,C'-',105,02,C'-',107,02,C''',',
C,101,08,C''',',
101,08,C',',
C,101,02,C''',',
C,103,02,C''',',
C,105,02,C''',',
C,107,02,C''')'))
/*


Thanks,
Sri Hari Kolusu
DFSORT Development
IBM Corporation


-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Billy Ashton
Sent: Thursday, June 30, 2022 2:30 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: Using SORT to generate sequential Dates

Kolusu, the key data is that I have the previous month start and end date (for 
today, it would be May 1 and 31), with some range of dates before that. I also 
need at least the end of the current month (June 30, today). For running it 
tomorrow, I need at least June 1 - 30 (with some dates in May) and July 1 to 31.
Having more dates than this is fine, and is no problem to go back even another 
month and ahead even another month.

Billy

Sri h Kolusu wrote:






I need this for about 3 months worth of dates. . The dates should
start either on the 15th of the month, 2 months ago, or 45 days ago
(whichever is easier)





Billy,

It is easy to generate the dates in the required format, however  a
few clarifications needed.
•   Can the dates start from current date and go back to 3 months
of dates?
•   Do you want the ability of passing ANY VALID date and number
of entries needed?
•   3 months dates can result in 88 - 93 entries depending on the
current date. For example today's  Current-date is 2022-06-30 and
subtracting 3 months from it results in 2022-03-30. So we can have the
start date from March 30th and get to Current date which will be 93
days of data. Is that OK? If we always use 93 as number of entries to
generate then it might exceed the current date.  I can handle it
dynamically have the repeat value. Is that needed ? or is it ok to
have 93 entries of data?


Thanks,
Kolusu
DFSORT Development
IBM Corporation



--
For IBM-MAIN subscribe / signoff / archive access instructions, send
email to lists...@listserv.ua.edu<mailto: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<mailto:lists...@listserv.ua.edu> wi

Re: Using SORT to generate sequential Dates

2022-06-30 Thread Billy Ashton
Kolusu, the key data is that I have the previous month start and end 
date (for today, it would be May 1 and 31), with some range of dates 
before that. I also need at least the end of the current month (June 30, 
today). For running it tomorrow, I need at least June 1 - 30 (with some 
dates in May) and July 1 to 31.
Having more dates than this is fine, and is no problem to go back even 
another month and ahead even another month.


Billy

Sri h Kolusu wrote:






I need this for about 3 months worth of dates. . The dates should 
start either on the 15th of the month, 2 months ago, or 45 days ago 
(whichever is easier)





Billy,

It is easy to generate the dates in the required format, however  a 
few clarifications needed.
•   Can the dates start from current date and go back to 3 months 
of dates?
•   Do you want the ability of passing ANY VALID date and number 
of entries needed?
•   3 months dates can result in 88 - 93 entries depending on the 
current date. For example today's  Current-date is 2022-06-30 and 
subtracting 3 months from it results in 2022-03-30. So we can have the 
start date from March 30th and get to Current date which will be 93 
days of data. Is that OK? If we always use 93 as number of entries to 
generate then it might exceed the current date.  I can handle it 
dynamically have the repeat value. Is that needed ? or is it ok to 
have 93 entries of data?



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


Using SORT to generate sequential Dates

2022-06-30 Thread Billy Ashton

Hello all!

I have a new SORT challenge... I have looked up and found out how to use 
SORT to get the current date and output it, but I need to go further, 
and could not find this.


I would like to use SORT to generate a file like this that I am using 
for testing some SQL logic I am working on:

('D001','ccyy-mm-dd','ccyymmdd',ccyymmdd,'cc','yy','mm','dd')

I need this for about 3 months worth of dates. The dates should start 
either on the 15th of the month, 2 months ago, or 45 days ago (whichever 
is easier) and go up through the end of the current month (it could even 
start on the 1st day of 2 months ago if necessary). So for today (June 
30), it would have

('D001','2022-04-15','20220415',20220415,'20','22','04','15')
('D002','2022-04-16','20220416',20220416,'20','22','04','16')
. . .
('D077','2022-06-30','20220630',20220630,'20','22','06','30')

I can generate the sequential number, but have trouble with incremental 
dates or getting the start date. Can Kolusu or someone else help with 
this? I am sure it is simple with a repeat, but I can't come up with 
anything.


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: FTP Software for Mainframe to PC

2022-06-10 Thread Billy Ashton

WinSCP(winscp.net)

Thank you and best regards,
Billy Ashton

-- Original Message --

From "Lizette Koehler" 

To IBM-MAIN@listserv.ua.edu
Date 6/10/2022 8:48:55 AM
Subject FTP Software for Mainframe to PC




Just looking to create a list of software that does FTP from the mainframe
to the PC



I know



IND$FILE
FILEZILLA



Are there any others?



Cost or no cost is okay.





Lizette




--
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: [EXTERNAL] Do they still make greenbar paper these days?

2022-06-08 Thread Billy Ashton
I still remember my first computer-oriented job as a burster and 
decollator operator. My biggest nemesis was the 5-part carbon form with 
parts 4&5 edge glued (for an insurance company, of course).


Ahh, those halcyon days...

Thank you and best regards,
Billy Ashton

-- Original Message --

From "Clifford McNeill" 

To IBM-MAIN@listserv.ua.edu
Date 6/8/2022 3:25:37 PM
Subject Re: [EXTERNAL] Do they still make greenbar paper these days?


Now you need a de-collator.

On 6/8/2022 1:09 PM, Pommier, Rex wrote:

GIYF or duck duck go or whatever your search engine of choice.  Not only is 
greenbar paper still available (Staples, anyone?) but you can even still get it 
in carbon paper (shudder).



--
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


Coding IF statement in BPXBATCH shell

2022-02-11 Thread Billy Ashton
Hey everyone...I am having a tough time with a shell script I am writing 
for my BPXBATCH step. All I want to do is run one of two commands 
depending on a variable that is passed to the script.


I have tried coding
if [ "$pet" == "DOG" ] ; then
   commands...
else
   other commands
fi

and I have tried
if [[  ]]
if [ ... = ... ]

all with the same result:
+ DOG == DOG
DOG: /tmp/bpxshel.sh 48: FSUM7351 not found or
..: (I think these are the two square brackets) or
.: (this is the one square bracket)

So, how in the world do I code an IF statement in this BPXBATCH script 
to do a simple string compare?


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: how to do Unix copy command with temp file

2022-02-08 Thread Billy Ashton
gil, I tried IEBGENER, but my test (copy to Unix using Gener, then copy 
back to MVS file using Gener, then compare) failed with anything other 
than text files (Ascii), but that might have been due to Path settings 
or Filedata settings (too many iterations ago to remember).


The delete is not necessary, and I could do the overwrite--it just 
seemed cleaner to do it that way...I will review that again for 
simplicity. And the /tmp directory suggestion about another subdir is a 
good one-thanks!


Finally !cp is not a negate...in sftp, the bang means to run a shell 
command within the sftp active environment. So here, !cp is running a 
shell Copy command to copy the MVS file to Unix (still trying to work 
that out with return code testing).


Thank you and best regards,
Billy Ashton

-- Original Message --

From "Paul Gilmartin" <000433f07816-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 2/8/2022 1:19:19 PM
Subject Re: how to do Unix copy command with temp file


On Tue, 8 Feb 2022 17:50:15 +0000, Billy Ashton wrote:


Hi gil, here is what we do:
1. Run an inhouse program that massages several files and creates one (possibly) large 
file (&Untersedfile).
2. Terse that large file (&Tersedfile)
3. Pre-emptively delete the Unix file (this is the new step)


Is delete necessary?  (Does sort require a new (pathopts=OEXCL) file?


4. PGM=SORT to copy that file to Unix (as /tmp/tempfile.txt (actually, a more 
meaningful name is used).


Why SORT rather than IEBGENER?
o I wouldn't expect Kolusu to suggest anything else.
o A co-worker long ago told me that SYNCGENR outperforms IEBGENER.
o Bur IEBGENER will copy attributes from SYSUT1 to SYSUT2.
o I suggest a private subdirectory of /tmp, with a meaningful name.


5. Run sftp to transfer it to a remote server at another company.

I thought I had referenced my #4 solution previously, but in any case, Kolusu gave me a 
SORT OPTION=COPY step that will create the Unix file I need. Sort wants the DCB info for 
both sides of the copy, which is not a problem as these attributes don't change. I am 
also considering adding a !cp command to my Sftp script instead of the separate step, but 
don't know how to test for success of that !cp command before doing the "put" 
command. I am still researching that, as I am not a very good shell programmer.


What's "!cp"?  I don't understand the "!"
Ah!  on further review, shell negation.

Perhaps:
   if cp ...
   then
   sftp ...
   else
   echo "cp failed with status $?." >&2
   fi
Or:
   cp ... || {
   echo "cp failed with status $?." >&2
   exit 1; }
   sftp ...

-- gil

--
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: how to do Unix copy command with temp file

2022-02-08 Thread Billy Ashton

Hi gil, here is what we do:
1. Run an inhouse program that massages several files and creates one 
(possibly) large file (&).

2. Terse that large file (&)
3. Pre-emptively delete the Unix file (this is the new step)
4. PGM=SORT to copy that file to Unix (as /tmp/tempfile.txt (actually, a 
more meaningful name is used).

5. Run sftp to transfer it to a remote server at another company.

I thought I had referenced my #4 solution previously, but in any case, 
Kolusu gave me a SORT OPTION=COPY step that will create the Unix file I 
need. Sort wants the DCB info for both sides of the copy, which is not a 
problem as these attributes don't change. I am also considering adding a 
!cp command to my Sftp script instead of the separate step, but don't 
know how to test for success of that !cp command before doing the "put" 
command. I am still researching that, as I am not a very good shell 
programmer.


Thank you and best regards,
Billy Ashton

-- Original Message --

From "Paul Gilmartin" <000433f07816-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 2/8/2022 12:04:56 PM
Subject Re: how to do Unix copy command with temp file


On Tue, 8 Feb 2022 16:06:35 +, Billy Ashton wrote:


gil, the reason I cannot write directly is that in one case, after creating my 
file, I run it through AMATERSE to shrink it, and AMATERSE cannout output to 
the Unix file. So in this case, I need to write to a temp file, then copy it to 
Unix where I can send it.


Do you ever need both the TERSE instance and the sftp instance?  If
you need only one you can select whether to allocate a temp DSN or
a UNIX file.

If your data set is large it might be desirable to avoid creating a large
UNIX file.  Sftp just executes a monitor program at the remote site.
Instead of sftp you might be able to:
   cp //temp.dsn /dev/fd/1 |ssh user@remotehost " set -x; cat 
>remote.file.txt"

(Yo never said how you solved the original "cp" problem.)

Are you allowed to use Dovetailed Co:Z?

-- gil

--
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: how to do Unix copy command with temp file

2022-02-08 Thread Billy Ashton
OK, gil, that worked perfectly. I see the messages in my JESYSMSG output 
whether the file exists or not:

IGD103I SMS UNIX FILE ALLOCATED TO DDNAME DELTEMP
IEF142I SFTPTEST DELETE - STEP WAS EXECUTED - COND CODE 
IGD105I UNIX FILE WAS DELETED, DDNAME IS (DELTEMP )
FILENAME IS (/tmp/tempfile.txt)

Thanks again for your great suggestion!
B

Thank you and best regards,
Billy Ashton

-- Original Message --

From "Paul Gilmartin" <000433f07816-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 2/8/2022 8:59:34 AM
Subject Re: how to do Unix copy command with temp file


On Tue, 8 Feb 2022 13:01:14 +0000, Billy Ashton wrote:


Is there a simple command like IEFBR14 that will allow me to delete a USS path 
if it exists, or to just skip over it if not? Right now, if I run IEFBR14, and 
have a DD statement with a path like 
PATH='/tmp/tempfile.txt',PATHDISP=(DELETE,DELETE) and that file does not exist, 
I get a JCL error.


I believe that if you code:
   PATH='/tmp/tempfile.txt',PATHDISP=(DELETE,DELETE),PATHOPTS=(OCREAT,ORDWR)
You will not get the error.  It may momentarily create the file, then
delete it.  Is that objectionable.


Ideally, I should not need this, but want to ensure that this file is not there 
when I start my processing.


What is your requirement in detail?  If you code
   PATH='/tmp/tempfile.txt',PATHOPTS=(OCREAT,OTRUNC,ORDWR)
it will overwrite the file if it exists.  Is that satisfactory?

-- gil

--
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: how to do Unix copy command with temp file

2022-02-08 Thread Billy Ashton
Hi Carmen, I am going to give gil's method a try first, as it is simple 
enough to keep inside a BR14, and failing that, I will go with the shell 
command. Thanks for the suggestion!


Thank you and best regards,
Billy Ashton

-- Original Message --

From "Carmen Vitullo" 

To IBM-MAIN@listserv.ua.edu
Date 2/8/2022 8:29:11 AM
Subject Re: how to do Unix copy command with temp file


On Tue, 8 Feb 2022 13:01:14 +0000, Billy Ashton  wrote:


Ok, here is a followup question from a problem I ran into...

Is there a simple command like IEFBR14 that will allow me to delete a USS path 
if it exists, or to just skip over it if not? Right now, if I run IEFBR14, and 
have a DD statement with a path like 
PATH='/tmp/tempfile.txt',PATHDISP=(DELETE,DELETE) and that file does not exist, 
I get a JCL error.

Ideally, I should not need this, but want to ensure that this file is not there 
when I start my processing.

Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN



use the bpxbatch program and parm='sh rm /tmp/tempfile.txt' or for MVS datasets 
that may or not exists you should use a DISP=(MOD,DELETE,DELETE)
correct the parms for your use, but this should work Carmen

--
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: how to do Unix copy command with temp file

2022-02-08 Thread Billy Ashton
gil, this looks like it will work well for me here. I will give this a 
try - creating and deleting is no issue to me, as the end result is that 
whether or not the file exists beforehand, it will not exist afterwards, 
and the process will not fail on a file not found.


Thanks for this!

Thank you and best regards,
Billy Ashton

-- Original Message --

From "Paul Gilmartin" <000433f07816-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 2/8/2022 8:59:34 AM
Subject Re: how to do Unix copy command with temp file


On Tue, 8 Feb 2022 13:01:14 +0000, Billy Ashton wrote:


Is there a simple command like IEFBR14 that will allow me to delete a USS path 
if it exists, or to just skip over it if not? Right now, if I run IEFBR14, and 
have a DD statement with a path like 
PATH='/tmp/tempfile.txt',PATHDISP=(DELETE,DELETE) and that file does not exist, 
I get a JCL error.


I believe that if you code:
   PATH='/tmp/tempfile.txt',PATHDISP=(DELETE,DELETE),PATHOPTS=(OCREAT,ORDWR)
You will not get the error.  It may momentarily create the file, then
delete it.  Is that objectionable.


Ideally, I should not need this, but want to ensure that this file is not there 
when I start my processing.


What is your requirement in detail?  If you code
   PATH='/tmp/tempfile.txt',PATHOPTS=(OCREAT,OTRUNC,ORDWR)
it will overwrite the file if it exists.  Is that satisfactory?

-- gil

--
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: how to do Unix copy command with temp file

2022-02-08 Thread Billy Ashton
gil, the reason I cannot write directly is that in one case, after 
creating my file, I run it through AMATERSE to shrink it, and AMATERSE 
cannout output to the Unix file. So in this case, I need to write to a 
temp file, then copy it to Unix where I can send it.


Thank you and best regards,
Billy Ashton

-- Original Message --

From "Paul Gilmartin" <000433f07816-dmarc-requ...@listserv.ua.edu>

To IBM-MAIN@listserv.ua.edu
Date 2/8/2022 9:11:38 AM
Subject Re: how to do Unix copy command with temp file


On Tue, 8 Feb 2022 13:01:14 +0000, Billy Ashton wrote:

   ...
Ideally, I should not need this, but want to ensure that this file is not there 
when I start my processing.


You wrote earlier that you wrote first to a Classic temp data set,
then copy that to a temp UNIX file.  Why can you not write
directly to the UNIX file?  Can you show your code, at least the
part that allocates the temp data set?

-- gil

--
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: how to do Unix copy command with temp file

2022-02-08 Thread Billy Ashton

Ok, here is a followup question from a problem I ran into...

Is there a simple command like IEFBR14 that will allow me to delete a 
USS path if it exists, or to just skip over it if not? Right now, if I 
run IEFBR14, and have a DD statement with a path like 
PATH='/tmp/tempfile.txt',PATHDISP=(DELETE,DELETE) and that file does not 
exist, I get a JCL error.


Ideally, I should not need this, but want to ensure that this file is 
not there when I start my processing.


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


how to do Unix copy command with temp file

2022-02-03 Thread Billy Ashton

Here is a simple question that has a simple answer - I hope!

I have a process that takes input from several standard MVS files, and 
creates a temporary file (sometimes small, sometimes ginormous). Our 
shop is using SFTP to send files to another server, and I am not sure 
how to code the "cp" command to put this temp file into an HFS directory 
so I can send it. I can work with standard, catalogued files without a 
problem, but was hoping i could use a temp file here.


What do y'all think? Can I do a cp command with a temp file, or do I 
need to have a catalogued file?


Thank you and best regards,
Billy Ashton

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: What not to do on a z/OS system...

2022-01-19 Thread Billy Ashton
My career in IT started as an overnight burster and decollator 
operator...

Billy

-- Original Message --

From "Carmen Vitullo" 

To IBM-MAIN@listserv.ua.edu
Date 1/19/2022 3:07:12 PM
Subject Re: What not to do on a z/OS system...


yup, Print, burst, trim, console, microfiche, all shifts :) we did it all indeed

Carmen

On 1/19/2022 2:04 PM, Mitch Mccluhan wrote:

  Carmen?
Print operator?  Back in the 70s, we did it all!

Mitch
-Original Message-
From: Carmen Vitullo
To:IBM-MAIN@LISTSERV.UA.EDU
Sent: Wed, Jan 19, 2022 1:50 pm
Subject: Re: What not to do on a z/OS system...

NO - fun was being a print operator and throwing an empty box of
stock paper at someone who thought it was a full box

what not to do when you're an operator working with Datagraphix
microfiche, save the chemical change for the next shift, it always comes
back to bite you


Carmen

On 1/19/2022 1:44 PM, Mitch Mccluhan wrote:

   ...the most fun was when you had a punch card system where a co-worker was sorting a 
few columns of approximately 25K cards and asked you to help carry a stack. When they 
weren't looking, you pick up a stack of garbage cards instead, take a few steps and 
"accidentally" drop the stack.  So much fun!  Of course, this was before true 
operating systems.

Mitch McCluhan
  -Original Message-
From: Seymour J Metz
To:IBM-MAIN@LISTSERV.UA.EDU
Sent: Wed, Jan 19, 2022 1:39 pm
Subject: Re: What not to do on a z/OS system...

I've heard of operators cancelling jobs that were running correctly because 
they assumed that tapes moving back and forth always meant a bad spot.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Carmen Vitullo [cvitu...@hughes.net]
Sent: Wednesday, January 19, 2022 1:27 PM
To:IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: What not to do on a z/OS system...

not a zseries, around the same decade, in the 80's we had a 30xx
processor that went into a wait state IIRC, I was an operator and we
were rerunning an inventory update process for a large retailer, I
started to hit stop/unload all the inventory files that were mounted on
the drives, supervisor and sysprogs were at the console and I got heat
for doing it since then an O2 SYSTEM RESTART (I think) was new and my
boss throught we could just restart the processor and pick up like the
system never went into a wait state, luckily for me, the system did not
recover and an IPL was required.

other things like attempting to run a compile/go my first assembler
program (as an operator) the system seemingly hung, it was not me
thankfully but I still had a pucker up moment.

I recall my lead operator doing something similar on a data check on a
tape, you know when you see the tape re-read the same block over and
over, he hit stop on the processor, it was a 370/158, then accessed the
control unit for the drives and threw some toggles to bypass the bad
block on the tape, resumed and all was good, our applications were
written i a way that bad data was written to an error report so we could
balance the data and account for the missing input -


Carmen


On 1/19/2022 12:04 PM, Lennie Dymoke-Bradshaw wrote:

At my first job (1975) one of the programmers was chatting to the operators and 
then lent against that red button on the wall. Shutdown the entire machine room 
of course.

Lennie

-Original Message-
From: IBM Mainframe Discussion ListOn Behalf Of 
Mike Shaw
Sent: 19 January 2022 16:44
To:IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: What not to do on a z/OS system...

We once had a data check we could not get past on a 3420 tape. This was around 
1980, MVS/SE 1 or thereabouts. The lead sysprog hit stop on the tape drive, 
pulled the leading tape portion out of the vacuum column, rubbed it gently back 
and forth between his finger and thumb, and slowly released the tape back into 
the vacuum column. He hit start on the tape drive and we got past the data 
check and read the rest of the data on that tape without a problem. No blocks 
were missed.

I thought that was magic at the time...

Mike Shaw
MVS/QuickRef Support Group
Chicago-Soft, Ltd.


On Wed, Jan 19, 2022 at 10:31 AM Seymour J Metzwrote:


Back in the old days the R/W heads lifted up when you unloaded  a tape
and moved down when you mounted a new reel. One day an interlock
didn't interlock and the R/W head mashed the hand of an operator. The
damage wasn't permanent, but everybody was more cautious after that.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on
behalf of Cameron Conacher
[03cfc59146bb-dmarc-requ...@listserv.ua.edu]
Sent: Wednesday, January 19, 2022 10:22 AM
To:IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: What not to do on a z/OS system...

A very long time ago, (mid seventies I think) I was loading a tape 

Re: Ad message paradigm (Re: Ad NetRexx (Re: Ad programming features (Re: ... Re: Top 8 Reasons for using Python instead of REXX for z/OS

2022-01-13 Thread Billy Ashton
All of this sounds interesting, so if I wanted to try out some Python 
scripts to see how they stack up to Rexx, where might I find some Python 
source members along with JCL members to run them?


Thanks!
Billy

-- Original Message --
From "Farley, Peter x23353" 

<031df298a9da-dmarc-requ...@listserv.ua.edu>
To IBM-MAIN@listserv.ua.edu
Date 1/13/2022 10:49:48 AM
Subject Re: Ad message paradigm (Re: Ad NetRexx (Re: Ad programming 
features (Re: ... Re: Top 8 Reasons for using Python instead of REXX for 
z/OS



It is my understanding that Java is and has been available in z/OS for a long 
time now, but not from TSO or CLIST directly.  From REXX via SYSCALL and 
BPXWUNIX I suspect it is possible, but not from, e.g., the TSO / ISPF command 
line directly


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: How to use dfsort to filter keywords that aren't fixed position

2021-12-22 Thread Billy Ashton
Thanks, Kolusu...this works like a charm, and I can understand what it 
is doing. I will let you get back on track with Jason's part of the 
request now.


Have a Merry Christmas and happy holiday season!
Billy

Sri h Kolusu wrote on 12/21/2021 15:38:

1. Look for any job ABCDE123 having message IEC988I, and note the JOBID.
2. If you find that message, display all the messages for Job ABCDE123
with that same JOBID.
I would also assume I could change the search for the jobname to use a
shorter version, like  4,CH,C'ABCD' to give me all of these jobs.

Billy,

Here is the job that will give you the desired results. Look at the OUTFIL
INCLUDE statement which lets you filter on the jobnames. The job name is
available at position 152 for 8 bytes.

//STEP0100 EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//INA  DD DISP=SHR,DSN=Your.Input.FBM.133.LRECL.SYSLOG
//INB  DD DISP=SHR,DSN=Same.Input.FBM.133.LRECL.SYSLOG
//SORTOUT  DD SYSOUT=*
//SYSINDD *
   OPTION COPY
   JOINKEYS F1=INA,FIELDS=(134,8,A)
   JOINKEYS F2=INB,FIELDS=(039,8,A)
   REFORMAT FIELDS=(F1:1,150)
   INREC IFTHEN=(WHEN=GROUP,
BEGIN=(143,01,CH,GT,C' '),
 PUSH=(143:134,08, $ JOBID
   152:143,08))$ JOBNAME

   OUTFIL BUILD=(1,133),
   INCLUDE=((134,8,CH,EQ,143,08,CH),AND,
 152,4,CH,EQ,C'ABCD')
/*
//JNF1CNTL DD *
   INREC IFTHEN=(WHEN=GROUP,
BEGIN=(21,5,CH,GT,C' '),
 PUSH=(134:39,08)),$ JOBID
 IFTHEN=(WHEN=(58,8,CH,EQ,C'$HASP373'),
OVERLAY=(143:67,08))   $ JOBNAME
/*
//JNF2CNTL DD *
   INCLUDE COND=(58,8,CH,EQ,C'IEC988I')
/*



My brain is not working well today due to the flu, and I am struggling a

bit.

Hope you feel better.

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: How to use dfsort to filter keywords that aren't fixed position

2021-12-21 Thread Billy Ashton
Kolusu, thanks for the sample, it does work great for what you said, and 
I can use this. I'm afraid I did not ask this correctly, and it will 
explain why I think two steps, unless you think otherwise. Let me 
restate the logic using your sample below.

1. Look for any job ABCDE123 having message IEC988I, and note the JOBID.
2. If you find that message, display all the messages for Job ABCDE123 
with that same JOBID.


I would also assume I could change the search for the jobname to use a 
shorter version, like  4,CH,C'ABCD' to give me all of these jobs. But I 
will let you see what you think. My brain is not working well today due 
to the flu, and I am struggling a bit.


Thanks,
Billy

Sri h Kolusu wrote on 12/21/2021 13:54:

I would like to ask one extension to this, if you please. I would like
to be able to further screen the syslog by Jobname, but knowing that
there could be multiple job numbers, I would need a way to capture
those, too.


Billy,

It is quite simple.  The $HASP373 message contains the jobname and job
number which can be written to the output file quite easily.


So in using this example, I would want to see HASM* messages, but only
if they were in any job ABCDE123. If so, it would be great to see all
the ABCDE123 messages, but I suspect that this is now a two-step job of
some kind.


It can be done using JOINKEYS. in a single step.  Here is a sample job that
extracts a particular job which issued the message IEC988I

//STEP0100 EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//INA  DD DISP=SHR,DSN=Your.Input.FBM.133.LRECL.SYSLOG
//INB  DD DISP=SHR,DSN=Same.Input.FBM.133.LRECL.SYSLOG
//SORTOUT  DD SYSOUT=*
//SYSINDD *
   OPTION COPY
   JOINKEYS F1=INA,FIELDS=(39,8,A)$ Jobid
   JOINKEYS F2=INB,FIELDS=(39,8,A)$ Jobid
   REFORMAT FIELDS=(F1:1,141)
   INCLUDE COND=(134,8,CH,EQ,C'ABCDE123')
   INREC BUILD=(1,133)
/*
//JNF1CNTL DD *
   INCLUDE COND=(58,8,CH,EQ,C'IEC988I')
   INREC PARSE=(%01=(ABSPOS=66,ENDBEFR=C',',FIXLEN=8)),
   OVERLAY=(134:%01)
/*
//JNF2CNTL DD *
   INCLUDE COND=(58,8,CH,EQ,C'$HASP373')
/*


if you need further help, please send me a sample input file and rules to
extract the data, and I will come up with a solution.

Thanks,
Kolusu


--
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: How to use dfsort to filter keywords that aren't fixed position

2021-12-21 Thread Billy Ashton
Kolusu, this leads to some intriguing things, and there are a lot of 
possibilities here.


I would like to ask one extension to this, if you please. I would like 
to be able to further screen the syslog by Jobname, but knowing that 
there could be multiple job numbers, I would need a way to capture 
those, too.


So in using this example, I would want to see HASM* messages, but only 
if they were in any job ABCDE123. If so, it would be great to see all 
the ABCDE123 messages, but I suspect that this is now a two-step job of 
some kind.


What do you think? Is something like this remotely possible here?
Billy

Sri h Kolusu wrote on 12/20/2021 11:22:

If we put them together, the output isn't what we need.

Jason,

It is quite easy to get the multi-line messages.  Looks like you are
interested in extracting messages which begins with HSAM...

Basically a multi-line message will NOT have the date and time for the
continuation lines. And the message id are at fixed position on the first
line (position 58)

Assuming your syslog is FBM and LRECL=133 here is a job that would extract
the HSAM.. messages (single and multi-line)

//STEP0100 EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD DISP=SHR,DSN=Your Input Syslog/Operlog
//SORTOUT  DD SYSOUT=*
//SYSINDD *
   OPTION COPY
   INREC IFTHEN=(WHEN=GROUP,
BEGIN=(21,5,CH,GT,C' '),   $ IF DATE IS > ' '
 PUSH=(134:58,08)) $ MESSAGE ID

   OUTFIL BUILD=(01,133),  $ ORIGINAL LRECL
   INCLUDE=(134,4,CH,EQ,C'HSAM')   $ ONLY HSAM MESSAGES
/*

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: Using HTTPS from JCL for file download?

2021-11-19 Thread Billy Ashton
Carmen, I'd be thrilled to see your samples, as I can't get to my ShopZ 
person here at the moment. Please make sure to strip your user/password 
stuff, so I don't get you in trouble!

Billy

Carmen Vitullo wrote on 11/19/2021 15:13:

I use HTTPS from batch JCL, it works very well .

IBM provides this option on shopz once your order is placed.

my company requires us to go thru the proxy server so I have to 
provide my LAN ID and Password to pass thru the proxy


I can provide some sample JCL but that JCL is the same as what IBM 
provides on Shopz, your site requirements I'm sure are different, I've 
been as site that do not require me to use the proxy , both options 
work well.



Carmen

On 11/19/2021 2:00 PM, Billy Ashton wrote:

Hi all, I am back!
After successfully getting my FTPS and SFTP JCL set up and working 
right here, some manager got a bee in his bonnet to say that he 
wanted to use HTTPS protocol from his JCL, because he read that HTTPS 
was the best way to go. I tried to explain that HTTPS was meant for 
browser applications, and that some special application would be 
needed to process the HTTPS headers and data, but he insisted I try 
to find a way to make HTTPS work from JCL.


So...can this be done? Can a batch JCL job run HTTPS to do file 
downloads? If so, can you help a brother out and let me see how you 
do it, so I can see if we can do it here?


I appreciate this group - if it can be known, someone here will know it!
Billy

--
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


Using HTTPS from JCL for file download?

2021-11-19 Thread Billy Ashton

Hi all, I am back!
After successfully getting my FTPS and SFTP JCL set up and working right 
here, some manager got a bee in his bonnet to say that he wanted to use 
HTTPS protocol from his JCL, because he read that HTTPS was the best way 
to go. I tried to explain that HTTPS was meant for browser applications, 
and that some special application would be needed to process the HTTPS 
headers and data, but he insisted I try to find a way to make HTTPS work 
from JCL.


So...can this be done? Can a batch JCL job run HTTPS to do file 
downloads? If so, can you help a brother out and let me see how you do 
it, so I can see if we can do it here?


I appreciate this group - if it can be known, someone here will know it!
Billy

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: conditional JCL - Reinvent the wheel?

2021-11-10 Thread Billy Ashton
Here is a neat little trick I learned from a guy at CA, using SET and 
IF. I use this a lot now, and other than needing a dummy step if I am 
testing the first step in a job, it works great. I have been able to 
nest my IF statements sometimes 3 deep when I have complex processing 
that I want to switch on or off.


Billy

//*
//* Run the TEST1 process? Set to 1 if yes, 0 if no:
//  SET RUNTEST1=0
//*
//FIRSTSTP  EXEC PGM=IEFBR14    Dummy first step for IF tests
//*
//I@TEST1  IF =1 THEN  "IF" cannot be used before 1st step
//TEST1PGM  EXEC PGM=IEFBR14
//*
//L@TEST1  ELSE
//TEST1OTH  EXEC PGM=IEFBR14
//*
//E@TEST1  ENDIF
//

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: How to stack large instream data inside BPXBATCH

2021-10-19 Thread Billy Ashton
Gil, there are some really good suggestions here, and I will see about 
how I can do them. I think I will have to go the multiple member route, 
but I will use OCOPY instead of REPRO, and look to STDENV for the 
variables. I think someone tried to get COZBATCH a while ago, and that 
was vetoed by management, so that is not an option.
As to the actual download, sftp cannot download directly to MVS files 
(or upload from, for that matter). It has to work with a Unix file that 
is then Copied to/from the MVS file.


Thanks for all the help with this and for teaching me more once again!
Billy

Paul Gilmartin wrote on 10/19/2021 09:09:

On Tue, 19 Oct 2021 02:57:22 -0500, Jantje.  wrote:


On Mon, 18 Oct 2021 15:17:22 -0400, Billy Ashton wrote:


Hi again...is there a way to run a single BPXBATCH JCL member that

Can I suggest you move to COZBATCH? So much simpler to use and far better 
functionality IMHO.


A good idea provided that the programmer is entitled to haven COZBATCH 
installed.


On Mon, 18 Oct 2021 15:17:22 -0400, Billy Ashton wrote:


Hi again...is there a way to run a single BPXBATCH JCL member that
copies some instream data into temp files and then run a command that
uses those files?

For example, I tried this, but got no output:
//SFTP  EXEC PGM=BPXBATCH
...
//STDPARM   DD *,SYMBOLS=(JCLONLY)
sh cat > /pwd.sh   << EOF1


Your STDPARM should begin with SH or PGM.


echo ''
EOF1


Trailing blanks will caus EOFn not to bee recognized.
Perhaps better IKJEFT01 with several REPRO commands
to create the temp files.

Create all the temp files in a single temp directory.
delete it with "rm -r" allowing design flexibility.

I'll suggest putting sensitive variables in STDENV, avoiding
even momentary existence in the temp file.


sh cd 


"sh" causes the "cd" to be performed in a separate
execution environment, having no practical effect.


# -- 3. Download the file from the server
get 
# -- 4. Copy the file from the unix HFS to z/OS
!cp  "//'$'"


Can't FTP download directly to an MVS data set or even
a DDNAME,  requiring no temp file or copy/


Also, before you ask, because of the highly sensitive nature of this
server, the passwords are changed at a very high frequency, and they
elected to use user/password authentication as keys do not allow the
time-restricted access they need.


Can't keys be changed as frequently as passwords?

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email tolists...@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


How to stack large instream data inside BPXBATCH

2021-10-18 Thread Billy Ashton
Hi again...is there a way to run a single BPXBATCH JCL member that 
copies some instream data into temp files and then run a command that 
uses those files?


For example, I tried this, but got no output:
//SFTP      EXEC PGM=BPXBATCH
//STDOUT    DD SYSOUT=*
//STDERR    DD SYSOUT=*
//SYSOUT    DD SYSOUT=*
//SYSPRINT  DD SYSOUT=*
//SYMBOLS   DD SYSOUT=*
//STDPARM   DD *,SYMBOLS=(JCLONLY)
sh cat > /pwd.sh   << EOF1
echo ''
EOF1
sh cat > /sftp1.sh << EOF2
export DISPLAY=FOO
export SSH_ASKPASS=/pwd.sh
#--- Now run the sftp command
sftp -vv  -F /tmp/ssh.cfg -b /tmp/sf.cmd $1@$2
EOF2
sh cat > /sf.cmd << EOF3
# -- 1. Change to the directory for dept upload files
cd Dept_files_XX
# -- 2. Type of file transfer - ascii or binary

# -- 3. Download the file from the server
get 
# -- 4. Copy the file from the unix HFS to z/OS
!cp  "//'$'"
# -- 5. Remove the intermediate work files from unix HFS
!rm 
!rm pwd.sh
!rm sf.cmd
!rm sftp1.sh
EOF3
sh cat > /ssh.cfg << EOF4
Host my.company.sensitive.downloads
Port 22
User @my.company.sensitive.downloads
BatchMode no
StrictHostKeyChecking no
PasswordAuthentication yes
PubkeyAuthentication no
IdentityFile /dev/null
EOF4
sh cd 
sh /tmp/sftp1.sh  
/*

I read somewhere that every command in STDPARM needs a semi-colon at the 
end, and wonder if that is my problem--where would I put the s-colon on 
these redirected input commands? Or is there a better way to handle all 
these lines instream? I would like to keep it simple and in one JCL 
step, as the user base is not very JCL fluent. Here, JCL DD * cannot be 
used in BPXBATCH, as far as I can tell.


Also, before you ask, because of the highly sensitive nature of this 
server, the passwords are changed at a very high frequency, and they 
elected to use user/password authentication as keys do not allow the 
time-restricted access they need.


Thanks for your advice!
Billy


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Passing user/pw in to BPXBATCH SFTP

2021-10-09 Thread Billy Ashton
Well, when you are working in JCL, the line is 72/80 bytes for most 
libraries. So then the question is, how do you continue the command to a 
second or third line in these standard JCL libraries?

Billy

What Line limit are you dealing with?  72 or larger?


With BPXBATCH STDPARM, the limit is not 72, nor 100, but 32767.

-- gil

--
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


Passing user/pw in to BPXBATCH SFTP

2021-10-08 Thread Billy Ashton
Hi all! I see we have been talking some about FTPS, so now I want to 
spin the letters around for SFTP with an easy question-I hope!


Does anyone have a batch job/JCL that they use for SFTP that hides a 
user/password? I have looked for some hours at Google, and everything I 
see has the user and password in clear text. I am looking for something 
like the NETRC file, or some other method you folks use for running SFTP 
in BPXBATCH.


Also, I could be running up against the line limit for a single line 
SFTP command with my different options (I am specifying particular 
ciphers), and wonder if there is a way to make SFTP a multi-line command.


Thanks for all your help!
Billy

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Spool entire job to a file?

2021-08-19 Thread Billy Ashton

Sure...I will try to copy it out tomorrow for you...

kekronbekron wrote on 8/18/2021 23:15:

If you don't mind, can you show us how.

- KB

‐‐‐ Original Message ‐‐‐

On Thursday, August 19th, 2021 at 5:33 AM, Billy Ashton 
 wrote:


I found a way to call the Sysview batch processing program from my JCL,

and I can save the whole job as I wanted.

Thanks to everyone for your suggestions--I really like the way this

group thinks out of the box!

Billy

Billy Ashton wrote on 8/18/2021 13:56:


Thanks, Lizette! I will give this a try.

Billy

Lizette Koehler wrote:


Go to the internet and look for John McKown's JES2DISK in a GIT Hub

It will do what you want and it is free

Lizette

-Original Message-

From: IBM Mainframe Discussion List IBM-MAIN@LISTSERV.UA.EDU On

Behalf Of Billy Ashton

Sent: Wednesday, August 18, 2021 6:47 AM

To: IBM-MAIN@LISTSERV.UA.EDU

Subject: Spool entire job to a file?

Hi all...I have a need to run a bunch of jobs to do some changes to

files, and we want to preserve the output of all these jobs for

auditors. Is there a way to use an OUTPUT statement or something in

the job itself that can redirect the entire job output to a PDS

member? We don't have a Spooler utility on this LPAR, so I am trying

to find an easy way to capture these jobs.

TIA!

Billy

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



--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Spool entire job to a file?

2021-08-18 Thread Billy Ashton
I found a way to call the Sysview batch processing program from my JCL, 
and I can save the whole job as I wanted.


Thanks to everyone for your suggestions--I really like the way this 
group thinks out of the box!


Billy

Billy Ashton wrote on 8/18/2021 13:56:

Thanks, Lizette! I will give this a try.
Billy

Lizette Koehler wrote:


Go to the internet and look for John McKown's JES2DISK in a GIT Hub

It will do what you want and it is free

Lizette



-Original Message-
From: IBM Mainframe Discussion List  On 
Behalf Of Billy Ashton

Sent: Wednesday, August 18, 2021 6:47 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Spool entire job to a file?

Hi all...I have a need to run a bunch of jobs to do some changes to 
files, and we want to preserve the output of all these jobs for 
auditors. Is there a way to use an OUTPUT statement or something in 
the job itself that can redirect the entire job output to a PDS 
member? We don't have a Spooler utility on this LPAR, so I am trying 
to find an easy way to capture these jobs.

TIA!
Billy

--
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: Spool entire job to a file?

2021-08-18 Thread Billy Ashton

Thanks, Lizette! I will give this a try.
Billy

Lizette Koehler wrote:


Go to the internet and look for John McKown's JES2DISK in a GIT Hub

It will do what you want and it is free

Lizette



-Original Message-
From: IBM Mainframe Discussion List  On 
Behalf Of Billy Ashton

Sent: Wednesday, August 18, 2021 6:47 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Spool entire job to a file?

Hi all...I have a need to run a bunch of jobs to do some changes to 
files, and we want to preserve the output of all these jobs for 
auditors. Is there a way to use an OUTPUT statement or something in 
the job itself that can redirect the entire job output to a PDS 
member? We don't have a Spooler utility on this LPAR, so I am trying 
to find an easy way to capture these jobs.

TIA!
Billy

--
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: Spool entire job to a file?

2021-08-18 Thread Billy Ashton
Actually, we have the CA product Sysview. I am looking to see if there 
is an easy way to do this in there.


James Crudele wrote:


No SDSF?



On Aug 18, 2021, at 09:56, Mike Shorkend  wrote:

Spool Offload?

-Original Message-
From: IBM Mainframe Discussion List  On 
Behalf Of Billy Ashton

Sent: Wednesday, 18 August 2021 16:47
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Spool entire job to a file?

Hi all...I have a need to run a bunch of jobs to do some changes to 
files, and we want to preserve the output of all these jobs for 
auditors. Is there a way to use an OUTPUT statement or something in 
the job itself that can redirect the entire job output to a PDS 
member? We don't have a Spooler utility on this LPAR, so I am trying 
to find an easy way to capture these jobs.

TIA!
Billy

--
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


Spool entire job to a file?

2021-08-18 Thread Billy Ashton
Hi all...I have a need to run a bunch of jobs to do some changes to 
files, and we want to preserve the output of all these jobs for 
auditors. Is there a way to use an OUTPUT statement or something in the 
job itself that can redirect the entire job output to a PDS member? We 
don't have a Spooler utility on this LPAR, so I am trying to find an 
easy way to capture these jobs.

TIA!
Billy

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Identifying PDS/E or PDS in IEBCOPY Unload

2021-07-29 Thread Billy Ashton

Steve, this is from the IEBCOPY doc:
A load module from an unload data set cannot be reloaded into a PDSE as 
a program object. The load modules should be reloaded into a partitioned 
data set and then the partitioned data set should be copied to a PDSE to 
convert the unloaded load module into a program object.


This means if a loadlib PDS is unloaded by IEBCOPY, it cannot be loaded 
directly back into a PDSE as executable modules. I haven't found the doc 
on it, but it is my understanding that a PDS cannot contain program 
objects, so if a PDSE is unloaded by IEBCOPY, it cannot be loaded 
directly back into a PDS.


Or am I misreading something here? Don't forget that I am working only 
with the unloaded file sent to me via FTP, and I do not have the 
original PDS or PDSE available to me to do things like a 3.3 copy.

B

Steve Smith wrote on 7/29/2021 18:31:

Where did you get that notion?  IEBCOPY can indeed load into a dataset of a
different type than the source.  Only exception I know of is from a PDSE
with long aliases.

I'd think your "backup plan" (albeit my first plan), would be to unload the
file into a PDSE and not worry about it until something goes wrong.

sas

On Thu, Jul 29, 2021 at 6:07 PM Billy Ashton  wrote:


These are solution files that the vendor sends to us, so we have no
control of what to do. They tell us that the target is a PDS or PDSE,
but I was just looking for a backup method to try and ensure that what
they say matches the file. As I'm sure you know, if they unloaded a PDS
file with load modules, you can't take the unloaded file and then try to
load it into a PDSE. Likewise, if a PDSE with program objects was
unloaded, you can't load it into a standard PDS.
Billy



--
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: Identifying PDS/E or PDS in IEBCOPY Unload

2021-07-29 Thread Billy Ashton
These are solution files that the vendor sends to us, so we have no 
control of what to do. They tell us that the target is a PDS or PDSE, 
but I was just looking for a backup method to try and ensure that what 
they say matches the file. As I'm sure you know, if they unloaded a PDS 
file with load modules, you can't take the unloaded file and then try to 
load it into a PDSE. Likewise, if a PDSE with program objects was 
unloaded, you can't load it into a standard PDS.

Billy


John Abell wrote on 7/29/2021 15:47:

Why not have them use TSO XMIT files like we do?

John T. Abell   
Tel:800-295-7608Option 4
President
International:  1-416-593-5578  Option 4
E-mail:  john.ab...@intnlsoftwareproducts.com
Fax:800-295-7609

International:  1-416-593-5579


International Software Products
www.ispinfo.com


This email may contain confidential and privileged material for the sole use of 
the intended recipient(s). Any review, use, retention, distribution or 
disclosure by others is strictly prohibited. If you are not the intended
recipient (or authorized to receive on behalf of the named recipient), please 
contact the sender by reply email and delete all copies of this message. 
Also,email is susceptible to data corruption, interception,
tampering, unauthorized amendment and viruses. We only send and receive emails 
on the basis that we are not liable for any such corruption, interception, 
tampering, amendment or viruses or any consequence thereof.



-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Billy Ashton
Sent: Thursday, July 29, 2021 2:37 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Identifying PDS/E or PDS in IEBCOPY Unload

Hey everyone, here is an odd question for y'all.
Is there any way I can tell from an IEBCOPY unload file (that I received from a 
vendor) whether it is an unload of a PDS or an unload of a PDS/E?
Since IEBCOPY is pretty particular about only loading full libraries back to 
the same source type, I was hoping I could look at byte 42 or something like 
that to know that I need to load this to a PDS/E.

Anybody have any hope for me here? (I know I can ask the vendor, but I wanted 
to confirm programmatically if possible).
Billy

--
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


Identifying PDS/E or PDS in IEBCOPY Unload

2021-07-29 Thread Billy Ashton

Hey everyone, here is an odd question for y'all.
Is there any way I can tell from an IEBCOPY unload file (that I received 
from a vendor) whether it is an unload of a PDS or an unload of a PDS/E? 
Since IEBCOPY is pretty particular about only loading full libraries 
back to the same source type, I was hoping I could look at byte 42 or 
something like that to know that I need to load this to a PDS/E.


Anybody have any hope for me here? (I know I can ask the vendor, but I 
wanted to confirm programmatically if possible).

Billy

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Interesting behavior - instream variable sub

2021-07-20 Thread Billy Ashton

Try adding an output report DD statement to your SYSIN, like this:

//SYSUT1 DD *,SYMBOLS=(EXECSYS,SYMRPT)

And then add a DD for SYMRPT
//SYMRPT   DD SYSOUT=G

This report will show the before and after substitution, and may give you a 
clue.

Billy

Ed Jaffe wrote on 7/20/2021 18:30:

On 7/20/2021 2:26 PM, Lund, James E wrote:

Howdy,
Seeing an interesting behavior with instream variable substitution. 
My 10 step test job:


It works great with JES3^plus V1R0 under z/OS 2.4:

FY=2021  SYS=MVS70
FY=2021  SYS=MVS70
FY=2021  SYS=MVS70
FY=2021  SYS=MVS70
FY=2021  SYS=MVS70
FY=2021  SYS=MVS70
FY=2021  SYS=MVS70
FY=2021  SYS=MVS70
FY=2021  SYS=MVS70
FY=2021  SYS=MVS70




--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Allocate DB2 LDS with JCL?

2021-06-17 Thread Billy Ashton
Kolusu, thanks once again! I will give this a try. I assume the Blksize 
of 4K will set the CISize to 4K... And do I need to do anything special 
with ShareOpts?


-- Original Message --
From: "Sri h Kolusu" 
To: IBM-MAIN@listserv.ua.edu
Sent: 6/17/2021 11:59:13 AM
Subject: Re: Allocate DB2 LDS with JCL?


 if anyone has samples to allocate a DB2 VSAM LDS (1) using JCL

parameters

Billy,

JCL supports the parm RECORG and you can define the LDS as follows

//STEP0100 EXEC PGM=IEFBR14
//LDSCRE   DD DSN=,
//DISP=(NEW,CATLG,DELETE),
//SPACE=(CYL,(60,20)),
//RECORG=LS,
//BLKSIZE=4096

Thanks,
Kolusu

--
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


Allocate DB2 LDS with JCL?

2021-06-17 Thread Billy Ashton
Hey everyone, here is a quick question. I am looking at some of our 
utilities and production control tools, and wanted to know if anyone has 
samples to allocate a DB2 VSAM LDS (1) using JCL parameters only - not 
with IDCAMS, or (2) with Rexx? If so, I would appreciate it - I have not 
found anything in manuals for these.


Billy


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: ISPF startup processing

2021-06-09 Thread Billy Ashton
That is correct. We tried the standard PDF and ISPF, and they only 
produced the single session with the primary option menu. Only ISPSTART 
caused the trouble. I haven't looked in the doc to see if there is some 
sort of cozy relationship between ISPSTART and the ZSTART profile 
variable, but it appears so.


Billy
-- Original Message --
From: "Seymour J Metz" 
To: IBM-MAIN@listserv.ua.edu
Sent: 6/9/2021 4:18:18 PM
Subject: Re: ISPF startup processing


PDF and ISPF won't give you the same defaults as ISPSTART, so it definitely 
matters whether the OP types ISPSTART or an alias of ISRPCP.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Itschak Mugzach [0305158ad67d-dmarc-requ...@listserv.ua.edu]
Sent: Wednesday, June 9, 2021 3:11 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: ISPF startup processing

Does this happen with all ispf aliases (PFG ISPF, etc.)? What happens if he
starts ispf with a different APPL name (aka NEWAPPL(xxx))?

ITschak

*| **Itschak Mugzach | Director | SecuriTeam Software **|** IronSphere
Platform* *|* *Information Security Continuous Monitoring for Z/OS, zLinux
and IBM I **|  *

*|* *Email**: i_mugz...@securiteam.co.il **|* *Mob**: +972 522 986404 **|*
*Skype**: ItschakMugzach **|* *Web**: 
http://secure-web.cisco.com/1WThYloW64MqwoxLvZJ2QLiXMP5IPg_g9Ll3M9Xie765QeY9Ql98YJngmux8G3eg1MLOrSQUj7H3Kit0kdW0Mfuked_H38nU5lsVoNdx-AcU8Fpz6tOJKx3vuRczBcRRBXqMPm4Om_W_zo59P75IkEFeUmNwFLjvdc-h_njqUVa1P2XVtOvjwmt_Rgknv74REuAxRbKZkPKMOcav3ZRhy0nTH_gpF048i3-Ls_BUZs_1RqTUTevUcnv0hhHWqsykQ9As7HkoR_THB_x6pYu_PcuhNNskh8bTJxu9NHB8uEQC6u8IiEBnFC2zy-xQE4740Yqz6CXzXXOwWGgAqbNzgyTfbM8X6kZVUxa37jqy1knXhoqpBAXPCFTPAUGZJSdW8v9v1Zmtru3xtGgB3J4i5HNdVfF5FRYalhKU_vU41QU0jP5AMKRl0Q92crOjRHTc8/http%3A%2F%2Fwww.Securiteam.co.il
  **|*





On Wed, Jun 9, 2021 at 9:59 PM Seymour J Metz  wrote:


 ISRPCP calls ISPSTART under the covers; they are both commands and are
 either in the LPA or the link list.


 --
 Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

 
 From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf
 of Billy Ashton [bill00ash...@gmail.com]
 Sent: Wednesday, June 9, 2021 11:13 AM
 To: IBM-MAIN@LISTSERV.UA.EDU
 Subject: Re: ISPF startup processing

 The TSO logon script dumps the user to a READY prompt. Then the user
 selects either a specific application command for special processing or
 ISPSTART to get into ISPF. I don't see a special ISPSTART Clist/Rexx
 program in his Sysproc or Sysexec, so there must be something happening
 with ISPSTART.

 Billy

 -- Original Message --
 From: "Carmen Vitullo" 
 To: IBM-MAIN@listserv.ua.edu
 Sent: 6/9/2021 11:06:01 AM
 Subject: Re: ISPF startup processing

 >Maybe the session manager - startup logon script?
 >
 >I recall when I started at my current job the systems folks that manage
 TPX thought it was a great idea to start a script that puts your session in
 split screen, one screen SDSF, one ISPF edit
 >
 >
 >Carmen
 >
 >
 >On 6/9/2021 9:58 AM, Billy Ashton wrote:
 >>Hello all...I don't know if there is an ISPF list, but hope you can help
 me here.
 >>
 >>I have a user that is having some strange things happening when he logs
 into TSO and goes into ISPF. For example, while everyone else starts ISPF
 and has one window open, this user has 5 split screens defined and named,
 but he has no idea how.
 >>
 >>Can someone tell me if there is a way to trace all the commands that get
 processed when he enters ISPSTART, or is there some magic way to have
 commands like multiple split screens issued automatically?
 >>
 >>Thank you for your kind thoughts!
 >>
 >>Billy
 >>
 >>
 >>--
 >>For IBM-MAIN subscribe / signoff / archive access instructions,
 >>send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
 >>
 >-- *Carmen Vitullo*
 >
 >/“I am not bound to win, but I am bound to be true. I am not bound to
 succeed, but I am bound to live up to what light I have.” ― Abraham Lincoln/
 >
 >
 >--
 >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: ISPF startup processing

2021-06-09 Thread Billy Ashton

Well, Kolusu has hit on the edge of the bullseye!

I searched the ISPPROF file, and found the split and swap command string 
in the ISPPROF member. It took a little magic from an old Rexx I had 
from who knows when (called ProfRead) that showed there is a ZSTART 
variable in ISPPROF. Closer look at the 7.3 function shows that only 
deals with ISRPROF, which is why I could not find it earlier.


We were able to delete this variable from the table, and now we get the 
expected results.


Thank you to all who had some great input  - I now know lots of ways to 
get this result if I need them!


Billy

-- Original Message --
From: "Sri h Kolusu" 
To: IBM-MAIN@listserv.ua.edu
Sent: 6/9/2021 11:55:04 AM
Subject: Re: ISPF startup processing


did not see anything for ZSTART or any variable with a Split or Swap

command.


Billy,

I would then check if the user has any recorded macros that gets executed
at logon.  Does the same thing happen if that user logs on from a different
PC ?

I would also check USERID.ISPF.PROFILE dataset and do a SRCHFOR for
SWAP/SPLIT and see if you can find it loaded in the profile.  The  Member
ISRPROF should shed some light on this

Thanks,
Kolusu

--
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: ISPF startup processing

2021-06-09 Thread Billy Ashton
Hi Carmen, we use TPX here. I had a look at the user's setup, and for 
TSO they have only the APPLID, Modent, and ACL defined - all the rest 
are blank.


Billy

-- Original Message --
From: "Carmen Vitullo" 
To: IBM-MAIN@listserv.ua.edu
Sent: 6/9/2021 11:37:11 AM
Subject: Re: ISPF startup processing


I still think there's a possibility its the session manager, most SM's can 
execute logon scripts, or macro's during signin, what SM do you use?

the macro's or scripts can be user or group specific


Carmen

On 6/9/2021 10:30 AM, Billy Ashton wrote:

Kolusu and Raphael, we checked 7.3, and issued L ZSTART, and in fact, scrolled 
through all 900 variables, and did not see anything for ZSTART or any variable 
with a Split or Swap command.

Next thoughts? This is really a strange puzzle...
Billy

-- Original Message --
From: "Sri h Kolusu" 
To: IBM-MAIN@listserv.ua.edu
Sent: 6/9/2021 11:17:15 AM
Subject: Re: ISPF startup processing


r example, while everyone else starts

 ISPF and has one window open, this user has 5 split screens defined and
 named, but he has no idea how.


Billy,

He probably has ZSTART coded. Check for the variable ZSTART from option 7.3
and it should show you how the 5 split screens are set up

Thanks,
Kolusu

--
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


-- *Carmen Vitullo*

/“I am not bound to win, but I am bound to be true. I am not bound to succeed, 
but I am bound to live up to what light I have.” ― Abraham Lincoln/


--
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: ISPF startup processing

2021-06-09 Thread Billy Ashton
Kolusu and Raphael, we checked 7.3, and issued L ZSTART, and in fact, 
scrolled through all 900 variables, and did not see anything for ZSTART 
or any variable with a Split or Swap command.


Next thoughts? This is really a strange puzzle...
Billy

-- Original Message --
From: "Sri h Kolusu" 
To: IBM-MAIN@listserv.ua.edu
Sent: 6/9/2021 11:17:15 AM
Subject: Re: ISPF startup processing


r example, while everyone else starts

 ISPF and has one window open, this user has 5 split screens defined and
 named, but he has no idea how.


Billy,

He probably has ZSTART coded. Check for the variable ZSTART from option 7.3
and it should show you how the 5 split screens are set up

Thanks,
Kolusu

--
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: ISPF startup processing

2021-06-09 Thread Billy Ashton
Shalom Itschak, as I would have thought, the Command field is empty, 
which is why it sits at the READY prompt.


-- Original Message --
From: "ITschak Mugzach" 
To: IBM-MAIN@listserv.ua.edu
Sent: 6/9/2021 11:12:27 AM
Subject: Re: ISPF startup processing


In the logon screen, what is written in the command field? This is part of
the racf Tao segment and loaded at logon time. Maybe it is
isotope;split;split;split

ITschak

בתאריך יום ד׳, 9 ביוני 2021 ב-17:59 מאת Billy Ashton 
:



 Hello all...I don't know if there is an ISPF list, but hope you can help
 me here.

 I have a user that is having some strange things happening when he logs
 into TSO and goes into ISPF. For example, while everyone else starts
 ISPF and has one window open, this user has 5 split screens defined and
 named, but he has no idea how.

 Can someone tell me if there is a way to trace all the commands that get
 processed when he enters ISPSTART, or is there some magic way to have
 commands like multiple split screens issued automatically?

 Thank you for your kind thoughts!

 Billy


 --
 For IBM-MAIN subscribe / signoff / archive access instructions,
 send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


--
ITschak Mugzach
*|** IronSphere Platform* *|* *Information Security Continuous Monitoring
for z/OS, x/Linux & IBM I **| z/VM coming soon  *

--
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: ISPF startup processing

2021-06-09 Thread Billy Ashton
The TSO logon script dumps the user to a READY prompt. Then the user 
selects either a specific application command for special processing or 
ISPSTART to get into ISPF. I don't see a special ISPSTART Clist/Rexx 
program in his Sysproc or Sysexec, so there must be something happening 
with ISPSTART.


Billy

-- Original Message --
From: "Carmen Vitullo" 
To: IBM-MAIN@listserv.ua.edu
Sent: 6/9/2021 11:06:01 AM
Subject: Re: ISPF startup processing


Maybe the session manager - startup logon script?

I recall when I started at my current job the systems folks that manage TPX 
thought it was a great idea to start a script that puts your session in split 
screen, one screen SDSF, one ISPF edit


Carmen


On 6/9/2021 9:58 AM, Billy Ashton wrote:

Hello all...I don't know if there is an ISPF list, but hope you can help me 
here.

I have a user that is having some strange things happening when he logs into 
TSO and goes into ISPF. For example, while everyone else starts ISPF and has 
one window open, this user has 5 split screens defined and named, but he has no 
idea how.

Can someone tell me if there is a way to trace all the commands that get 
processed when he enters ISPSTART, or is there some magic way to have commands 
like multiple split screens issued automatically?

Thank you for your kind thoughts!

Billy


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


-- *Carmen Vitullo*

/“I am not bound to win, but I am bound to be true. I am not bound to succeed, 
but I am bound to live up to what light I have.” ― Abraham Lincoln/


--
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


ISPF startup processing

2021-06-09 Thread Billy Ashton
Hello all...I don't know if there is an ISPF list, but hope you can help 
me here.


I have a user that is having some strange things happening when he logs 
into TSO and goes into ISPF. For example, while everyone else starts 
ISPF and has one window open, this user has 5 split screens defined and 
named, but he has no idea how.


Can someone tell me if there is a way to trace all the commands that get 
processed when he enters ISPSTART, or is there some magic way to have 
commands like multiple split screens issued automatically?


Thank you for your kind thoughts!

Billy


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: 3270 emulator / telnet with encryption

2021-05-05 Thread Billy Ashton

I know that QWS (Jolly Giant software) has a QWS 3270 Secure product.

-- Original Message --
From: "Bill Giannelli" 
To: IBM-MAIN@listserv.ua.edu
Sent: 5/5/2021 6:14:43 AM
Subject: 3270 emulator / telnet with encryption


Our network security group (with no mainframe knowledge) is complaining about 
the use of telnet for mainframe connections as they say it is not encrypted. We 
use attachmate and HOD. Are there any 3270 emulators that also do encryption?
thanks
Bill

--
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: Datacentre Rack power clarification

2021-05-05 Thread Billy Ashton
You also might need to consider if you have redundant power supplies or 
redundant/diverse power sources. There will not be a single definition 
of power consumption based on the number of units or even the number of 
devices. A 12U rack used as a patch panel will have no consumption, but 
a 12u UPS rack will have much more.


-- Original Message --
From: "Seymour J Metz" 
To: IBM-MAIN@listserv.ua.edu
Sent: 5/5/2021 6:55:48 AM
Subject: Re: Datacentre Rack power clarification


That depends on the use profile. What equipment is in continuous use and what 
is standby. Are you counting power for cooling?


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
Peter [dbajava...@gmail.com]
Sent: Wednesday, May 5, 2021 2:25 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Datacentre Rack power clarification

Hello

Apology for posting a non mainframe questions here .

Is there a way to determine the total power consumption of rack with 12u as
form factor ?

I am sure some of them would have used a benchmark to design a solution for
any new server coming inside the data center floor.

So any clue or your experience would help me to analyse further.

Peter

--
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


And the survey says...

2021-04-29 Thread Billy Ashton
Does Vista have the ability to only use one taskbar icon, and stack all 
the sessions as tabs within that one instance? I often have a number of 
sessions open, and would rather have one icon than bunches (especially 
since I can use a toolbar button to swap sessions).


Here's hopin'!
Billy

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: And the survey says...

2021-04-28 Thread Billy Ashton
Does Vista have the ability to only use one taskbar icon, and stack all 
the sessions as tabs within that one instance? I often have a number of 
sessions open, and would rather have one icon than bunches (especially 
since I can use a toolbar button to swap sessions).


Here's hopin'!
Billy

-- Original Message --
From: "Jesse 1 Robinson" 
To: IBM-MAIN@listserv.ua.edu
Sent: 4/28/2021 12:11:35 PM
Subject: Re: And the survey says...


I've used only Vista since the day long ago when Tom asked me to try out this 
new app he had written. Even though Attachmate remains the corporate standard 
(with no input from actual mainframe users). I've seen IBMers giving classes 
and demos using Vista.

Interestingly, Tom himself always had Attachmate at the ready on his 
workstation when I couldn't be bothered. His reasoning: since it was the 
corporate standard, he needed to able to handle problem calls.

.
.
J.O.Skip Robinson
Southern California Edison Company
Electric Dragon Team Paddler
SHARE MVS Program Co-Manager
323-715-0595 Mobile
626-543-6132 Office ⇐=== NEW
robin...@sce.com

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Farley, Peter x23353
Sent: Wednesday, April 28, 2021 8:23 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: (External):Re: And the survey says...

*** EXTERNAL EMAIL - Use caution when opening links or attachments ***

The github for pw3270 is here:

https://github.com/PerryWerneck/pw3270

Safer than the government site Radoslaw posted, which my company's net nanny 
software prevented me from accessing because there are certificate problems.

Peter

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Radoslaw Skorupka
Sent: Wednesday, April 28, 2021 11:13 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: And the survey says...

Advertisement:
Apart from x3270 family (wc3270, wx3270...) there is another *free* emulator.
It is pw3270
PW is Perry Werneck.
github.com/PerryWerneck/pw3270
https://urldefense.com/v3/__https://softwarepublico.gov.br/social/pw3270/__;!!Ebr-cpPeAnfNniQ8HSAI-g_K5b7VKg!dpaA7q1qdSGtk8gMhBSNqPc1t_tsI6nwNUdS5YsYYDp7PetWBlyJPreC-fHXsIX6iFJ9nQ$

BTW: The last page is interesting - government official page with free software.

Of course I get 10% of purchase price ;-)

--
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


Anyone have SFTP JCL to share?

2021-04-14 Thread Billy Ashton
Hi everyone! I was just moved to support a CA product (I guess that's 
Broadcom now), and have to send in a sensitive file to one of my support 
cases. The file is pretty large, and the support tech said I have to 
copy it to OMVS to use SFTP for uploading it. I am not sure I have that 
space available on the other side, so I was wondering if anyone here has 
a BPX batch job that will send a file to CA or Broadcom from the z/OS 
file without having to first copy the file to my Unix filesystem.


I hope this is clear, and that someone can help me.

Thanks!
Billy


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


FTP multiple docs to IBM

2021-03-18 Thread Billy Ashton
Hi everyone...I am looking at how we upload our files for vendor support 
tickets, and it seems that every vendor does things differently.


I had read somewhere that there is a program that IBM uses that allows 
customers to upload multiple files at once, including PDS or PDSE files, 
and it handles all the compression and FTP stuff.


Does anyone here know about this, and does it work well? Do you know if 
it would work for other vendors, too?


Thanks!
Billy


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Anyway to save ISRDDN output?

2021-02-17 Thread Billy Ashton

Is there a way to fire off ISRDDN in ISPF batch mode?

Billy

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Using symbolic DD names

2020-12-30 Thread Billy Ashton
Hi Lizette, as I noted originally, the vendor program uses control 
statements, where certain values are passed in on the control statement. 
These user-defined values drive the DD statement it is looking for. In 
my example,  the table number is being passed in on a SYSIN control 
statement (it could be with the other parameters, like ,TBL=01,...) 
, and so the program knows it needs to find DD statement TB01DAT. Since 
it is vendor code, I don't know what the do internally, but I suspect 
with assembler, you can build your own DD statement on the fly before 
you try to open a file.

Billy

-- Original Message --
From: "Lizette Koehler" 
To: IBM-MAIN@listserv.ua.edu
Sent: 12/30/2020 3:55:32 PM
Subject: Re: Using symbolic DD names


So the question becomes, can your Program handle a constantly changing DD Name?

What would be the benefit from doing this?

In Cobol you predefine (If I am allowed to use this word) the IO Section.  
Which specifies the DD name - consider that hard coded.

I am not aware of any language construct that allows for a DD name to be 
randomly selected in a program. On z/OS

I would be interested if anyone has an example.

And yes Scheduling products can supply symbolics where native z/OS might now.

Could you provide an example where your program when it executes would use a 
random DD name in JCL?

Lizette



-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Billy Ashton
Sent: Wednesday, December 30, 2020 12:22 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Using symbolic DD names

Hey folks! I have a vendor product program that looks for different DDnames 
depending on the control statements passed into the program. Is there any way to 
define a dynamic DD statement using JCL symbols? For example, I would love to have 
//TB to correspond to TB01DAT, TB14DAT, or TB67DAT if I use SET TNO=01 
or 14 or 67.

Is such a thing possible? I tried using an instream proc definition and INCLUDE 
MEMBER= that proc name, but that failed, and of course, I tried the straight up 
JCL as above, and it failed.

What do you all think?

Billy


--
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


Using symbolic DD names

2020-12-30 Thread Billy Ashton
Hey folks! I have a vendor product program that looks for different 
DDnames depending on the control statements passed into the program. Is 
there any way to define a dynamic DD statement using JCL symbols? For 
example, I would love to have //TB to correspond to TB01DAT, 
TB14DAT, or TB67DAT if I use SET TNO=01 or 14 or 67.


Is such a thing possible? I tried using an instream proc definition and 
INCLUDE MEMBER= that proc name, but that failed, and of course, I tried 
the straight up JCL as above, and it failed.


What do you all think?

Billy


--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


  1   2   >