Re: [CMS-PIPELINES] pervasive plumbing and past projects

2024-06-10 Thread Kris Buelens
I've got 2 versions on Windows

   - The one I often use (mainly in my REXX code to maintain my photo's):

   This document describes OS/2 Pipelines version 0.99 for OS/2 and version
   1.00.52 for Windows and AIX.

   The OS/2 version is available as OS2PIPE package on the OS2TOOLS
   repository.
   The (beta) Windows or AIX versions are requestable from the author. On a
   VM/CMS command line enter:

   REQUEST WINPIPE FROM FDB AT NLVM

   or:

   REQUEST AIXPIPE FROM FDB AT NLVM

   The initial versions of the OS/2 Pipelines program and this
   documentation (up to version 0.53) were written by Mark VanTassel during
   1993 and 1994. Since Mark has left IBM (ISSC) in September 1994, ownership
   of the OS2PIPE package has been transferred to Frans de Bruijn (FDB at
   IBMNL or *f...@nl.ibm.com * ).

   Ronald van der Laan wrote the first version of the BUFFER, COLLATE,
   LOOKUP, and SORT stages.
   - As it misses quite some stages that I was used to on z/VM, and as it
   had some bugs in handling FIELDSEP/WORDSEP and SUBSTR, I looked for another
   implementation and found "PCPIPES" or "PC-PIPES" by James Johnson.  Back in
   2011.  It was more complete, but much slower.  I had quite some contacts
   with the author at  jamesjohn...@centurylink.net As I had too many
   problems with accented characters when reading files and passing then
   between REXX and PC-Pipes, I gave up.

So, I still use WINPIPE on my Windows 10.  Incomplete, but the basics work
perfectly well.  Except for VARLOAD, that causes REXX to abend. So I coded
around using STEM

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op ma 10 jun 2024 om 01:46 schreef Rick Troth :

> hello gang --
>
> I've been trying to gather a list of pipelines implementations apart
> from CMS/TSO.
> Specifically, I know about NetRexx Java Pipes, and I think there was
> another Java implementation. I also found an implementation in Swift.
> Are there others? This is my current question.
>
> I'm scheduled to present at the VM Workshop on "Pervasive Plumbing -
> Pipelines for Everyone". My own attempt has finally borne fruit. So many
> stages to write. So little time. I want to make sure that the talk
> covers sufficient ground and gives credit to the other developers.
>
> thanks!
>
>
> --
> -- R; <><
>


Re: [CMS-PIPELINES] >SFS ERROR 1180

2023-12-14 Thread Kris Buelens
If the webserver does not depend on accessed SFS directories you could also
consider using DMSPURWU to break all connections with SFS before you issue
Diag D4, then >SFS will connect with the alternate userid, and after Diag
D4 reset, issue DMSPURWU again.
I'll send you my SFSDISC EXEC

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op do 14 dec 2023 om 15:40 schreef Donald Russell :

> Is making the web servers sfs admins the correct solution? I can do that
> and “query auth” to limit access as needed.
>
> The application will still use diag d4 to influence cp link and the spool
> orig id when it sends files tother users.  (This application links to other
> mdisks and I need that to be based on the user who logged into the web
> server, and it sends files to other users. I want those to show they came
> from the user that logged in instead of the web server itself.
>
> That part all works fine, just the sfs part was causing me a bit of grief.
> Now I have a solution.
>
> Thank you.
>
> On Thu, Dec 14, 2023 at 01:30 Rob van der Heij  wrote:
>
> > On Thu, 14 Dec 2023 at 08:45, Kris Buelens 
> wrote:
> >
> > > I have some relatively vague memories that someone with SFS admin
> rights
> > > could connect to SFS using different authorities concurrently.
> > > Thinking a bit deeper: the FTP server uses this during an FTP PUT or
> GET
> > > with SFS. I don't think it uses Diag D4 to start talking to SFS.
> > >
> >
> > Correct. You must enroll FTPSERVE as ADMIN to FTP to SFS directories. I
> > believe it's just restraining itself and checking SFS grants to restrict
> > the user.
> >
> > Rob
> >
>


Re: [CMS-PIPELINES] >SFS ERROR 1180

2023-12-13 Thread Kris Buelens
I have some relatively vague memories that someone with SFS admin rights
could connect to SFS using different authorities concurrently.
Thinking a bit deeper: the FTP server uses this during an FTP PUT or GET
with SFS. I don't think it uses Diag D4 to start talking to SFS.

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op do 14 dec 2023 om 08:26 schreef Rob van der Heij :

> On Thu, 14 Dec 2023 at 05:40, Donald Russell 
> wrote:
>
> >
> > Thanks Rob,
> > Since >SFS uses a private work unit by default, doesn’t that mean it
> gets a
> > new work unit before connecting to the sfs server? Diag d4 is done before
> > the pipe command, so I’m expecting the new connection to appear to
> initiate
> > from the altuser id.
> >
>
> And that means you specify the file such that the nose driver knows to use
> >sfs and not go through the mini disk simulation on accessed SFS
> directories...
>
> >
> > Am I misunderstanding what PIPE AHELP >SFS is telling me? What
> > does”PRIVATE” mean in this context?
> >
>
> It means >sfs allocates a work unit specifically for that file, so nothing
> else in the virtual machine observes the effect until the stage ends.
>
> I know CMS caches persistent IUCV connections to the SFS server. I don't
> recall playing with  D4 like this. I don't know whether CMS keeps track of
> the identity while the IUCV connection was established, and knows to expire
> that when things change.
> You normally do the D4 very early in the life of the virtual machine, so
> you can reason about the possible leakage of data between the  two
> identities. I know from experience that once you try to aggregate rights
> from different identities, things get very complicated. You could for
> example link to a disk as user A and then identify as B and link another
> disk. When you then run an application associated with A, you do that with
> the privilege of user B.
>
> Rob
>


Re: [CMS-PIPELINES] IF testing characters

2022-11-28 Thread Kris Buelens
Thanks John for this education

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op ma 28 nov. 2022 om 13:45 schreef John P. Hartmann :

> On 11/28/22 11:10, Kris Buelens wrote:
> > I repeat that #1 (or in France  £1) is a counter, so no spaces by
> > definition.
>
> This is no longer the case.
>
> Counters can now contain non-numeric strings as well as proper numbers.
> Perhaps #1 should be called a variable, just as Alain does.
>
> The initial value of a counter is nothing, which will be either the null
> string or zero, depending on to what the counter is coerced in an
> expression.
>
> set #1:=""
>
> causes the counter to contain a null string, which converts to 0 for
> numerics (perhaps it shouldn't).  This also applies when assigning a
> null value from a column range that is not present in the record.
>


Re: [CMS-PIPELINES] IF testing characters

2022-11-28 Thread Kris Buelens
I repeat that #1 (or in France  £1) is a counter, so no spaces by
definition.
I guess that space(#1) converts it to a string and so you can compare to
identifier "a", what is a string

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op ma 28 nov. 2022 om 10:07 schreef Alain Benvéniste :

> Yes John ^ is the good character.
> There is something i still don’t understand :
> If i code
> If £1==a
> and a is equal to b3339
> b for blank, the if is not honored
> If I use a
> If space(£1)==space(a) it works.
> It could mean that when i do a set £1:=a the blank is removed… ?
>
> Resiliency Services on Z Mainframe
> alain.benveni...@kyndryl.com
>
> > Le 27 nov. 2022 à 14:59, John P. Hartmann  a écrit :
> >
> > On 11/27/22 13:51, a.benveni...@free.fr wrote:
> >> Sorry John to come back but,
> >
> > There is no /== operator in specs.
> >
> > For me, ^== works as the not exactly equal operator because my terminal
> > emulator maps ^ to not; perhaps it works for you too.  Otherwise you
> > need to find the not character on your terminal, or turn the expression
> > around to use ==.
> >
> > (/= is divide counter by the right-hand expression assignment operator;
> > it is not a binary logical operator.  See pp 737)
>


Re: [CMS-PIPELINES] IF testing characters

2022-11-26 Thread Kris Buelens
This doesn't read very well here
   "  set £1=''",
I guess  £1 stands for #1 outside the UK, and I don't understand what these
 are supposed to do
Ignoring  it would mean you try to assign counter 1 to an empty
string.  It are counters, hence only accept numeric values

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op za 26 nov. 2022 om 11:00 schreef Alain Benveniste :

> Hi,
>
> I try to compare characters fields (a, b and c) in the if using this way
> and the  concatenation.
> Both cases send me a error msg.
> The sets seem ok, but when testing them in the if it looks to me I use a
> wrong syntax...
>
> "! SPECs",
> "  a: 54.5 .",
> "  b: 67.10 .",
> "  c: 85.4 .",
> "  set £1=''",
> "  set £2=''",
> "  set £3=''",
> "  set £4:=0",
> "  set £5:=0",
> "  if (£1=a & £2=b & £3=c) then",
> " set £4+=1",
> " set £5:=1",
> "  else",
> " set £4:=1",
> " set £5+=1",
> " set £1=a",
> " set £2=b",
> " set £3=c",
> "  endif",
> "  1-* 1",
> "  print £4 picture 9 nextword",
> "  print £5 picture 9 next",
>
> Alain
>
>


Re: [CMS-PIPELINES] A TIME command?

2022-10-20 Thread Kris Buelens
I just found that I placed my BENCH (benchmark) execs on the VM download
library.  I wrote that to compare CPU consumption of execs/commands.
https://www.vm.ibm.com/download/packages/descript.cgi?BENCH

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op do 20 okt. 2022 om 21:29 schreef Rob van der Heij :

> On Thu, 20 Oct 2022 at 21:22, Rob van der Heij  wrote:
>
> > On Thu, 20 Oct 2022 at 21:04, Rob van der Heij 
> wrote:
> >
> >> Just a small EXEC that I did a while ago. Let me find a copy when I see
> >> my 3270
> >>
> >
> > If you can do without much explanatory comments:
> >
> https://gist.githubusercontent.com/rvdheij/97e7de1ecc39a40b86db7281bff9cee7
> >
> >
>
> PS I also have an INDUSER REXX from that same style. It observes the
> change VTIME and TTIME of a specified other user's VMDBK (class E)  when
> records are passing, and prefixes the record with the time spent since the
> previous record passed. A popular one is to feed it with  literal +0.1 |
> dup * | delay   to get observations per 100 ms, but I also used it when
> studying another virtual machine via SCIF and prefixed each output line
> with the resources spent to produce it...
> https://gist.githubusercontent.com/rvdheij/c9587a85467fb56acc446a7bd899bfb9
>


Re: [CMS-PIPELINES] Split a file with varying output names

2021-10-12 Thread Kris Buelens
My PUTFILES is on the VM download library, and us indeed meant to perform
this kind of job.

Op di 12 okt. 2021 15:27 schreef Rich Smrcina :

> Great! Thanks, Rob.
>
> On Tue, Oct 12, 2021 at 8:05 AM Rob van der Heij 
> wrote:
>
> > I think Kris once did a PUTFILES REXX that implemented one or two of the
> > common techniques.
> >
> > When your records are sorted on output file, you can do a sipping
> pipeline
> > that takes all records for the same output in each sip. Something like
> >   do forever
> >   'peekto line'
> >   parse var line tag .
> >   'callpipe *: | pick to w1 /== /'tag'/ | > ' tag 'output a'
> >end
> >
> > When the records are not sorted (or can't be sorted because you are
> > processing live data) you could try appending to files, but it gets nasty
> > to remember which ones to erase first. So the popular one in that case is
> > to make a recursive pipeline that diverts records for each output file.
> > Like this:
> >
> >do forever
> >   'peekto line'
> >   parse var line name .
> >   'addpipe (end \) *,input: | p: pick w1 == /'name'/ | >' name
> 'output
> > a ',
> >  '\ p: | *.input:'
> > end
> >
> > Sir Rob the Plumber
> >
> > On Tue, 12 Oct 2021 at 14:56, Rich Smrcina  wrote:
> >
> > > Is there a way to split a file into multiple files with the output
> names
> > > being a part of the input?
> > >
> > > Given something like this:
> > >
> > > 1 2 name1 3 4
> > > 3 4 name2 4 5
> > > 4 5 name2 5 6
> > > 5 6 name3 6 7
> > >
> > > Ignore the numbers, they just represent other fields. I would like to
> > split
> > > that into files with the names of the third field. I won't necessarily
> > know
> > > the values, so a large 'if' type structure won't work.
> > >
> > > Thanks!
> > >
> > > --
> > > Rich Smrcina
> > >
> >
>
>
> --
> Rich Smrcina
>


Re: [CMS-PIPELINES] FPL120E in PUTFILES

2021-03-03 Thread Kris Buelens
My very first PUTFILES was indeed simple: an ADDPIPE for each fileid
encountered.  Worked great until a compile job sent from z/OS contained
quite a lot of files (180 I read in PUTFILES help file).  Solved by the
GROUPED or BATCHED options, where PUTFIES then uses CALLPIPE to process one
file per iteration.
Later I added full SFS support with workunits after a problem that I don't
remember at this time.

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op wo 3 mrt. 2021 om 15:41 schreef van Sleeuwen, Berry <
berry.vansleeu...@atos.net>:

> Hi All,
>
> Thanks for the hints.
>
> I don't expect there are too many files. In this case, there are 6 files
> created in this stage. Given this remark, I expect I shouldn't merge all
> streams into one PUTFILES, the number of files will then go above 100. The
> machine where I notice the error currently produces 112 files but in other
> VM's that will be a lot more, those may easily go above 300 or 400 files in
> total.
>
> The PIPELINE has input data that is used to create various files. So the
> data is copied into a number of streams. Then each stream creates
> outputfiles. I don't expect one stream would prefix the data with a
> filename that should be have been used in another stream.
>
> Indeed, BATCHED would be an option. The data should arrive in order so
> when the fileid changes that would normally be the end of the data for that
> file anyway.
>
> An EXEC collects CP MONITOR data that is processed each cycle (1 minute)
> by a REXX stage that contains the PUTFILES stages. So the EXEC is a never
> ending PIPE, the CALLPIPE within the REXX stage ends after each cycle. That
> should close all files after each cycle.
>
> I noticed the error in a file with one single line for each file, but
> other PUTFILE stages have multiple lines for each file. So DISKSLOW might
> be an option for this stage but not for others. I guess BATCHED would be
> the better option for that.
>
> I noticed the error yesterday while testing the process. The output was
> written into a temp FBA vdisk at that time. The monitor machine is an SFS
> based machine, it writes data into the A disk, but that's actually the
> users SFS root directory. So for the collector machine >SFS would indeed be
> an option.
>
>
> Met vriendelijke groet/With kind regards/Mit freundlichen Grüßen,
> Berry van Sleeuwen
> Flight Forum 3000 5657 EW Eindhoven
>
> -Original Message-
> From: CMSTSO Pipelines Discussion List  On
> Behalf Of Kris Buelens
> Sent: Wednesday, 3 March 2021 13:30
> To: CMS-PIPELINES@VM.MARIST.EDU
> Subject: Re: [CMS-PIPELINES] FPL120E in PUTFILES
>
> Caution! External email. Do not open attachments or click links, unless
> this email comes from a known sender and you know the content is safe.
>
> Hello Berry,
>
> Have you looked into my documentation (that is the HELP file).
> I remember having had problems with too many open files and/or ???.  I
> think I created two options to avoid problems: BATCHED, that closes the
> file when I detect a new fileID starts being used.  Later I had problems
> with commits when the target is SFS.
> But 2010 is long ago for my memory and without day to day work with z/VM.
>
> At the other hand: if you have two or more PUTFILES stages that try to
> write to the same file, sure that you'll encounter this problem.  As usual:
> the different stages don't talk to each-other, so one PUTFILES isn't aware
> of what another PUTFILES tries to do.  And, if you have a never ending
> PIPE: when will PUTFILES close the files it writes to?  Maybe only when
> they the PUTFILES stages reach end-of-file.  With BATCHED they get closed
> when the fileid changes.   But, if there's no new record arriving, it can
> take ages
>
> Kris Buelens,
>  --- VM/VSE consultant, Belgium ---
> ---
>
>
> Op wo 3 mrt. 2021 om 12:43 schreef van Sleeuwen, Berry <
> berry.vansleeu...@atos.net>:
>
> > Hi All,
> >
> > I have a REXX with a number of PUTFILES stages. Each of them will save
> > a report in a group of files. The REXX is executed every minute.
> >
> > Two times today I got an FPL120E in one of the PUTFILES stages. It
> > looks like the error only appears in the GSTVM000 files, or at least
> > the other PUTFILES stages didn't have an error (yet).
> >
> > FPLDSR120E Return code 16 from parameter list Vblockw GSTVM000 TCPIP
> > A1 FPLMSG003I ... Issued from stage 2 of pipeline 2 FPLMSG001I ...
> > Running "> GSTVM000 TCPIP A"
> > FPLDSR120E Re

Re: [CMS-PIPELINES] FPL120E in PUTFILES

2021-03-03 Thread Kris Buelens
Hello Berry,

Have you looked into my documentation (that is the HELP file).
I remember having had problems with too many open files and/or ???.  I
think I created two options to avoid problems: BATCHED, that closes the
file when I detect a new fileID starts being used.  Later I had problems
with commits when the target is SFS.
But 2010 is long ago for my memory and without day to day work with z/VM.

At the other hand: if you have two or more PUTFILES stages that try to
write to the same file, sure that you'll encounter this problem.  As usual:
the different stages don't talk to each-other, so one PUTFILES isn't aware
of what another PUTFILES tries to do.  And, if you have a never ending
PIPE: when will PUTFILES close the files it writes to?  Maybe only when
they the PUTFILES stages reach end-of-file.  With BATCHED they get closed
when the fileid changes.   But, if there's no new record arriving, it can
take ages

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op wo 3 mrt. 2021 om 12:43 schreef van Sleeuwen, Berry <
berry.vansleeu...@atos.net>:

> Hi All,
>
> I have a REXX with a number of PUTFILES stages. Each of them will save a
> report in a group of files. The REXX is executed every minute.
>
> Two times today I got an FPL120E in one of the PUTFILES stages. It looks
> like the error only appears in the GSTVM000 files, or at least the other
> PUTFILES stages didn’t have an error (yet).
>
> FPLDSR120E Return code 16 from parameter list Vblockw GSTVM000 TCPIP A1
> FPLMSG003I ... Issued from stage 2 of pipeline 2
> FPLMSG001I ... Running "> GSTVM000 TCPIP A"
> FPLDSR120E Return code 16 from parameter list Vblockw GSTVM000 HIDRO A1
> FPLMSG003I ... Issued from stage 2 of pipeline 2
> FPLMSG001I ... Running "> GSTVM000 HIDRO A"
> 
>
> According to the docs a return code 16 suggests that PUTFILES attempts to
> write to the same file. But as far as I can find there shouldn’t be a
> duplicate file. The input for this stage actually contains just one line
> for each file so PUTFILES only needs to write 1 record to each file in each
> execution run.
>
> Last night I ran the code with traces for a couple of hours, and obviously
> Murphy made sure there was no error during that time.
>
> What could be the reason for this error? Is there another reason other
> than the “duplicate file” in this case?
>
> And generally, I run a number of PUTFILES stages in the REXX for each
> report. Is that accepted or should I redirect all data to one single
> PUTFILES stage?
>
> Met vriendelijke groet/With kind regards/Mit freundlichen Grüßen,
> Berry van Sleeuwen
> Flight Forum 3000 5657 EW Eindhoven
> This e-mail and the documents attached are confidential and intended
> solely for the addressee; it may also be privileged. If you receive this
> e-mail in error, please notify the sender immediately and destroy it. As
> its integrity cannot be secured on the Internet, Atos’ liability cannot be
> triggered for the message content. Although the sender endeavours to
> maintain a computer virus-free network, the sender does not warrant that
> this transmission is virus-free and will not be liable for any damages
> resulting from any virus transmitted. On all offers and agreements under
> which Atos Nederland B.V. supplies goods and/or services of whatever
> nature, the Terms of Delivery from Atos Nederland B.V. exclusively apply.
> The Terms of Delivery shall be promptly submitted to you on your request.
>


Re: [CMS-PIPELINES] specifying an arbitrary string

2021-02-16 Thread Kris Buelens
What I did most of the time was convert to hex
  'PIPE literal X' || c2x(blah) '|..

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op wo 17 feb. 2021 om 00:26 schreef Glenn Knickerbocker :

> This is a frequent puzzle I shake my head at solving a different way
> every time:  I need to pass a string to a pipeline stage, and it might
> have pipeline characters in it, and it might be null, it might or might
> not need delimiting, and it might or might not be a required argument.
>
>   Optional delimited string:
> If str ¬== '' Then str = 'x' || str
> 'PIPE' blah '| strliteral' str '|' etc.
>
>   Required delimited string:
> If str == '' Then str = "''"
> Else str = 'x' || str
> 'PIPE' blah '| specs' str etc.
>
>   Literal string:
> 'PIPE var str | escape ,||/, | str'
> 'PIPE (end /)' blah '| literal' str'|' etc.
>
> When I'm just trying to pass the argument intact from an exec to a
> pipeline or from one stage to another, it's particularly unsatisfying to
> wind up sticking it in a variable first to do work on it.  Have I
> overlooked something to make all this unnecessary?
>
> ¬R
>


Re: [CMS-PIPELINES] punch, rscs, reader and deblock

2021-01-17 Thread Kris Buelens
Yes indeed, a bit more complicated than something like
  !T: take last!Strip Trailing!F: fanin 1 0 !
and that's what I wanted to say.

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op zo 17 jan. 2021 om 15:09 schreef Rob van der Heij :

> On Sun, 17 Jan 2021 at 14:48, Kris Buelens  wrote:
>
> > Probably there still is a chance that DEBLOCK CMS will complain when the
> > last meaningful record had a trailing blank.
> >
>
> Apparently the halfword 0 is missing, or there wouldn’t be a problem. You
> could strip trailing blanks from the last record, remember the length, pad
> with x00 and deblock, then fix the trailing spaces you replaced by x00
>
> >
> >
>


Re: [CMS-PIPELINES] punch, rscs, reader and deblock

2021-01-17 Thread Kris Buelens
Probably there still is a chance that DEBLOCK CMS will complain when the
last meaningful record had a trailing blank.

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op zo 17 jan. 2021 om 12:37 schreef Alain Benvéniste :

> I fall into the case where strip trailing the last record only, resolved
> the problem.
>
> Thanks
>
> Le 17/01/2021 06:53, « CMSTSO Pipelines Discussion List au nom de Kris
> Buelens » 
> a écrit :
>
> If you can't change it, I'd then perform a STRIP TRAILING only on the
> last
> record when receiving the punched file.
>
> Kris Buelens,
>  --- VM/VSE consultant, Belgium ---
> ---
>
>
> Op za 16 jan. 2021 om 18:13 schreef Alain Benvéniste <
> a.benveni...@free.fr>:
>
> > Yes. The fact is that i am in the situation where i don’t have the
> hand on
> > the last record : it is a one by one punch record. Records are
> cumulated,
> > then the close punch happens.
> >
> > Envoyé de mon iPhone
> >
> > > Le 16 janv. 2021 à 16:41, Glenn Knickerbocker  a
> > écrit :
> > >
> > > On Sat, 16 Jan 2021 11:31:19 +0100, Alain Benvéniste wrote:
> > >> Yes of course, and you put me on the way to test with a strip
> trailing
> > >> and it works !
> > >
> > > As long as your original file doesn't happen to contain any blanks
> that
> > > happen to fall on the last byte of a blocked record!
> > >
> > > I'm still mystified by the difference you see after sending the
> file over
> > > RSCS.  Is the last record short on the original system, and padded
> with
> > > blanks when it's copied by RSCS?  x4040 would be taken as the
> length of
> > > the next file record, explaining why it can't find the end.
> > >
> > > The notes for BLOCK CMS include this instruction:  "use pad to pad
> the
> > > last block with zeros as it is in the file system."  So this
> should give
> > > you a valid file:
> > >
> > >  "pipe strliteral /abc/ ! block 80 cms ! pad 80 00 ! punch"
> > >
> > > ¬R
> >
>


Re: [CMS-PIPELINES] punch, rscs, reader and deblock

2021-01-16 Thread Kris Buelens
If you can't change it, I'd then perform a STRIP TRAILING only on the last
record when receiving the punched file.

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op za 16 jan. 2021 om 18:13 schreef Alain Benvéniste :

> Yes. The fact is that i am in the situation where i don’t have the hand on
> the last record : it is a one by one punch record. Records are cumulated,
> then the close punch happens.
>
> Envoyé de mon iPhone
>
> > Le 16 janv. 2021 à 16:41, Glenn Knickerbocker  a
> écrit :
> >
> > On Sat, 16 Jan 2021 11:31:19 +0100, Alain Benvéniste wrote:
> >> Yes of course, and you put me on the way to test with a strip trailing
> >> and it works !
> >
> > As long as your original file doesn't happen to contain any blanks that
> > happen to fall on the last byte of a blocked record!
> >
> > I'm still mystified by the difference you see after sending the file over
> > RSCS.  Is the last record short on the original system, and padded with
> > blanks when it's copied by RSCS?  x4040 would be taken as the length of
> > the next file record, explaining why it can't find the end.
> >
> > The notes for BLOCK CMS include this instruction:  "use pad to pad the
> > last block with zeros as it is in the file system."  So this should give
> > you a valid file:
> >
> >  "pipe strliteral /abc/ ! block 80 cms ! pad 80 00 ! punch"
> >
> > ¬R
>


Re: [CMS-PIPELINES] punch, rscs, reader and deblock

2021-01-16 Thread Kris Buelens
>   I just save the file and quit it, no change done.
It is a RECFM V file, so when you let XEDIT rewrite the file, it will
remove all trailing blanks.
So, you didn't change the file, but XEDIT did.

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op vr 15 jan. 2021 om 20:47 schreef Alain Benvéniste :

> Back with this, there is something I don't understand.
> I have a file with 4 records received in my reader, sent with a pipe
> literal ... ! block 80 CMS ! punch
> I receive the file with just a pipe reader ! strfind x41 ! substr 2-* !> a
> a a
> Doing a v h 1 2 in xedit I see x'0030' for the 4 records, I just save the
> file and quit it, no change done.
> I run a pipe < a a a ! deblock cms !> a b a.
> It works !
> I find this a bit strange...
>
>
> Le 15/01/2021 14:48, « CMS/TSO Pipelines Discussion List au nom de Rob
> van der Heij »  rvdh...@gmail.com> a écrit :
>
> On Fri, 15 Jan 2021 at 14:13, Alain Benveniste 
> wrote:
>
>
> > When I run it on VM1 with a file coming from VM2, I get a FPLDEB072E
> last
> > record incomplete.
> > Am I in a premature end-of-file like the help says ?
> >
>
> Is there an extra X'03' card in your deck because of RSCS maybe? Get
> the
> full output from READER and study the contents...
>
> Rob
>


Re: [CMS-PIPELINES] Replace single record in file

2020-09-12 Thread Kris Buelens
Wasn't EDF new with VM/SP?
(I remember performance problems with CDF for large RECFM V files in my
first IBM years)

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op za 12 sep. 2020 om 19:07 schreef Alan Altmark :

> The CMS EDF file system is a very lightweight file system that has survived
> 40+ years with this restriction.  (EDF was introduced in SEPP or BSEPP, I
> think.)
>
> Back then VSAM was available to solve more complex data management issues.
> Now, you re-platform.
>
> Regards,
> Alan Altmark
> IBM
>
> > On Sep 12, 2020, at 12:27 PM, Paul Gilmartin 
> wrote:
> >
> > On 2020-09-12, at 06:18:25, Rob van der Heij wrote:
> >>
> >>> On Sat, 12 Sep 2020 at 01:18, Stanislawski, Shawn (National VM
> Capability) <
> >>> shaw...@dxc.com> wrote:
> >>>
> >>> Would be preferable to avoid truncation of a longer new record when
> >>> dealing with recfm=VARIABLE.
> >>> But at this point, it sounds as if there is not an elegant
> resource-light
> >>> method for so doing?
> >>>
> >>
> >> Would you mind to mark the original as "deleted" and append the longer
> >> record to the RECFM V file maybe? But I guess you were going index by
> >> record number rather than a key.
> >>
> > I understand that MDFS indexes blocks (not records) in a tree.
> > I was disappointed that does not support "elegant resource-light"
> > insertion, deletion, and replacement of records.  (Yes, that
> > would require splitting blocks when records are inserted, marking
> > parts of blocks as unused, and balancing the tree for performance.)
> >
> > SFS is merely secret.
> >
> > -- gil
> >
>


Re: [CMS-PIPELINES] PIPE MEMBERS Anomaly ???

2020-09-08 Thread Kris Buelens
XEDIT is known to strip trailing blanks for RECFM V files, so that 0 isn't
a surprise.  (I never checked what.it did with BFS files)

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op wo 9 sep. 2020 om 06:22 schreef Alan Altmark :

> On Tuesday, 09/08/2020 at 09:27 GMT, Paul Gilmartin 
>
> wrote:
> > Can any CMS file other than a BFS file have a zero-legth
> > record?
>
> No, though XEDIT will report a line (QUERY LENGTH) as zero length if it is
> all blank (on a RECFM V file).  In reality, it has a record length of 1.
>
> Alan Altmark
>
> Senior Managing z/VM and Linux Consultant
> IBM Systems Lab Services
> IBM Z Delivery Practice
> ibm.com/systems/services/labservices
> office: 607.429.3323
> mobile; 607.321.7556
> alan_altm...@us.ibm.com
> IBM Endicott
>


Re: [CMS-PIPELINES] stack + stem append

2020-05-20 Thread Kris Buelens
You request that the STACK be appended to stem Table1

I guess you want
"PIPE STACK",
"! APPEND STEM TABLE1.",
    "! CONSole"

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op wo 20 mei 2020 om 13:56 schreef Alain Benveniste :

> Hi,
> /**/
> "PIPE STRLITeral /A/",
> "! STEM TABLE1."
>
> QUEUE "B"
>
> "PIPE STACK",
> "! STEM TABLE1. APPEND",
> "! CONSole"
>
>
> I would expect
> A
> B
>
> as the result but I only get
> B
>
> APPEND seems to not have effect here.
>
> Regards
> Alain
>


Re: [CMS-PIPELINES] differences between the first and last matching lines

2020-05-09 Thread Kris Buelens
There also is the COMPAIR XEDIT macro to interactively compare 2 files side
by side.

Op za 9 mei 2020 03:07 schreef Donald Russell :

> SUPERC?
>
>
> On Fri, May 8, 2020 at 11:47 AM Glenn Knickerbocker 
> wrote:
>
> > I have one file that includes copies of several others.  When one of the
> > component files is updated, I want to compare and show the differences.
> > Anybody have an existing idiom for picking out the section of a file
> > between the first and last matches with another file?  (I don't control
> > the process of building the big file, so I can't just add section
> > delimiters, but I can easily filter out commonly occurring lines like
> > blanks and headers.)
> >
> > ¬R
> >
>


Re: [CMS-PIPELINES] Advice

2020-04-24 Thread Kris Buelens
You forgot a few things
   ...  | spec /'/ 1 1-* Next /'/ Next | ...

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op vr 24 apr. 2020 om 16:16 schreef Rick Troth :

>  ...  | spec /'/ w 1 /'/ | ...
>
>
> perhaps?
>
>
>
> On 4/24/20 10:10 AM, Lionel Dyck wrote:
> > I am extracting dataset names from a JCL member and then need to use
> > GETFILES to read them in for additional processing. I have the dataset
> names
> > but what I haven't figured out (yet) is how to enclose them in single
> quotes
> > so that GETFILES will not attempt to use my TSO Userid as a prefix.
> >
> >
> >
> > Any guidance would be appreciated.
> >
> >
> >
> >
> >
> > Lionel B. Dyck <
> > Website:  <https://www.lbdsoftware.com> https://www.lbdsoftware.com
> >
> > "Worry more about your character than your reputation.  Character is what
> > you are, reputation merely what others think you are." - John Wooden
>
>
> --
> -- R; <><
>


Re: [CMS-PIPELINES] XEDIT and targets

2019-06-13 Thread Kris Buelens
What about inserting a new line in the XEDITed file to indicate the end of
the range (obviously a very special line that is unique).
Then you'd use something like  PIPE XEDIT ... | ToTarget

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op vr 14 jun. 2019 om 04:50 schreef Glenn Knickerbocker :

> To explain my motivation more clearly in words here:  I'm writing an
> XEDIT macro and I want it to act on a range of lines between the current
> line and a target just like native XEDIT subcommands.  I want to do my
> work in the pipeline, line by line as it reads the file from XEDIT, and
> write output into the file, select lines, etc.
>
> On 2019-06-10 3:34 PM, I wrote:
> >   'COMMAND EXTRACT /LINE/NBSCOPE'
> >   lines = nbscope.2
> >   'COMMAND LOCATE' target
> >   'COMMAND EXTRACT /NBSCOPE'
> >   lines = nbscope.2 - lines
> >   'COMMAND LOCATE :' line.1
> >   Address COMMAND 'PIPE xedit | take' lines etc.
>
> Computing the number of lines in advance like this worked fine for what
> I needed, because I wasn't going to touch any lines in advance.  I was
> hiding lines that weren't found in another file:
>
> Address COMMAND 'PIPE (end /) xedit' , /* read from XEDIT */
>   '| take' lines , /* number of lines requested */
>   '| found: lookup'  , /* match log below */
>   '/ disk' fn ft fm  ,  /* read log from disk */
>   '| found:' ,  /* nonmatches above */
>   '| spec "-1 SET SELECT 1" 1'   ,  /* go back and select */
>   '| subcom xedit'   ,  /* issue subcommands */
>
> But now suppose I wanted to hide that line AND the next two:
>
> Address COMMAND 'PIPE (end /) xedit' , /* read from XEDIT */
>   '| take' lines , /* number of lines requested */
>   '| found: lookup'  , /* match log below */
>   '/ disk' fn ft fm  ,  /* read log from disk */
>   '| found:' ,  /* nonmatches above */
>   '| spec "-1 SET SELECT 1 3" 1' ,  /*>go back and select 3 lines<*/
>
>   '| subcom xedit'   ,  /* issue subcommands */
>
> Now the precomputed count is no good anymore, because those next two
> lines will never be read into the pipeline.  That's what I'm wishing for
> a way to handle.
>
> ¬R
>
> (Warning:  These examples presume SET DISPLAY 0 0 and SET SCOPE DISPLAY.
>  Don't try them with SCOPE ALL or with 1 in the DISPLAY range!  You'll
> wind up processing the same line forever.)
>


Re: [CMS-PIPELINES] XEDIT and targets

2019-06-10 Thread Kris Buelens
If you set the RANGE to what you want to process, there is no need for a
TAKE in the PIPE.
  Rougly: 'COMMAND SET RANGE 0' target
   'COMMAND -*'; address '' 'PIPE ...

Restoring a previous RANGE set by the end-user is more complex when lines
are added or deleted

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op di 11 jun. 2019 om 06:46 schreef Glenn Knickerbocker :

> On 2019-06-10 4:13 PM, Kris Buelens wrote:
> > There is also SET RANGE to limit which lines are available.
>
> But the whole point is that I may want to issue XEDIT subcommands
> affecting lines beyond the target while the pipeline is running.
>
> ¬R
>


Re: [CMS-PIPELINES] XEDIT and targets

2019-06-10 Thread Kris Buelens
There is also SET RANGE to limit which lines are available.

Op ma 10 jun. 2019 21:40 schreef Donald Russell :

> See the XEDIT stage.
>
> Pipe ahelp xedit
>
> Use it to read starting at the current line, use subsequent stages to
> select/do what you want.
>
> Don
>
>
>
> On Mon, Jun 10, 2019 at 12:35 Glenn Knickerbocker 
> wrote:
>
> > Looking for an example of how to get a range of lines from XEDIT into a
> > pipeline, I went to my macro that issues a pipeline from a file in XEDIT
> > and was embarrassed to find this:
> >
> >   'COMMAND STACK' target
> >   Address COMMAND 'PIPE stack' etc.
> >
> > Apparently, I never got around to asking for a way to do this more
> > directly, so that I can take action on individual lines while I'm at the
> > right place in the file.  If I know I'm not going to add or delete
> > anything past the current line or change DISPLAY or SCOPE, I can use
> > EXTRACT /NBSCOPE to compute a number of lines for TAKE:
> >
> >   'COMMAND EXTRACT /LINE/NBSCOPE'
> >   lines = nbscope.2
> >   'COMMAND LOCATE' target
> >   'COMMAND EXTRACT /NBSCOPE'
> >   lines = nbscope.2 - lines
> >   'COMMAND LOCATE :' line.1
> >   Address COMMAND 'PIPE xedit | take' lines etc.
> >
> > That still leaves the problem of not having XEDITBACK baked in for when
> > the target is above the current line.  (In my current application, I
> > actually don't care about the order of the lines, so I can just start
> > from whichever end is the top.)
> >
> > I don't know if there's anything in XEDIT that Pipelines could grab onto
> > to remember the position of the target line when lines are added or
> > deleted (possibly including the target line) or DISPLAY and SCOPE
> > change.  If there is, it sure would be nice to have a stage that I could
> > just ask for all the lines in the SCOPE up or down to the target.
> >
> > ¬R
> >
>


Re: [CMS-PIPELINES] How to output line number of locate

2019-02-04 Thread Kris Buelens
Indeed, not that long, just a bit frightning for those that don't master
multistream pipelines (they may have a look at
http://www.vm.ibm.com/download/packages/descript.cgi?TCVM2 )

I just had a peek at what I created; initially LOOK was pure XEDIT based,
now it can use PIPE or XEDIT.

And, what I detected: LOOK was much used by my former long-time customer,
where SFS was used a lot too.  And, there were procedures that looked at
the last-reference date of the files.  So we did not want that executing a
LOOK would be counted as a reference.  So I made LOOK take care of that too
by using the right option on the :

> On Mon, 4 Feb 2019 at 17:43, Kris Buelens  wrote:
>
>
> > that requires a much more elaborate pipe.
> >
>
> For varying degrees of "much" :-) Mine is 11 stages, and fits on half a
> command line...
>
>   https://rvdheij.wordpress.com/2019/02/04/searching-some-files/
>
> Sir Rob the Plumber
>


Re: [CMS-PIPELINES] How to output line number of locate

2019-02-04 Thread Kris Buelens
One more word: the fact that you use ' >> FINDIT OUTPUT A' means that for
each file you searched, the ouput file is opened too.  So, if searching
lots of files this is considerable overhead.  One v-can solve this, but
that requires a much more elaborate pipe.

You could also have a look at my LOOK tool.
  http://www.vm.ibm.com/download/packages/descript.cgi?GD-XEDIT
You start it from withing FILELIST and it searches the files in the
FILELIST; you can store the result in a disk resident file, but by default
I store the result in an XEDITed workfile (work performed by LOOK XEDIT).
The workfile gets some special PF-keys set, for example to XEDIT the file
pointed too with the cursor, around the matched lines (done by LOOKE
XEDIT).  There is also LOOKC XEDIT that even allows global changes,
starting from withing the workfile.  The 3 macro's contain some usage info
inside them, but start by reading LOOK XEDIT
Remember a couple

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op ma 4 feb. 2019 om 16:33 schreef Kris Buelens :

> What about this
> '<' fn ft fm, /* Input file  */
> '|SPECS Recno 1 1-* 11',   /* add recordnr *.
> '| locate AnyCase 11-* ~'strg'~',  /* Locate the string   */
> '| specs ~'inrec'~ 1 1-130 25',  /* File info   */
> '| >> FINDIT OUTPUT A '/* Put results in file */
>
> Kris Buelens,
>  --- VM/VSE consultant, Belgium ---
> ---
>
>
> Op ma 4 feb. 2019 om 16:19 schreef Tim Joyce :
>
>> Hey Guys,
>>
>>
>>
>> I'm not a skilled plumber. I'm much more familiar with CMS REXX. Many
>> years ago I created a FINDIT EXEC REXX program in CMS that programmers use
>> often to search CMS members for a specified string. I later migrated to use
>> Pipelines I/O rather than EXECIO as pipelines is much more storage
>> friendly. Here is a sample of the locate and specs used for output:
>>
>>
>>
>> '<' fn ft fm, /* Input file  */
>>
>> '| casei locate ~'strg'~',  /* Locate the string   */
>>
>> '| specs ~'inrec'~ 1 1-130 25',  /* File info   */
>>
>> '| >> FINDIT OUTPUT A '/* Put results in file */
>>
>>
>>
>> Sample output :
>>
>>
>>
>>   Searched '* JCL C' for 'PGM=FTP'  Ignore Case
>>
>>
>>
>>
>> 0112233445566778
>>
>>Files Found
>> 12345678901234567890123456789012345678901234567890123456789012345678901234567890
>>
>> -
>> 
>>
>> CIGL1000 JCL  C1// EXEC PGM=FTP,SIZE=(FTP,256K),PARM='IP=FPRD'
>>
>> CIGL1005 JCL  C1// EXEC PGM=FTP,SIZE=(FTP,256K),PARM='IP=GLPROD'
>>
>> CIGL1021 JCL  C1// EXEC PGM=FTP,SIZE=(FTP,256K),PARM='IP=IFHHICK'
>>
>>
>>
>> It has been requested that I also output the line/record number that the
>> string was found on (as some members locate strings in multiple locations).
>> I have been looking through pipelines reference but have not figured out
>> the best way to do this without a lot of additional preprocessing of input
>> data. Any suggestions would be appreciated.
>>
>>
>>
>> Tim Joyce
>>
>> Alex Lee Inc.
>>
>> Systems Administrator
>>
>


Re: [CMS-PIPELINES] How to output line number of locate

2019-02-04 Thread Kris Buelens
What about this
'<' fn ft fm, /* Input file  */
'|SPECS Recno 1 1-* 11',   /* add recordnr *.
'| locate AnyCase 11-* ~'strg'~',  /* Locate the string   */
'| specs ~'inrec'~ 1 1-130 25',  /* File info   */
'| >> FINDIT OUTPUT A '/* Put results in file */

Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---


Op ma 4 feb. 2019 om 16:19 schreef Tim Joyce :

> Hey Guys,
>
>
>
> I'm not a skilled plumber. I'm much more familiar with CMS REXX. Many
> years ago I created a FINDIT EXEC REXX program in CMS that programmers use
> often to search CMS members for a specified string. I later migrated to use
> Pipelines I/O rather than EXECIO as pipelines is much more storage
> friendly. Here is a sample of the locate and specs used for output:
>
>
>
> '<' fn ft fm, /* Input file  */
>
> '| casei locate ~'strg'~',  /* Locate the string   */
>
> '| specs ~'inrec'~ 1 1-130 25',  /* File info   */
>
> '| >> FINDIT OUTPUT A '/* Put results in file */
>
>
>
> Sample output :
>
>
>
>   Searched '* JCL C' for 'PGM=FTP'  Ignore Case
>
>
>
>
> 0112233445566778
>
>Files Found
> 12345678901234567890123456789012345678901234567890123456789012345678901234567890
>
> -
> 
>
> CIGL1000 JCL  C1// EXEC PGM=FTP,SIZE=(FTP,256K),PARM='IP=FPRD'
>
> CIGL1005 JCL  C1// EXEC PGM=FTP,SIZE=(FTP,256K),PARM='IP=GLPROD'
>
> CIGL1021 JCL  C1// EXEC PGM=FTP,SIZE=(FTP,256K),PARM='IP=IFHHICK'
>
>
>
> It has been requested that I also output the line/record number that the
> string was found on (as some members locate strings in multiple locations).
> I have been looking through pipelines reference but have not figured out
> the best way to do this without a lot of additional preprocessing of input
> data. Any suggestions would be appreciated.
>
>
>
> Tim Joyce
>
> Alex Lee Inc.
>
> Systems Administrator
>


Re: [CMS-PIPELINES] SCAN FOR READER FILES

2017-12-25 Thread Kris Buelens
You'd need some help of a REXX stage.
The calling pipe would use CP QUERY RDR * ALL and feed the spool file
numbers to that REXX subroutine.
In order to keep the spool files, use for example CP CHANGE RDR  KEEP,
or CP SPOOL RDR HOLD

Note too that there are many formats of spool files.  Those in NETDATA or
DISK DUMP format need most work to make them readable.  I shall dig out my
PIPPEEK EXEC and PIPPEEK REXX that can help you a bit.


Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---

2017-12-25 11:43 GMT+01:00 Michal Fisher :

> Hi all,
>
> I'm using a "scan" REXX exec, that start by creating a  file-list and then
> uses GETFILES to read them.
> I'm looking for a similar operation than would run on READER files.
>
> This is the scan we use today - for disk files:
> ' PIPE (END ?)   ',
>   '  ? CMS LISTFILE' FN FT FM ' (NOHEADER ',
>   '  | O: FANOUT   '  ,
>   '  | SPEC 1-* 1.22' ,
>   '  | J: JUXTAPOSE'  ,
>   '  | STEM RESULT.'  ,
>   '  ? O:  '  ,
>   '  | GETFILES'  ,
>   '  | CASEI LOCATE 1-* \erase\ ',
>   '  | J:'
>
> Is there a way to replace the CMS LISTFILE stage, by a list or reader
> files,
> And then change the "GETFILES"  to "READER" ?
> All reader files should remain as are, and the output to should include
> the details of the spool file where the string was found.
>
> Does anyone  have any idea ?
>
> Thanks,
> Michal Fischer,
>
> Office   : +972-36383344
> Cell: +972-522772544
>
> www.hilan.co.il
>


Re: [CMS-PIPELINES] LINENUM, as in EXECIO

2017-04-22 Thread Kris Buelens
And no, PIPE doesn't do interstage optimization.  But, needless overhead is
almost always avoided.  Your example:
   PIPE < ENORMOUS FILE A | DROP 1 | TAKE 10 | .
Simplified: the < stage will read 10010 records, no more:
- when DROP has thrown away its 1 records, it exits but connects the
output of < with the input of TAKE,
  so DROP doesn't incur any overhead anymore
- when TAKE has taken its 10 records, it goes way too, but it will close
its input
  (its input is now <)
- < sees no-one is listening anymore to its output and will stop too.

(I say "simplified", because the < stage is optimized to read the whole
file: it reads disk blocks, not records, so it may have 'read' more than
10010 records when it detects no-one is listening anymore; the FILESLOW
stage reads 1 record at a time).


Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---

2017-04-22 17:53 GMT+02:00 Rob Van der Heij :

> You would use filerand to read specific records or ranges of records. I
> even have a binary search routine using that 😊
>
> Rob van der Heij
> z/VM Development
>
>
>
>
>Paul Gilmartin --- [CMS-PIPELINES] LINENUM, as in EXECIO ---
> From:"Paul Gilmartin" To:CMS-
> PIPELINES@VM.MARIST.EDUDate:Sat, Apr 22, 2017
> 17:44Subject:[CMS-PIPELINES] LINENUM, as in EXECIO
>
> If I want to read a file starting at line 10001, I can:EXECIO 10
> DISKR ENORMOUS FILE A 10001 ...Or:PIPE < ENORMOUS FILE A | DROP 1 |
> TAKE 10 | ...It would seem that the latter reads a lot of records just to
> ignore them.Does Pipelines perform interstage optimization?Is it better to
> use EXECIO?Is there a better way?-- gilTenzij hierboven anders aangegeven:
> / Unless stated otherwise above:
> IBM Nederland B.V.
> Gevestigd te Amsterdam
> Inschrijving Handelsregister Amsterdam Nr. 33054214
>


Re: [CMS-PIPELINES] spec question

2017-03-02 Thread Kris Buelens
Look at the PICTURE option in SPECS.


Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---

2017-03-02 14:41 GMT+01:00 Gentry, Steve <
steve.gen...@westernsouthernlife.com>:

> I need to put leading zeroes into a number field.  Can I do that with SPEC
> ?
> For example:
>
> specs w1 1 w2 7 w3 11 w4 16.6 right w5 23.6 right w6 nw
>
> W4 starts out as  1,3,5,11,44, 123  and so on.
>
> The output I'd like to see is  01  03 05 11 44 000123
>
> Thanks,
> Steve
>


Re: [CMS-PIPELINES] proposal for "plenum" - portable Pipelines for POSIX platforms

2017-02-19 Thread Kris Buelens
I used it too, but abandoned it:
-it wasn't very fast, and
-it was impossible to combine it well with REXX when it had to handle dual
byte characters:

I wanted to use Pipes and Rexx to manage my vacation & family photo's, and
when I create panorama's I get names like this
  GR2009_6975-GR2009_6978 - 8365x2957 - 127.16°x44.96° SCAL - Blended
Layer.jpg
When using SysFileTree, REXX gets the ° sign as 2 characters, no problem,
when REXX stores series of filenames like these in an ascii file, and when
PC-Pipes then reads that file the ° characters become something else.  When
you then need REXX again to compare with fresh data from a SysFileTree, the
filenames no longer match.  I was in contact with the author, and he made
quite some changes.  It could work then, but still slow and unless taking
special care you could still have this (extracted from a mail in 2012):





*But, I still feel there is a large "factor of astonishment":1. you use for
example SysFileTree to get a list of files in a stem2. then you write that
list of files in a file using Pc-Pipes3. later you read that list of files
from the file back in a stemWell, the stem in step 1 and 3 are not
identical, completely unnatural in my eyes.*

I also used OS2PIPES when I had an OS/2 laptop.  That author converted it
to W32PIPE to run under Windows.  It is fast; I still use it for my photo
work. It was never published on the web.
If it has to handle large amounts of data, it may abend. It has a decent
subset of the VM pipelines stages, a few bugs.  And, more annoying: under
Windows 10 every use of VARLOAD makes it abend. I had to use STEM, followed
by calls to REXX's VALUE function, and I'm saved once more.
I couldn't get fixes (ages ago) as the author left IBM; the source didn't
come along either.  But I preciously keep it.
(the biggest photo management thing I wanted to use W32PIPE and PC-Pipes
for is now written in Visual Basic)



Kris Buelens,
 --- VM/VSE consultant, Belgium ---
---

2017-02-20 4:33 GMT+01:00 DeWayne Thomas :

> Actually there are two versions of this particular implementation...The
> one pointed to by the link I sent:
>
> " This is the initial release of a non .NET version of PC-Pipes. It is
> written in CPP and mirrors the .NET version in program logic and
> structure. Except for the Dispatcher and the interface between the OS
> shell evnironment and the PipeLib library, the same source code is used
> for both Windows and Linux. With typedefs and defines used to mask OS
> differences."
>
> D>
>
>
>
> On 02/19/2017 08:28 PM, Rick Troth wrote:
>
>> Thanks.
>> Yes, I had seen that one.
>> My heart sank when I saw it requires .Net.
>>
>> -- R; <><
>>
>>
>>
>> On 02/19/2017 04:08 PM, DeWayne Thomas wrote:
>>
>>> Have you looked at this one?
>>>
>>> https://sourceforge.net/projects/pc-pipelines/files/?source=navbar
>>>
>>> D>
>>>
>>>
>>> On 02/19/2017 09:40 AM, Rick Troth wrote:
>>>
>>>> How many of us crave Pipelines when working with other systems?
>>>>
>>>> I have seen at least two, probably three (maybe more) implementations of
>>>> Pipelines for systems other than CMS or MVS.
>>>>
>>>> -- R; <><
>>>>
>>>>


Re: [CMS-PIPELINES] Capture rexx output with both CP and CMS commands

2016-11-28 Thread Kris Buelens
I think that if you use *MSGALL, no need to use SET VMCONIO IUCV and SET
CPCONIO IUCV first.  *MSGALL traps anything that would have been sent to
the console, regardless of what you SET to IUCV.

Stronger: if you'd have an active path to *MSG (e.g. WAKEUP (IUCVMSG is
active), the message classes set to IUCV will not be captured by STARMSG
*MSGALL but presented to *MSG.
*MSGALL was created for fullscreen CMS, so that CMS could get everything
that was not grabbed by programs like WAKEUP(IUCVMSG.


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-11-28 21:41 GMT+01:00 Michael Harding :

> This might supply a good starting point:
>
> /*
> **
> */
> Address Command
> Parse value Diag(8,'QUERY SET') with 1 . 'VMCONIO' vms . ',' 1 . 'CPCONIO'
> pms . ','
> nl = '15'x
> Parse value Diag(8,'SET VMCONIO IUCV'nl'SET CPCONIO IUCV') with .
> Parse arg stuffs
> 'PIPE var stuffs|starmsg *MSGALL|spec 17-* n|stem dumb.'
> Parse value Diag(8,'SET VMCONIO' vms nl'SET CPCONIO' pms) with .
> Do i=1 to dumb.0
>Say i dumb.i
>End
> Exit 0
>
> --
> Mike Harding
> z/VM System Support
> /sp
>
>
> CMSTSO Pipelines Discussion List  wrote on
> 11/28/2016 12:32:58 PM:
>
> > From: "John P. Hartmann" 
> > To: CMS-PIPELINES@VM.MARIST.EDU
> > Date: 11/28/2016 12:33 PM
> > Subject: Re: Capture rexx output with both CP and CMS commands
> > Sent by: CMSTSO Pipelines Discussion List 
> >
> > Alan, CMS does not trap commands that are forwarded to CP by the default
> > setting IMPCP on; nor explicitly by the CP command of CMS.
> >
> > I'd say SPOOL the console.  Or perhaps read the manual.
> >
> > It is true that
> >
> >PIPE literal  | starmsg | ...
> >
> > will do as requested, but I'm sure something will go awry for this
> > unsuspecting newbee.
> >
> > On 11/28/2016 09:13 PM, Alan Altmark wrote:
> > > On Monday, 11/28/2016 at 07:06 GMT, Offer Baruch
> 
> > > wrote:
> > >> Hello everyone,
> > >>
> > >> I am new to the list and need some assistance...
> > >>
> > >> I am trying to capture the output of a Rexx exec. the Rexx contains
> both
> > >> CMS and CP commands...
> > >> I would like to capture this output into a stem variable...
> > >>
> > >> something like:
> > >> PIPE  | STEM output.
> > >>
> > >> At the moment i feel like i am in a dead lock...
> > >> I am unable to use the PIPE CMS command to run my rexx as the CP
> command
> > >> output will not be captured...
> > >> I am unable to use the PIPE REXX command as my rexx is not a stage and
> > > uses
> > >> "say" along with CP and CMS commands... it is not using 'OUTPUT'...
> > > causing
> > >> the output to hit the terminal and not the next stage of the STEM.
> > >>
> > >> I am aware that i can use the PIPE CMS and workaround the issue by
> using
> > >> the following inside my Rexx for CP commands:
> > >> PIPE CP  | STEM var.
> > >> and then printing the content of var. using say...
> > >> the problem is i don't control the Rexx and i am trying to avoid
> forcing
> > > my
> > >> users to rewrite their scripts...
> > >>
> > >> All i am asking is to be able to trap the output of any Rexx exec no
> > > matter
> > >> what commands it uses...
> > >>
> > >> Say in TSO/Rexx you have the OUTTRAP function to help you do that...
> > >>
> > >> any ideas anyone? am i missing something?
> > >
> > > Start with
> > >   PIPE CMS  | STEM var.
> > >
> > > That will let you trap the output of any CMS or synchronous CP commands
> > > issued by their program.  You can then massage that output to interpret
> it
> > > or reformat it.  But much depends on the specific CP commands they
> issue
> > > and how they issue them.  If they issue DIAGNOSE 8 themselves, you may
> not
> > > be able to trap it without using SCIF and PIPE STARMSG.  But again, it
> > > depends on how they dispose of the output from DIAGNOSE 8.
> > >
> > > Asynchronous responses from CP must be trapped via STARMSG.
> > >
> > > Alan Altmark
> > >
> > > Senior Managing z/VM and Linux Consultant
> > > Lab Services System z Delivery Practice
> > > IBM Systems & Technology Group
> > > ibm.com/systems/services/labservices
> > > office: 607.429.3323
> > > mobile; 607.321.7556
> > > alan_altm...@us.ibm.com
> > > IBM Endicott
> > >
> >
>


Re: [CMS-PIPELINES] Label connections

2016-09-30 Thread Kris Buelens
> I sometimes wish that Pipelines were closer to Rexx conventions (with
> a little POSIX wisdom added).  Newline would always be a STAGESEP,
> except that a trailing "," (as in Rexx)
CMS Pipelines never see a newline nor a trailing ,
REXX is in between what you code and PIPE; people sometimes seem to forget
that REXX interprets it first.
For example, if one codes:
   'PIPE Literal A',
'| Console'
The PIPE command gets the following string as input "Literal A | Console"
no comma, no newline.


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-09-29 18:56 GMT+02:00 Paul Gilmartin :

> On 2016-09-29, at 00:49, Rob van der Heij wrote:
> >
> > To me this is much like the "if the compiler knows there should be a ';'
> > why can't he just put it there instead of bothering me" question.
> > The more you automatically assume, the less chance to spot mistakes.
> >
> Yup.  For a modern common-sense view:
> http://trevorjim.com/postels-law-is-not-for-you/
>
> Rexx has a nice consistency in that semicolon and newline are nearly
> equivalent.  POSIX shell is irritating in that while a semicolon can
> (usally) be replaced by a newline, a newline can often not be replaced
> by a semicolon.
>
> I sometimes wish that Pipelines were closer to Rexx conventions (with
> a little POSIX wisdom added).  Newline would always be a STAGESEP,
> except that a trailing "," (as in Rexx) or a trailing "|" (as in POSIX)
> would indicate continuation.  (Oops, the latter would conflict with the
> usual portrait style.)  Stages such as APPEND that imbed pipelines?
> I need to think this through further.  But as an infrequent Pipelines
> user I have a shallow learning curve for Pipelines's rules for quoting,
> escaping, and alternate delimiters.
>
> And I wish I could use parentheses for grouping, but CMS has long ago
> preempted those.  Yet I wish I could write
> ( A; B; C ) | D
> instead of a FANIN with three labeled input connectors tangie.  (OK.
> I'm a POSIX shell partisan.  But in POSIX shell I've resorted to
> convoluted descriptor mapping to achieve concurrent pipes where CMS
> Pipelines's labels would be a better approach.)
>
> > Some complain that CMS Pipelines is too compact already and a simple typo
> > causes grief. Even worse is when the simple typo makes the system do
> > something completely different. Hang in for horror stories about missing
> > a comma in a command on TSO.
> >
> Example?  I'm confident I've repressed several horrible memories.  And I
> have no understanding of CLIST.  I wrote a few under extreme duress and
> instantly converted to Rexx when it became avalable in TSO/E R2.
>
> The TSO/E Rexx Reference is dreadful in that it has too many examples
> and too little explanation of what metacharacters are interpreted by
> Rexx and which are passed on to the TSO TMP.  I'm glad I learned Rexx
> under CMS first.
>
> > I do recognize the situations where your suggestion could simplify the
> > pipeline. For such if/then/else constructs I sometimes use IF (mainly in
> > the limited space of the command line):
> >
> >  .. | a: if drop | sort | a: | ..
> >
> > But a lot of more complicated topologies will not be helped by this. One
> > of the challenges I think is to avoid adding things that only help a bit.
> > They make it easier to do some things, but make it harder to do get
> beyond
> > simple things.
>
> -- gil
>


Re: [CMS-PIPELINES] the STACK stage

2016-06-24 Thread Kris Buelens
Instead of coding a multistream (in which one sends the secondary output of
Take to Hole), one could use buffer:
  'PIPE stack|buffer|var expdt'
Buffer will read all stacked lines and only then pass the firstcrecord
through. Note that Take isn't required as Var will stop aftr havibg
processed the first record.
Op 24-jun.-2016 6:26 PM schreef "Mike Walter" <
walterthepennyl...@hotmail.com>:

Steve,
If you expect three stacked records, are they all the same format, where
33.8 is an expdt?  If so, then do you want to do with each of those expdts?
Changing your '| VAR expdt' stage to something like '| STEM expdts.' with
three stavked input records containing expdts in 33.8 would create rexx
stem variables:
expdts.0=0expdts.1='xx/xx/xx'expdts.2='xx/xx/xx'expdts.3='xx/xx/xx'Where
'xx/xx/xx' is the expdt of each record in whatever format was stacked.
Mike Walter
Sent from my Verizon, Samsung Galaxy smartphone

 Original message
From: "Gentry, Steve" <
steve.gen...@westernsouthernlife.com> Date: 6/24/16  12:06 PM
(GMT-05:00) To: CMS-PIPELINES@VM.MARIST.EDU Subject:
Re: the STACK stage 

Possibly,(and I thought of that) but I'm not experienced enough to know how
to code that.  This was something I had to get done very quickly.  I may go
revisit.
Steve

-Original Message-
From: CMSTSO Pipelines Discussion List [mailto:CMS-PIPELINES@VM.MARIST.EDU]
On Behalf Of Paul Gilmartin
Sent: Friday, June 24, 2016 11:59 AM
To: CMS-PIPELINES@VM.MARIST.EDU
Subject: Re: the STACK stage

On 2016-06-24, at 08:19, Gentry, Steve wrote:

> I'm not getting the results I'd expect when STACK is the first in a
pipeline.   What I thought would happen is the entire STACK is read into
the stream and then proceed onto the next stage.  This is not happening.
Here is my code:
> 'PIPE stack' ,
>   '| take 1' ,
>   '| spec 33.8 1' ,
>   '| var EXPDT'
>
Since TAKE shorts the remainder of its input to its secondary output
stream, would it work to connect that secondary stream to HOLE?

> I will have at least three lines in the stack.  These three lines are
created by another   command that uses the " STACK FIFO" (w/o the quotes).
>
I've hardly mastered connectors.  I'd first try STACK LIFO then TAKE LAST 1.

-- gil


Re: [CMS-PIPELINES] access to variable pool

2016-05-14 Thread Kris Buelens
There are other tricks: make 1 record of both the counter and the
data.  *Completely
untested*
 "ADDPIPE (sep ! end ?)',
  '? literal',
  '! dup *',
  '!S: spec STOP ANYEOF',
   'recno 1',  /* record nr in col 1 */
   'Select 1 1-* 11',  /* data in cols 11 etc */
  '!*.input:',
 '? *.input:",
  '! spec *-* c2x 1',
  '! fblock 2',
  '! reverse',
  '! fblock 1',
  '!S:'  /* Data to the SPECS stage */

'PEEKTO Record'
if rc=0 then parse var record where 11 Data



Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-05-14 17:54 GMT+02:00 :

> OK, I will do as you adviced. Drawback: such a REXX fails when
> called from CMS command line.
>
> (The free WiFi Cafe is closing at 1800, so TNX and nice WE!)
>
> Ciao.Mike
>
> Am 14.05.2016 um 17:47 schrieb Kris Buelens:
> > The problem is that the added PIPE runs independently of the REXX stage
> > that added it.  That REXX stage may have ended long before the added pipe
> > ends (or even before it really starts).  That's the reason why VAR and
> > Friend in an added PIPE don't even try to set variables in the REXX that
> > added it, but a level lower.
> >
> > To pass "things" to the REXX that added the pipe section, other
> techniques
> > must be used, like an extra input stream.  A simple solution for this
> case:
> > use a CALLPIPE to grab the variable that was set a level lower:
> >  'PEEKTO record'
> >  if rc=0 then 'CALLPIPE VAR Where 1!Var Where'
>
> --
> www.Ok.de - die kostenlose E-Mail Adresse
>


Re: [CMS-PIPELINES] access to variable pool

2016-05-14 Thread Kris Buelens
The problem is that the added PIPE runs independently of the REXX stage
that added it.  That REXX stage may have ended long before the added pipe
ends (or even before it really starts).  That's the reason why VAR and
Friend in an added PIPE don't even try to set variables in the REXX that
added it, but a level lower.

To pass "things" to the REXX that added the pipe section, other techniques
must be used, like an extra input stream.  A simple solution for this case:
use a CALLPIPE to grab the variable that was set a level lower:
 'PEEKTO record'
 if rc=0 then 'CALLPIPE VAR Where 1!Var Where'


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-05-14 17:07 GMT+02:00 :

> Building a parser for nibble-oriented files I tried to get an
> indicator 'where I am'. So I coded in my REXX
>
> > "ADDPIPE (sep ! end ?) *.input:",
> >  '! spec *-* c2x 1',
> >  '! fblock 2',
> >  '! reverse',
> >  '! fblock 1',
> >  '!a:sync',
> >  '!*.input:',
> >  '? literal',
> >  '! dup *',
> >  '!a:',
> >  '! spec recno',
> >  '! var where tracking'
>
> so regardless if I read single nibbles with READTO or several in a
> row with  CALLPIPE *: | take (several)  the variable 'where' could
> tell where I am.
>
> Alas it seems I am not able to set a variable by ADDPIPE in the
> REXX containing this ADDPIPE. If I call it from CMS commandline
> there is "No active EXECCOMM", if I call it from an EXEC then
> using variable 'where' triggers NOVALUE. And the keyword PRODUCER
> may not be used when var is involved via ADDPIPE. (I even tried to
> 'forward' the used variable pool and get the bemusing information
> "Number -1 cannot be negative.")
>
> How may I get a "central record counter" in a REXX?
>
> Ciao.Mike
> --
> www.Ok.de - die kostenlose E-Mail Adresse
>


Re: [CMS-PIPELINES] Pipe from FILELIST line to XEDIT buffer

2016-04-21 Thread Kris Buelens
Wasn't it the case that XEDIT reads a BFS file twice?  First to determine
LRECL based on line-ends found.  Then it reads the file again to store it
in its buffer


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-04-19 17:09 GMT+02:00 Paul Gilmartin :

> On 2016-04-19, at 08:23, Alan Altmark wrote:
>
> > On Tuesday, 04/19/2016 at 02:04 GMT, Paul Gilmartin <
> paulgboul...@aim.com>
> > wrote:
> >> How does XEDIT deal with BFS files which have no width, filetype, etc.?
> >> (We don't have BFS configured.)
> >
> > A text file will have CRLF or LF in it.   See
> > http://www.vm.ibm.com/devpages/altmarka/profile.xedit
> >
> > XEDIT can be told the linend sequence.
> >
> Sir Rob provided a more specific answer:
>
> On 2016-04-19, at 01:17, Rob van der Heij wrote:
> >
> > PS On BFS, XEDIT has those too. Like this top line display:
> >
> >   Trust No 1  V 255  Trunc=255 Size=0 Line=1 Col=1 Alt=0
> >
> Still an unfortunate choice.  For BFS, the Width and Trunc default
> should be, "Doesn't matter", or "As much as you like".
>
> -- gil
>


Re: [CMS-PIPELINES] Rexx Reformat

2016-04-13 Thread Kris Buelens
I found it via http://cvie.free.fr/ and then selecting REXX

But, it doesn't run on my Win7 when I gave it a couple of my REXXes, some
syntax error, without error description, makes it halt


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-04-13 19:53 GMT+02:00 Shimon Lebowitz :

> Erreur 404
>
> *La page demandée n'existe pas.*
>
> *Cliquer ici* <http://cvie.free.fr/> pour aller à la page d'accueil du
> site.
>
> *Cliquer ici* <http://cvie.free.fr/blog/> pour le blogue.
>
> ​**Cliquer** indeed. I remember my HS french classes,
> and hearing about the Academie's fight against ​"Franglais".
>
>
>
> On Wed, Apr 13, 2016 at 8:53 AM, Jack Woehr  wrote:
>
> > John P. Hartmann wrote:
> >
> >> Did you try the REXX language association?
> >>
> > and really, this link will show why one's general impression is that
> > Rexxla webbage is a waste of time:
> >
> > http://www.rexxla.org/wikipages/
> >
> > Last modified in 2013.
> >
> > Here's what I did find:cvie.free.fr/*rexx*.html
> >
> > It works somewhat.
> >
> > You'd think after 36 years ...
> >
> >
> > --
> > Jack Woehr   # "There's too much emphasis on things
> > Box 51, Golden CO 80402  #  like pawn structure in modern chess.
> > http://www.softwoehr.com #  Checkmate ends the game." - N. Short
> >
>


Re: [CMS-PIPELINES] PIPFRE122E Insufficient free storage

2016-02-26 Thread Kris Buelens
Yes, I missed the sigl part...  Sorry.  (must get new glasses :-)


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-02-26 20:30 GMT+01:00 Hobart Spitz :

> Did you not read the part about sigl?
>
> I actually use "... name" UsedName"."ExecType".'LineNo()"...", where
> LineNo() is
>
> LineNo: return sigl
>
> I know enough about the internals of REXX and Pipes that there might be
> issues with getting the line number and/or changing sigl.
>
>
> On Fri, Feb 26, 2016 at 2:25 PM, Kris Buelens 
> wrote:
>
> > Execs often use ùmore than 1 PIPE command, so a default name will not be
> > much help.
> >
> > And, I hope your REXX code does use the default TRACE N, and not TRACE O.
> > With TRACE N all commands ending with a negative return code are traced.
> > PIPE does a very good job in producing negative return codes for syntax
> > errors and alike.
> >
> >
> > Kris Buelens,
> >  --- freelance z/VM consultant, Belgium ---
> > ---
> >
> > 2016-02-26 16:33 GMT+01:00 Hobart Spitz :
> >
> > > Would it be feasible to default NAME to something like
> > > UsedName.ExecType.sigl for Rexx programs?   UsedName could be word 6 of
> > > PARSE SOURCE and ExecType could be word 4.  sigl would be the setting
> > from
> > > the last CALL/function invocation.
> > >
> > > I something like this, and i never have a question where to look when
> > doing
> > > diagnosis.
> > >
> > > On Tue, Feb 16, 2016 at 4:34 PM, Glenn Knickerbocker  >
> > > wrote:
> > >
> > > > On 2/14/2016 12:55 AM, Paul Gilmartin wrote:
> > > > > addpipe MINE | > 'FILE'I ft fm
> > > > > ... other stuff, perhaps involving other pipes ...
> > > > > select output MINE
> > > > > sever  output
> > > >
> > > > I'd read the output to make sure the file is read to completion.
> Also,
> > > > I'm not sure if this is still true, but when the alternate input was
> > > > added to >MDSK, if it wasn't initally connected, >MDSK didn't notice
> > and
> > > > would sometimes wait forever for EOF on the unconnected or even
> > > > undefined stream, so I have stages that connect and read the
> alternate
> > > > output just to make sure the file is closed, like so:
> > > >
> > > >   'addstream both MINE'
> > > >   ...
> > > > 'addpipe (end /) *.out.MINE: | a: > FILE'i ft fm '/ a: |
> > *.in.MINE:'
> > > > ...
> > > > 'select both MINE'
> > > > 'sever output'
> > > > 'peekto'
> > > >
> > > > ¬R
> > > >
> > >
> > >
> > >
> > > --
> > > OREXXMan
> > >
> >
>
>
>
> --
> OREXXMan
>


Re: [CMS-PIPELINES] Select records by arithmetic expression

2016-02-26 Thread Kris Buelens
In fact, you can distinguish 3 levels of PIPE (at least)
1. What has been included in VM/ESA R1.  Described in the IBM manual, and
in PIPE HELP and HELP PIPE
2. But, in some release of VM/ESA the PIPE MODULE was renewed, the IBM
documentation and Help files were not.  But, with PIPE AHELP you will find
what this "new" level gives.  The "Pipelines Author's edition" was also
shipped alongside the 'normal' VM manuals, and describes that "new" level.
3. On the Marist web site, you find an even better PIPE, manual and HELPLIB
(for PIPE AHELP)

If you code PIPEs that must run on every VM system, you should stick to
level 2, unless you tell the users of your code to install the Marist level.

With z/VM 6.4 the Marist level will be included with VM.


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-02-26 19:58 GMT+01:00 Jack Woehr :

> Rob van der Heij wrote:
>
>> If I were you, I would make myself familiar with the style of the
>> Author's Edition Book. If you have to write against
>> the old plumbing, be aware of the revision codes in the book and double
>> check. Or maybe try, when in doubt. You could
>> pick up the PIPELINE HELPLIB and use PIPE AHELP online as well. There
>> will be help from myself and others on the list
>> when you run into any issues with the Runtime Library level of CMS
>> Pipelines.
>>
>
> Thanks, Rob, that's essentially how I'm handling it :)
>
>
>
> --
> Jack Woehr   # "There's too much emphasis on things
> Box 51, Golden CO 80402  #  like pawn structure in modern chess.
> http://www.softwoehr.com #  Checkmate ends the game." - N. Short
>


Re: [CMS-PIPELINES] PIPFRE122E Insufficient free storage

2016-02-26 Thread Kris Buelens
Execs often use ùmore than 1 PIPE command, so a default name will not be
much help.

And, I hope your REXX code does use the default TRACE N, and not TRACE O.
With TRACE N all commands ending with a negative return code are traced.
PIPE does a very good job in producing negative return codes for syntax
errors and alike.


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-02-26 16:33 GMT+01:00 Hobart Spitz :

> Would it be feasible to default NAME to something like
> UsedName.ExecType.sigl for Rexx programs?   UsedName could be word 6 of
> PARSE SOURCE and ExecType could be word 4.  sigl would be the setting from
> the last CALL/function invocation.
>
> I something like this, and i never have a question where to look when doing
> diagnosis.
>
> On Tue, Feb 16, 2016 at 4:34 PM, Glenn Knickerbocker 
> wrote:
>
> > On 2/14/2016 12:55 AM, Paul Gilmartin wrote:
> > > addpipe MINE | > 'FILE'I ft fm
> > > ... other stuff, perhaps involving other pipes ...
> > > select output MINE
> > > sever  output
> >
> > I'd read the output to make sure the file is read to completion.  Also,
> > I'm not sure if this is still true, but when the alternate input was
> > added to >MDSK, if it wasn't initally connected, >MDSK didn't notice and
> > would sometimes wait forever for EOF on the unconnected or even
> > undefined stream, so I have stages that connect and read the alternate
> > output just to make sure the file is closed, like so:
> >
> >   'addstream both MINE'
> >   ...
> > 'addpipe (end /) *.out.MINE: | a: > FILE'i ft fm '/ a: | *.in.MINE:'
> > ...
> > 'select both MINE'
> > 'sever output'
> > 'peekto'
> >
> > ¬R
> >
>
>
>
> --
> OREXXMan
>


Re: [CMS-PIPELINES] Select records by arithmetic expression

2016-02-24 Thread Kris Buelens
Isn't PICK what you need?


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-02-25 7:56 GMT+01:00 Jack Woehr :

> Trying to select records by a text key field (not unique) consisting of
> numbers where n < key < m.
>
> Even if sorted by the key field, Begin and Inside don't do it because it's
> not guaranteed any record(s) will have
> precisely n or m as a key.
>
> So far I'm sorting then using Rexx to fish out the ones I want. I haven't
> discovered a stage yet that does this.
>
> Perhaps I'm obtuse tonight ...
>
> --
> Jack Woehr   # "There's too much emphasis on things
> Box 51, Golden CO 80402  #  like pawn structure in modern chess.
> http://www.softwoehr.com #  Checkmate ends the game." - N. Short
>


Re: [CMS-PIPELINES] specs substring docs.

2016-01-23 Thread Kris Buelens
If you don't install the more recent Pipelines from the Marist website, and
thus use what comes with VM, use PIPE AHELP MENU and PIPE AHELP xxx to see
what is available on a vanilla VM system.  Pipes using only what you find
in he AHELP there will run on any VM system.

HELP PIPE xxx or PIPE HELP xxx will display the help files created by the
VM lab and describe roughly what got included with VM with VM/ESA V1


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2016-01-24 6:24 GMT+01:00 Dave Jones :

> Hello, Jack.
>
> Don't rely too much on the official IBM CMS Pipelines Reference doc; it is
> very much out of date. The best source of current information is in the CMS
> Pipelines's Author’s Edition, available on the Marist web site. Another
> very good source of information is the PIPELINE NEWSxxx files, available at
> the same site. They describe  new and/or changed function in Pipes that has
> not yet made it into the Author’s Edition.
>
> Have a good one, too.
>
> DJ
>
>
> On 01/23/2016 07:50 PM, Jack Woehr wrote:
>
>> Weird. CMS Pipelines Reference SC24-6169-00 doesn't mention specs
>> substring
>> It's there in the system, though. Doesn't appear online in pipe ahelp spec
>>
>> --
>> Jack Woehr   # "There's too much emphasis on things
>> Box 51, Golden CO 80402  #  like pawn structure in modern chess.
>> http://www.softwoehr.com #  Checkmate ends the game." - N. Short
>>
>>
> --
> Dave Jones
> V/Soft Software
> www.vsoft-software.com
> Houston, TX
> 281.578.7544
>


Re: [CMS-PIPELINES] Split a file into multiple files based on a string in the data

2015-10-06 Thread Kris Buelens
Just one possibility:
'PIPE (end ?)',
'F3: FrTarget Locate /this is file3/|> FILE 3 A',
   '?F3:',
   '|F2: FrTarget Locate /beginning of file2/|> FILE 2 A',
   '?F2:|> FILE 1 A'





Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2015-10-06 19:16 GMT+02:00 Rick Barlow :

> I want to take a single file and split it into multiple files based on a
> string in the data. I don't know how many parts are in the original file.
> The string is not necessarily at the beginning of a record.
> Example:
>
> This is file 1
> rec1
> rec2
> This is the beginning of file 2
> f2rec1
> f2rec2
> f2rec3
> f2rec3
> This is file 3
> f3rec1
> f3rec2
> I want to end up with 3 files. I know I can use fromtarget locate /file/. I
> haven't been able to find a way to go totarget locate /file/ because it
> does not select anything. I also haven't been able to come up with a way to
> do this recursively. I know that I am probably overlooking something
> relatively obvious. Any suggestions would be appreciated.
>
> Rick Barlow
> Nationwide Insurance
>


Re: [CMS-PIPELINES] Output to the bit bucket

2015-07-08 Thread Kris Buelens
> HOLE is what I am looking for.
Or, as illustrated in other reactions, HOLE is what you simply don't need
for the primary output of LOOKUP.  In such a case HOLE is pure overhead


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2015-07-08 13:57 GMT+02:00 Mark Pace :

> Thank you all for the suggestions.  For this need, and for clarity of this
> code, HOLE is what I am looking for.
>
> On Wed, Jul 8, 2015 at 2:18 AM, Moshe (Mark) Hillson <
> mhillson1...@gmail.com
> > wrote:
>
> > Hello,
> >
> > Use a stage called "HOLE" as last stage of primary and secondary stream.
> >
> > M Hillson.
> >
> >
> >
> >
> > -Original Message-
> > From: CMSTSO Pipelines Discussion List [mailto:
> CMS-PIPELINES@VM.MARIST.EDU]
> > On Behalf Of Mark Pace
> > Sent: Wednesday, July 08, 2015 12:06 AM
> > To: CMS-PIPELINES@VM.MARIST.EDU
> > Subject: [CMS-PIPELINES] Output to the bit bucket
> >
> > I'm doing a lookup - but I don't want output from the Primary and
> > Seconday, I only want to see the Tertiary output.  What can I put in
> place
> > of the console stage to send the output to the bit bucket?
> >
> > 'pipe (endchar ?)',
> >  'stem BST.',
> >  '| l: lookup',
> >  '| specs /P:/ 1 1-* next',
> >  '| console',
> >  '?',
> >  'stem VSE.',
> >  '| l:',
> >  '| specs /S:/ 1 1-* next',
> >  '| console',
> >  '?',
> >  'l:',
> >  '| specs /T:/ 1 1-* next',
> >  '| console'
> >
> > --
> > The postings on this site are my own and don’t necessarily represent
> > Mainline’s positions or opinions
> >
> > Mark D Pace
> > Senior Systems Engineer
> > Mainline Information Systems
> >
>
>
>
> --
> The postings on this site are my own and don’t necessarily represent
> Mainline’s positions or opinions
>
> Mark D Pace
> Senior Systems Engineer
> Mainline Information Systems
>


Re: [CMS-PIPELINES] Looking for feedback from CMS Pipelines users

2015-06-29 Thread Kris Buelens
That would be great.  Since I no longer am with a single customer (were I
could install John's most recent version), I refrained using any new
stage/feature..


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2015-06-29 14:30 GMT+02:00 Rob Van der Heij :

> IBM is investigating ways to bring the latest version of CMS Pipelines into
> the z/VM product. Various approaches are being considered to balance the
> resources available with customer value.
>
> If you have any thoughts or ideas about this, we would be most interested
> to learn about those. You can also contact me directly if you want to
> discuss your ideas or concerns off-line.
>
> IBM plans and directions are subject to change without notice.
>
> ---
> Rob van der Heij - z/VM Development
> robvdh...@nl.ibm.com
>


Re: [CMS-PIPELINES] Using VARLOAD to set default value for compound stem doesn't seem to work

2015-06-22 Thread Kris Buelens
The "problem" is that REXX doesn't return default values for stems when you
ask to get all values (using REXXVARS).  Not due to PIPE thus.
You can for example include a line   /V.R./  in the file VAR VALUES and
then after VARLOAD you'll get the default set too.  That line obviously
must be placed before the other /V.R.xxx lines

Note too that you'd better use  VARLOAD DIRECT, otherwise: if the exec in
which you use that VARLOAD already defined some contents for R (like
R='fred') then your simple VARLOAD would define V.fred.A and V.fred.B


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2015-06-22 20:12 GMT+02:00 Rick Barlow :

> I am trying to use PIPE VARLOAD to set stem variable values in an EXEC. If
> I am using simple stem variables, everything seems to work as expected.
>
> Contents of VAR VALUES:
> var1.=0
> var1.A=1
> var1.B=2
>
> 'PIPE|',
>   '< VAR VALUES|',
>   'VARLOAD'
> Say var1.A
> Say var1.B
> say var1.C
>
> Result:
> 1
> 2
> 0
>
> However, if I try to use a compound stem variable, the default stem value
> does not get set correctly.
> Contents of VAR VALUES:
> v.r.=0
> v.r.A=1
> v.r.B=2
>
> 'PIPE|',
>   '< VAR VALUES|',
>   'VARLOAD'
> Say v.r.A
> Say v.r.B
> say v.r.C
>
> Result:
> 1
> 2
> V.R.C
>
> I get the same results with both the CMS and Runtime versions of Pipelines.
> Has anyone else seen this situation? It looks like a bug but I thought I
> would ask here before opening a PMR.
>
> Thanks,
> Rick Barlow
>


Re: [CMS-PIPELINES] Lookup with PRD

2014-11-30 Thread Kris Buelens
John, one can Google APAR numbers and find information, most of the time
that is.


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2014-11-30 15:48 GMT+01:00 John P. Hartmann :

> You can open a PMR only when the pipeline that is shipped on the S disk
> fails.
>
> I don't know what those APARs you mention are about and I have no way of
> finding out.
>
>
> On 11/30/2014 02:41 PM, Alain Benveniste wrote:
>
>> ...and if I had to open a pipeline issue to IBM, I imagine PRD is also
>> affected. Do I need to post it here or are you aware of it in some other
>> way ? I just think of  VM65202 and VM65257 APARs for example.
>>
>>


Re: [CMS-PIPELINES] CMS PIPE Help

2014-10-09 Thread Kris Buelens
Our Pipe "Telecourse" ?
http://www.vm.ibm.com/download/packages/descript.cgi?TCVM2

it is a selfstudy with exercises, in HTML format.  There is an advanced
REXX too:
http://www.vm.ibm.com/download/packages/descript.cgi?TCVM1


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---

2014-10-09 13:32 GMT+02:00 Beard, Rick :

> Anyone know where a good place to start to learn CMS PIPEING?  I've only
> been working with z/VM for about a year, but I need to learn how it can
> interact with REXX.
>
> Thanks,
>
> Rick
>


Re: [CMS-PIPELINES] address command returns -3 when executing pipe

2014-08-21 Thread Kris Buelens
Yes indeed.  When I started using pipes, I often thought my code didn't
work as it ended that fast...


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-08-21 19:03 GMT+02:00 Miguel Soltero Diaz :

> Thanks Gil, for the remainder,
> But apparently I didn't learn fast enough...
> Made the same mistake in another program :(
>
> Other than that, my little project is closing on to light at the end of
> the tunnel
> The best part, it only added a handful of seconds to the process!!!
> In some LPARs not even 3 seconds, in development
> of course the files are small up to 25K.
>
> But still I am surprised! I thought the process would take minutes...
> ... but seconds?...
> ...kudos to the sys progs at BofA
>
> ...what nice jobs can be accomplished with pipes!
> :)
>


Re: [CMS-PIPELINES] Input range AUTOFIELD

2014-08-08 Thread Kris Buelens
Great feature indeed, I missed it several times, not only related to
REXXVARS.

John, did you find it when saying "today I will implement the missing
autofield feature"?  Starting the implementation of features and finding I
already did, started happening to me more and more when I reached 50.


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-08-08 15:19 GMT+02:00 Rob van der Heij :

> And for those trying to imagine why we needed that, think of processing the
> output of 'rexxvars toload' where CMS Pipelines will pick an arbitrary
> delimiter that does not conflict with the data...
>
>
> On 8 August 2014 14:36, John P. Hartmann  wrote:
>
> > Which has a synonym AFIELD that can be abbreviated down to 2 characters.
> >
> > I forgot to document that twenty years ago, but it seems I never got
> > round to do it subsequently except from an allusion in RECORD.
> >
> > Just as you can specify FIELD and WORD in an inputRange, you can also
> > specify AUTOFIELD (AField).  Of course, you cannot specify the field
> > delimiter, as it is implied to be the first character of the record.
> > Thus, AUTOFIELD 1 always begins in column 2 of the input record.
> >
> > pipe literal =f1=17|substr af 2|cons
> > 17
> >
> > Cheers,
> >
> >j
> >
>


Re: [CMS-PIPELINES] Again at cross roads...

2014-08-05 Thread Kris Buelens
There are two flavors of documentation, the one made by the VM lab,
documents what the VM lab supports, and the one by John Hartmann, Pipes'
author.

When you issue HELP PIPE LOOKUP (or HELP PIPE MENU) you get the VM lab doc,
and there all parameters are documented again and again for each stage.

If you issue PIPE AHELP LOOKUP (or PIPE AHELP MENU), you get that Authors
help, and there gneral parameters are not repeated, you could see for
LOOKUP simply "inputrange".  Then you'd need to find out what "inputrange"
might be.  With PIPE AHELP MENU you can easily find what it is, and you'll
see that you can specify WORD1, or a column range, etc.

For starters, the VM lab online help is probably easier.  After a while
through, you will find John's documentation is much better.

To complicate things even more: the VM lab supports (and documents) pipe
level x, but what is included with z/VM is pipe level y, a superset of
level x.  HELP PIPE explains level x, PIPE AHELP explains level y.

But, you can also go to the www and find an even much more recent level of
PIPE, and install that on your VM system, so you get level z.  If you also
install the newer documentation, PIPE AHELP explains level z.  HELP PIPE
remains at level x.

Our TCVM2 selfstudy does handle only what is distributed with z/VM itself,
so level y.

Kris Buelens
  freelance z/VM consultant
Op 4-aug.-2014 23:35 schreef "Miguel Soltero Diaz" :

> thanks guys...
> working on it... :)
>
> quick question Kris...
> why not include those parms for LOOKUP/COLLATE in the manuals?
> Or did I miss them?
>
> Thanks for the swift response guys..
>
> ...as always...
>


Re: [CMS-PIPELINES] Again at cross roads...

2014-08-04 Thread Kris Buelens
LOOKUP W2 W1
Or is that too simple?


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-08-04 22:32 GMT+02:00 Miguel Soltero Diaz :

> Hi guys,
> Once again need some guidance on what to do.
>
> Have a couple of files:
> Master is variable length with variable start position & key length. Key
> is the second word of the record.
> Detail is fixed length (of course) with variable length key.
> Both files are sorted
> 1) I need to match both files based on the key.
> Thought about using Collate or Lookup but failed to find the parameters to
> specify the word separator character. Also couldn’t find the way to specify
> a variable length on the key.
> Question. Is there a way to do this with Lookup or Collate? Or what should
> I use instead?
>
> 2) The eight word of the Master record there is a date (might be missing)
> that I need to compare with the one from the Detail file. Take the greatest
> one to update the one in the master. I am thinking on using Pick for the
> compare. Although not sure I can use Pick to compare fields from different
> files. SPECS might be?
>
> Any idea how I can solve this?
> Yes, I know… I should be taking that selfstudy course Kris suggested
> first. :)
> Thanks guys…
>
>
> Miguel
>


Re: [CMS-PIPELINES] Continuation from last post.

2014-07-28 Thread Kris Buelens
One can use SPECS, no problem, but for simple things INSERT, CHOP etc could
perform better.

30K records is not that big to start worrying.  But, if you'd run that
process every minute, saving some CPU cycles may become worthwhile.


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-07-28 21:19 GMT+02:00 Miguel Soltero Diaz :

> Thank you Mike for the advice. I am reading the VMSECURE manuals...
> You  are correct, this is about VM Secure records. Looking for Audit codes
> 0690 (Logon by) and 1090 (FTP logon).
> Might later include 0500 (autolog), and other.
>
> John,
> I read about insert and wasn't aware of the performance impact by using
> SPECS. However, I am expecting process will handle around 30k records. So,
> assuming using SPECS for this project should be fine.
>
> And you are also correct Alan, at this moment I am just a new old plumber.
> When this is ready it should be a solid REXX/pipeline.  This is only
> elementary code.
> I am the responsible party for dropping your old VM users from all LPARs
> last month... my apologies...
> Since you are working at BofA I will drop you a line, so you can give it
> your blessing to our changes...
>
> I am truly honored to learn from all of you guys
>
> My pleasure.. !
>
> Miguel Soltero Diaz  :)
>


Re: [CMS-PIPELINES] Continuation from last post.

2014-07-28 Thread Kris Buelens
The reason for INSERT is that it is a much simpler stage than SPECS, hence
it performs better.  Not important for a very small PIPE.

If you'd have some time, you could take our selfstudy Pipelines course
http://www.vm.ibm.com/download/packages/descript.cgi?TCVM2



Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-07-28 19:40 GMT+02:00 Miguel Soltero Diaz :

> Thanks Mike/Kris,
>  I was reading about INSERT in the User Reference and read that everything
> in INSERT could be done with SPECS.
> So, I knew I was missing something.
>
> Thanks to your help I was able to complete the records.!
>
> Thank you again :)
>
> Miguel
>


Re: [CMS-PIPELINES] Continuation from last post.

2014-07-28 Thread Kris Buelens
SPECS is indeed your friend here:
   '|SPECS /'thisHost'/ 1  21-28 9 41-48 19 29-32 29 ',
 '$'CrDate'$ NW',
Note the quotes: what is outside the quotes will be analyzed by REXX, so
your variable is used indeed in the PIPE when it gets executed.

If you wouldn't need a SPECS for other purposes, you could use INSERT
   '| INSERT /'ThisHost '/ Before',
   '|INSERT $' CrDate'/' after',

Note= you can see we use a delimiter (/ and $ above), it should obviously
not occur in what you want to insert, similar for PIPE's stage separator
and end-character.  If what you insert can be anything, a trick is to
convert it to HEX in REXX and tell PIPE you insert a HEX string:
   '|SPECS X'c2x(ThisHost' ') '1  21-28 9 41-48 19 29-32 29 ',


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-07-28 18:21 GMT+02:00 Miguel Soltero Diaz :

> Hi guys,
> I hit the send bottom too soon...
>
> Basically I need to add the result of a CMS command at the beginning of
> each record, and current date at the end of the record (or viceversa).
> I want to execute the commands only ones, place them in a variable and
> insert those variables in the pipe, before and after the SPECS ...
>
> crdate = date(standard)
> say 'date is ' crdate
> thishost = strip(VMINQ(vmhost))
> say 'host is ' thishost
>
> 'pipe (endchar ?)',
>   '< AUDIT EXTRCT1',
>   '| a1: locate (29-32) /0690/ ',
>   '| SPECS /thishost/ 1 ',
>   '| specs  21-28 9 41-48 19 29-32 29 ',
>   '| b: faninany',
>   '|  > AUDIT SUBset3 A',
>   '? a1:',
>   '| a2: locate (29-32) /1090/ ',
>   '| SPECS 21-28 9 33-40 19 29-32 29',
>   '| b: '
>
> would like to insert THISHOST to the beginning of each record and CRDATE
> at the end of the same...
> How can I do this?
>
> Thank you...
>
> Miguel
>


Re: [CMS-PIPELINES] need a SPECS guru

2014-06-27 Thread Kris Buelens
And, in my eyes, LISTFILE's BEFORE and AFTER options have a bug.  If there
is no file for the given date range, COMMAND LISTFILE sends an error
message in the PIPE.  Normally eror messages should not be produced when a
CMS command is started with the COMMAND stage.


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-06-27 17:18 GMT+02:00 Rob van der Heij :

> :-)  I only recently noticed it, probably after Kris pointed it out (my
> Linux friends groan when I refer to 1983 as 'recently')
>
> But obviously knowing the "pick" stage is much more useful than remember
> this particular option for one CMS command. Once you know "pick" and
> "dateconvert" you can also find any EXEC's written on a Monday ;-)  Or in
> the weekend...
>
>
> On 27 June 2014 17:03, Ivica Brodaric  wrote:
>
> > Huh? Beaten by seconds! And didn't even think of AFTER... I feel
> eliminated
> > like Croatia form the World Cup... And we didn't even play with the Dutch
> > masters  :-)
> >
> >
> > On Sat, Jun 28, 2014 at 2:50 AM, Gentry, Steve <
> > steve.gen...@westernsouthernlife.com> wrote:
> >
> > > Well, uhm, AFTER would be cheating (and will work in this case,
> thanks.)
> > > What happened to "work harder not smarter"  (from a Dilbert cartoon).
> > > . . . and . . .
> > > Brute force and awkwardness  (college professor).
> > > Sincerely, thanks,
> > > Steve
> > >
> > > -Original Message-
> > > From: CMSTSO Pipelines Discussion List [mailto:
> > CMS-PIPELINES@VM.MARIST.EDU]
> > > On Behalf Of Rob van der Heij
> > > Sent: Friday, June 27, 2014 10:44 AM
> > > To: CMS-PIPELINES@VM.MARIST.EDU
> > > Subject: Re: need a SPECS guru
> > >
> > > You seem to be looking for PICK - eg   pick w8 >> ,20140225,
> > >
> > > The classic approach would be to inject a dummy record in the stream,
> > sort
> > > on date, and ignore all records before the dummy.
> > >
> > > PS It would be cheating to remind you of the AFTER option on LISTFILE
> ;-)
> > >
> > >
> > > On 27 June 2014 16:14, Gentry, Steve <
> > steve.gen...@westernsouthernlife.com
> > > >
> > > wrote:
> > >
> > > > In a  CMS environment, I have a list of files, created by LISTFILE.
> > > > The format of the file_type, in this list, will be DATE('S')
>  mmdd
> > > > I want to take a predetermined date, already in DATE('S') format, and
> > > > compare it to the above mentioned file_type.  If the file type date
> is
> > > > less than or equal to the predetermined date  I want to ignore it.
>  Or
> > > > if the file type date is greater than the predetermined date, I want
> to
> > > pass it on
> > > > to the next stage.   I was hoping for a PIPE stage that would do this
> > > type
> > > > of logical compare but I didn't find one, or at least one with an
> > > > obvious name/function.  If there is a stage, please let me know.
> > > > However, if there isn't a stage to do this, I think I'll have to do
> > this
> > > with a SPEC stage.
> > > >  While I've gotten better at writing pipe code, the SPEC stage is
> > > > still a challenge for me and hence the need for a SPECS guru.
> > > > Could someone help with this SPECs stage?
> > > > Thanks,
> > > > Steve
> > > >
> > >
> >
>


Re: [CMS-PIPELINES] abend in z/CMS

2014-06-25 Thread Kris Buelens
I'm getting tired of fighting the CMS stage and the address CMS (statement
or REXX' default).


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-06-25 21:34 GMT+02:00 Shimon Lebowitz :

> As soon as I saw that "CMS GLOBALV" I sort of gasped, and
> was sure Kris would immediately respond. :)
>
> It does seem easy enough to create a GLOBALV EXEC and then open
> an APAR when the compiler fails.
>
> Shimon
>
>
>
> On Wed, Jun 25, 2014 at 9:14 PM, Rob van der Heij 
> wrote:
>
> > Or maybe have a GLOBALV EXEC on your A-disk that does not produce more
> than
> > 1 line of output... ;-)
> >
> > If this is how they access the GLOBALV variables, I'm not sure I want to
> > sit next to them at dinner (sharp steak knifes etc)
> >
> >
> > On 25 June 2014 20:08, Glenn Knickerbocker  wrote:
> >
> > > On 6/25/2014 8:08 AM, Jonathan Scott wrote:
> > > >  PIPE ( ENDCHAR ? )
> > > >CMS GLOBALV SELECT CENV LIST
> > > >  | DROP FIRST 1
> > > >  | STRIP LEADING BLANK 1
> > > >  | APPEND LITERAL
> > > >  | JOIN * H00
> > > >  | STORAGE 06B7CC28 300 E0
> > > >  | COUNT BYTES
> > > >  | STORAGE 06B7C7F0 11 E0
> > >
> > > D'oh!  I don't know why it didn't occur to me that the compiler module
> > > would be CALLING Pipelines.  That makes the PUSH workaround make sense.
> > >
> > > ¬R
> > >
> >
>


Re: [CMS-PIPELINES] SPEC with multiple IFs.

2014-04-24 Thread Kris Buelens
Are you sure this works:
   NW RECNO FROM" X2D(F800) "D2X NW.4 RIGHT a: 6.3 .",
I mean the D2X.  If you use the standard VM pipes, I don't think SPECS
allows to convert a RECNO you just inserted.




Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-04-24 22:54 GMT+02:00 Mike Walter :

> I'll repeat the suggestion to run it thought PIPEDMEO EXEC, and add
> another suggestion: when in XEDIT on the EXEC, enter: QDI
> You can get QDI (it uses color to point our missing commas, parens, etc.)
> from the same web site: http://www2.marist.edu/~pipeline/
>
> Another useful EXEC syntax checker is Guy De Ceulaer and Kris Buelens'
>  CKRX package.
>
> A bit of time invested now in installing and getting even moderately
> familiar with PIPEDEMO, PDEM, QDI, and CKRX will save uncounted hours later.
>
> CKRX package details:
> --
> CKRX is part of REXXG (Rexx Goodies):
> http://www.vm.ibm.com/download/packages/dscript.cgi?REXXG
>
> * CKRX - Perform a basic REXX syntax check (uses TRACE S)
> * EXECCALL - Execute/activate edited EXEC, XEDIT macro, FILELIST, ...
> * REXDATES - Show all formats REXX date() function
> * REXFINDS - Show syntax of REXX's searching functions
> * REXTIMES - Show all formats REXX time() function
> * XTOX - show result of all REXX data conversion functions (as C2X )
> CKRX PACKAGE *
> CKRX EXEC *
> CKRX XEDIT *
> EXECCALL XEDIT *
> EXECCALL HELPXEDI *
> DOREXX   XEDIT *
> REXTIMES EXEC  *
> REXDATES EXEC  *
> REXFINDS EXEC  *
> XTOX EXEC  *
> * Others, not mine, so can't pass them on
> * REXXTRY EXEC *
> * QDI XEDIT *
> * QDI REXX *
> --
>
> Mike Walter
> Aon Corporation
> The opinions expressed herein are mine alone, not my employer's.
>
>
>
>
>
> -Original Message-
> From: CMSTSO Pipelines Discussion List [mailto:CMS-PIPELINES@VM.MARIST.EDU]
> On Behalf Of Frank M. Ramaekers
> Sent: Thursday, April 24, 2014 15:40
> To: CMS-PIPELINES@VM.MARIST.EDU
> Subject: Re: SPEC with multiple IFs.
>
> After correcting the missing comma and using ELSEIF, it ends with a
> cryptic:
>
>
>
>   "|  SPEC /UAGLOBE/ 1.8 1-* NW RECNO FROM" X2D(F800) "D2X NW.4 RIGHT
> a: 6.3 .",
>
>   "IF a==/MOD/ THEN",
>
> "/C/ NW",
>
>   "ELSEIF a==/MVS/ THEN",
>
> "/C/ NW",
>
>   "ELSE",
>
> "/R/ NW",
>
>   "ENDIF",
>
> PIPYAC1434E Parse error in state 137, unexpected O_MULT at offset 3:
> "/MOD/ THEN /C/ NW ELSEIF a==/MVS/ THEN /C/ NW ELSE /R/ NW ENDI
>
> F".
>
> PIPMSG003I ... Issued from stage 2 of pipeline 11.
>
> PIPMSG001I ... Running "SPEC /UAGLOBE/ 1.8 1-* NW RECNO FROM 63488 D2X
> NW.".
>
> PIPYAC1435I Expecting T_IDLETTER T_NUMBER T_QSTRING T_IDENT T_ID_CHAR
> T_CTR T_DOT T_DOTDOT T_CTRARRAY S_LP O_PLUS O_NOT F_FIRST F_EO
>
> F F_BREAK F_C2D F_C2F F_X2D F_X2F F_STRING F_AVERAGE F_VARIANCE F_NUMBER
> F_EXACT F_SQRT F_STDDEV F_STDERRMEA
>
> PIPSPE192I ... Scan at position 69; previous data "OM 63488 D2X NW.4 RIGHT
> a: 6.3 . IF a==/".
>
>
>
> Frank M. Ramaekers Jr.
>
>
>
>
>
> > -Original Message-
>
> > From: CMSTSO Pipelines Discussion List [mailto:CMS-
>
> > pipeli...@vm.marist.edu] On Behalf Of Kris Buelens
>
> > Sent: Thursday, April 24, 2014 3:24 PM
>
> > To: CMS-PIPELINES@VM.MARIST.EDU
>
> > Subject: Re: [CMS-PIPELINES] SPEC with multiple IFs.
>
> >
>
> > I don't know if that will help: PIPE alos has ean ELSEIF
>
> >
>
> >   "ELSEIF a==/MVS/ THEN",
>
> >   "/C/ NW",
>
> >
>
> >
>
> > Kris Buelens,
>
> >  --- freelance z/VM consultant, Belgium ---
>
> > ---
>
> >
>
> >
>
> > 2014-04-24 22:19 GMT+02:00 Joe Parker  jgp4...@hotmail.com> >:
>
> >
>
> > > Well, it's been quite a few years since I wrote any pipe code, but
>
> > > could it be there's a comma missing in the first line?
>
> > >
>
> > > > Date: Thu, 24 Apr 2014 15:13:22 -0500
>
> > > > From: framaek...@ailife.com <mailto:framaek...@ailife.com>
>
> > > > Subject: SPEC with multiple IFs.
>
> > > > To: CMS-PIPELINES@VM.MARIST.EDU <mailto:CMS-PIPELINE

Re: [CMS-PIPELINES] SPEC with multiple IFs.

2014-04-24 Thread Kris Buelens
I don't know if that will help: PIPE alos has ean ELSEIF

  "ELSEIF a==/MVS/ THEN",
      "/C/ NW",


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-04-24 22:19 GMT+02:00 Joe Parker :

> Well, it's been quite a few years since I wrote any pipe code, but
> could it be there's a comma missing in the first line?
>
> > Date: Thu, 24 Apr 2014 15:13:22 -0500
> > From: framaek...@ailife.com
> > Subject: SPEC with multiple IFs.
> > To: CMS-PIPELINES@VM.MARIST.EDU
> >
> > I can't seem to find information on what could be wrong with this:
> >
> >
> >
> > "|  SPEC // 1.8 1-* NW RECNO FROM" X2D(F800) "D2X NW.4 RIGHT a: 6.3
> > ."
> >
> >   "IF a==/MOD/ THEN",
> >
> > "/C/ NW",
> >
> >   "ELSE",
> >
> > "IF a==/MVS/ THEN",
> >
> >   "/C/ NW",
> >
> > "ELSE",
> >
> >   "/R/ NW",
> >
> > "ENDIF",
> >
> >   "ENDIF",
> >
> >
> >
> > I'm not getting the output I expect (I don't see PIPE flagging
> > anything).   I've only had single IF's in the past.
> >
> >
> >
> > Frank M. Ramaekers Jr. | Systems Programmer | Information Technology |
> > American Income Life Insurance Company | 254-761-6649
> >
> >
>
>


Re: [CMS-PIPELINES] Writing a REXX PIPELINE stage

2014-04-14 Thread Kris Buelens
Most of teh time I do not acticate a signal on Syntax, as REXX provides
enough information by default, and as one gets a traceback.
For the Novalue case: here my handler gives extra information, thge name of
teh variable.  If you want a traceback (something I don't need for a
"Novalue" most of the time) I do change my handler
 Say 'REXX problem in' myname mytype 'line' sigl
 Say 'variable' undefvar 'not defined'
 signal CauseLabelTraceBack

 Where "CauseLabelTraceBack doesn't exist.

As to code no Error handler and have a signal on Error fro unexpected
RC\=0: I'd prefer clear message instead of "label  not found."  What
about
Error:
 Say 'Unexpected rc' rc 'from' condition('D')
 say 'in' myname mytype 'at line' sigl
 exit rc


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-04-15 0:54 GMT+02:00 Paul Gilmartin :

> On 2014-04-14 10:50, Frank M. Ramaekers wrote:
> > I've only done a couple of these before and don't have any good
> > debugging techniques.  I've run into a problem on this:
> >
> Reformatting for compactness:
>
> > /* */
> >   Trace "O"
> >   Signal On Error   Name Bad_Error
> >   Signal On Syntax  Name Bad_Syntax
> >   Signal On NoValue Name Bad_NoValue
> >
> I am not much of a fan of all these handlers:
>
> o I am not a devout follower of the Dutchmen's "GOTO considered harmful!"
>   but this goes to the other extreme.  Rexx's default error handling
>   is more legible than a novice is likely to code.  But I always code
>   "signal on error" and code no handler.  It catches inadvertently
>   undefined variables; I interpret the traceback, and fix whatever I
>   consider a problem.  Where I may have deliberately undefined symbols,
>   I use the symbol() and value() functions to deal with them.  More often,
>   I just surround them with apostrophes to make them constants.
>
> >   RecNo=0
> >   Parse arg OmitRec . "("
> >   "PEEKTO Record"
> >   Do while rc==0
> > RecNo=RecNo+1
> > If RecNo\==OmitRec then
> > "READTO"
> > If rc\==0 then
> >
> Your handler says you can never get here.
>
> >   Exit rc
> > "PEEKTO Record"
> >   End /* while */
> >
> OK.  You can't possibly fall out of this loop.  Have the courage of
> your conviction by supplying "exit 999" or the like here.
>
> > Bad_Error:
> >   If rc==12 then
> > rc=0
> > Exit rc
> >
> I think it's more legible to handle errors inline, as you tried to do
> with "If rc\==0 then ...", rather than in a remote handler that one
> must scan forward to see what's happening.
>
> > Bad_Syntax:
> > Exit 13
> >
> I _never_ provide a Syntax handler.  All yours does is to suppress the
> traceback which might disclose the point of the error.
>
> > Bad_NoValue:
> > Exit 14
> >
> Your RC=14 is probably coming from here.  If you omitted the handler,
> you'd get a traceback that would identify the source of the problem.
>
> > The output looks fine, but it ends up with an RC=14:
> >
> I'll probably get many followups from programmers who take pride in
> their skill at coding condition handlers.  I don't care.  KISS.
>
> For me, "novalue" always results from a coding error.  I accept the
> system default handling and don't attempt recovery.
>
> A fortiori for "syntax".
>
> In sections of code where I don't believe RC<>0 is possible, I sometimes
> wrap "signal on no error", again providing no handler.  If Rexx astonishes
> me by terminating on an error, I analyze and fix it.
>
> -- gil
>


Re: [CMS-PIPELINES] Writing a REXX PIPELINE stage

2014-04-14 Thread Kris Buelens
You could improve the NOVALUE handling.  This is what I code since ages:
Signal on Novalue

/*-*/
NOVALUE: /* we come here when REXX finds unitialised variable  */
/*-*/
 parse upper source . how myname mytype . syn . '' undefvar
 parse version . rexxlvl .
 if rexxlvl>=3.46 then undefvar= 'CONDITION'('D')
 call errexit 99,'REXX problem in' myname mytype 'line' sigl,
  'variable' undefvar 'not defined'
/*-*/
SYNTAX: /*  we come here when SIGNAL ON SYNTAX traps an error  */
/*-*/
 parse upper source . how myname mytype . syn .
 call errexit rc,'REXX problem in' myname mytype 'line' sigl':' ,
  'ERRORTEXT'(rc), sigl':'||'SOURCELINE'(sigl)
ERREXIT: /* general errorexit routine */
 parse upper source . . myname mytype . syn .
 do i=2 to arg()   /* give errormessages (if any) */
 say myname':' arg(i)
 end
 exit arg(1)
And you will know what variable is undefined, and on which line it was.

Furthermore, I see you have
  SIGNAL ON ERROR
And
 IF RC\=0 THEN ...
The IF will never be executed as the SIGNAL ON ERROR causes transfer to the
error routine


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2014-04-14 18:50 GMT+02:00 Frank M. Ramaekers :

> I've only done a couple of these before and don't have any good
> debugging techniques.  I've run into a problem on this:
>
>
>
> /* */
>
>   Trace "O"
>
>   Signal On Error   Name Bad_Error
>
>   Signal On Syntax  Name Bad_Syntax
>
>   Signal On NoValue Name Bad_NoValue
>
>
>
>   RecNo=0
>
>   Parse arg OmitRec . "("
>
>   "PEEKTO Record"
>
>   Do while rc==0
>
> RecNo=RecNo+1
>
> If RecNo\==OmitRec then
>
>   "OUTPUT" Record
>
> "READTO"
>
> If rc\==0 then
>
>   Exit rc
>
> "PEEKTO Record"
>
>   End /* while */
>
> Bad_Error:
>
>   If rc==12 then
>
> rc=0
>
> Exit rc
>
> Bad_Syntax:
>
> Exit 13
>
> Bad_NoValue:
>
> Exit 14
>
>
>
> The output looks fine, but it ends up with an RC=14:
>
>
>
> pipe strliteral /abc 12358 thisone notthisone/ | split at blank| omitrec
> 3 | console
>
> abc
>
>
> 12358
>
>
> notthisone
>
>
> Ready(00014);
>
>
>
>
> Thoughts as to why I'm getting a "Bad Value"?
>
>
>
> Frank M. Ramaekers Jr. | Systems Programmer | Information Technology |
> American Income Life Insurance Company | 254-761-6649
>
>
>


Re: [CMS-PIPELINES] TOD conversion with time?

2013-12-13 Thread Kris Buelens
There is a TIMEOUT option (I was at least one of the requestprs for this
feature)


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/12/13 James Vincent 

> Hello!
>
> Is there a way with DATECONV and TODABS as input to give the time portion
> along with the date?
>
> This could have been covered before but my searches didn't hit anything.
> TIA!
>
> -- James Vincent
> -- Sr. z/VM Systems Programmer, Nationwide Ins.
> -- V.P. & Director of Conference Operations, SHARE Inc.
> -- Calendar: http://www.tinyurl.com/JSVCalendar
>


Re: [CMS-PIPELINES] Yet another thing I can't remember...

2013-11-09 Thread Kris Buelens
JUXTAPOSE is the typical answer for such a problem:
 'PIPE (end ?) .
  '|CH: CHOP 5',
  '|JX: Juxtapose',
  '|CONS',
  '?CH:|SPLIT|JX:'


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/11/10 Mark Boonie 

> I'm pretty sure I've seen the solution to this before, but, typically, I
> can't remember it.  I'd like to convert this:
>
> abc  123 45 6789 0
> wxyz 98 333 44 8765
>
> to this:
>
> abc  123
> abc  45
> abc  6789
> abc  0
> wxyz 98
> wxyz 333
> wxyz 44
> wxyz 8765
>
> The length of the "prefix" would/could be specified, so it wouldn't have to
> be deduced in any way.  Also, the non-prefix "words" in each line could be
> assumed to be the same length:
>
> abc  123  45   6789 0
> wxyz 98   333  44   8765
>
> Thanks for any suggestions.
>
> - mb
>


Re: [CMS-PIPELINES] pipe question

2013-10-30 Thread Kris Buelens
This ain't good:
   pick 2.2 >>= /0/
the >>= means you don't use numerical comparison, but strings are
compared.  Should be
   pick 2.2 >>= /00/
As mentions in other appends, use VERIFY /0123456789/ before teh PICK to
avoid non numeric values, after whick you can simply use >>= /00/ or >= /0/



Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/10/30 Paul Gilmartin 

> On 2013-10-30 14:35, Gentry, Steve wrote:
> > Yes. Here's the method I ended up using. Provide by a member on another
> list.
> >
> > ...
> > '|pick 2.2 >= /0/ & 2.2 <=/24/',
> > ...
> >
> I'll give that one only half a point:
>
>  pipe literal  24:00 | pick 2.2 >= /0/ & 2.2 <= /24/ | console
> consl pipe literal  24:00 | pick 2.2 >= /0/ & 2.2 <= /24/ | console
>  24:00
>
> Good.
>
>  pipe literal  25:00 | pick 2.2 >= /0/ & 2.2 <= /24/ | console
> consl pipe literal  25:00 | pick 2.2 >= /0/ & 2.2 <= /24/ | console
>
> (Nothing.)  Good.
>
>
>  pipe literal  xy:00 | pick 2.2 >= /0/ & 2.2 <= /24/ | console
> consl pipe literal  xy:00 | pick 2.2 >= /0/ & 2.2 <= /24/ | console
> PIPPIC1038E Not a decimal number: xy.
> PIPMSG003I ... Issued from stage 2 of pipeline 1.
> PIPMSG001I ... Running "pick 2.2 >= /0/ & 2.2 <= /24/".
>*-* 'callpipe' rest
>+++ RC(1038) +++
>
> Not so good.  And:
>
>  pipe literal  xy:00 | pick 2.2 >>= /0/ & 2.2 <<= /24/ | console
> (Again, nothing.)  Good.  But:
>
>  pipe literal  1y:00 | pick 2.2 >>= /0/ & 2.2 <<= /24/ | console
> consl pipe literal  1y:00 | pick 2.2 >>= /0/ & 2.2 <<= /24/ | console
>  1y:00
>
> Not so good.
>
> -- gil
>


Re: [CMS-PIPELINES] READER stage

2013-07-29 Thread Kris Buelens
RDR and NETDATA have almost no other choice than looking at the first
record.  I guess that RDR only doesn't do that for PRT type files: CP Q RDR
tells you,

Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/7/29 Paul Gilmartin 

> On 2013-07-29, at 07:51, Frank M. Ramaekers wrote:
>
> > Is there a more elegant way to determine if a spool file requires this
> processing, as opposed to what I'm doing which is running NETDATA command
> and if RC==0 then it's net data.
> >
> How does the NETDATA command itself make this determination?
> Is it by peeking at the first record to see whether it contains
> an INMR header?
>
> -- gil
>


Re: [CMS-PIPELINES] READER stage

2013-07-29 Thread Kris Buelens
There is the RDR command that gives a return code telling what kind the
file is.  Then you'd still need NETDATA QUERY to see if it is a file or an
email.

P.S. it should be PIPE COMMAND NETDATA QUERY if you want to be protected
agains a NETDATA EXEC floating around.

Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/7/29 Frank M. Ramaekers 

> Is there a more elegant way to determine if a spool file requires this
> processing, as opposed to what I'm doing which is running NETDATA command
> and if RC==0 then it's net data.
>
>
>
> e.g.
>
>
>
> "PIPE CMS NETDATA QUERY | VAR NETINFO"
>
> If RC==0 then/* Did it work? */
>
>   (process as NETDATA)
>
> else
>
>  (normal process)
>
>
>
> Also, does anyone know what the first two bytes of a (filetype of) CONLOG
> is?
>
>
>
> TOF:
>
> 4D8B5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C
> 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C
>
> ( " * *  * * * *  * * * *  * * * *  * * * *  * * * *  * * * *  * * * *  *
> * * *  * * * *  * * * *  * * * *  * * * *  * * * *  * *
>
> 5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C4040
>
>  * *  * * * *  * * * *  * * * *  * * * *  * *
>
> 4D8B5C40 4040D396 8740A2A3 8199A385 84409695 40F2F0F1 F261F1F1 61F0F440
> 81A340F0 F07AF0F0 7AF0F040 40404040 40404040 40404040 4040
>
> ( " *L o  g   s t  a r t e  d   o n2 0 1  2 / 1 1  / 0 4a
> t   0  0 : 0 0  : 0 0
>
> 4040 40404040 40404040 40404040 40404040 405C4040
>
> *
>
> 4D8B5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C
> 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C
>
> ( " * *  * * * *  * * * *  * * * *  * * * *  * * * *  * * * *  * * * *  *
> * * *  * * * *  * * * *  * * * *  * * * *  * * * *  * *
>
> 5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C5C5C 5C5C4040
>
>  * *  * * * *  * * * *  * * * *  * * * *  * *
>
> EOF:
>
>
>
> First byte could be a length byte (4Dx = 77).
>
>
>
> Frank M. Ramaekers Jr.
>
>
>
> > -Original Message-
>
> > From: CMSTSO Pipelines Discussion List [mailto:CMS-
>
> > pipeli...@vm.marist.edu] On Behalf Of Mike Walter
>
> > Sent: Friday, August 17, 2012 10:21 AM
>
> > To: CMS-PIPELINES@VM.MARIST.EDU
>
> > Subject: Re: [CMS-PIPELINES] READER stage
>
> >
>
> > Indeed.  That file is in NETDATA format, the format created by the
> SENDFILE
>
> > command in CMS and the TRANSMIT command on TSO.
>
> >
>
> > Will Roden wrote and shared a NETDATA REXX stage to help process NETDATA
>
> > reader files, which I'll post below.
>
> > There may be other ways to handle it, and probably some newer ones, but
>
> > this works quite well.
>
> >
>
> > Mike Walter
>
> > Aon Corporation
>
> > The opinions expressed herein are mine alone, not my employer's.
>
> >
>
> > /* CFORUM: PIPESAMPLES on YC2VM, downloaded 10/10/95 by mrw
>
> > /*Appended at 02:05:00 on 93/07/16 GMT (by RODEN at GDLVM7) */
>
> > /*Subject:  NETDATA filter  */
>
> > /*  */
>
> > /*Here's a front-end to DEBLOCK NETDATA that I wrote a long time*/
>
> > /*ago because I was sick of looking up formats every time I used it.*/
>
> > /*  */
>
> > /*NETDATA PREP removes the control characters from SPOOL file recs. */
>
> > /*NETDATA DISK untangles the NETDATA format.*/
>
> > /*NETDATA with no parameters does both. */
>
> > /*  */
>
> > /* */
>
> > /* Glenn S. Knickerbocker, GSKNICK at FSHVMX, 19 July 1989 */
>
> > /* quick front-end to DEBLOCK NETDATA  */
>
> > /* when you don't care about tags and such */
>
> >
>
> > prep = ,
>
> > '| find' '41'x ,
>
> > '| spec 2-* 1'
>
> >
>
> > netdata =  ,
>
> > '| pad 80' ,
>
> > '| deblock netdata',
>
> > '| find' 'c0'x ,
>
> > '| spec 2-* 1'
>
> >
&g

Re: [CMS-PIPELINES] How to locate a record, plus next 3

2013-07-24 Thread Kris Buelens
Upgrade PIPE level

Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/7/24 Frank M. Ramaekers 

> Hmmm not sure how mine is different:
>
>   "|p:PICK FROM W1 == /TRACK/ COUNT 4",
>
>
> FPLSPR054E Range "ROM" not valid
> FPLSCA003I ... Issued from stage 6 of pipeline 1
> FPLSCA001I ... Running "PICK FROM W1 == /TRACK/ COUNT 4"
>
> Frank M. Ramaekers Jr.
>
>
> > -Original Message-
> > From: CMSTSO Pipelines Discussion List [mailto:CMS-
> > pipeli...@vm.marist.edu] On Behalf Of John P. Hartmann
> > Sent: Wednesday, July 24, 2013 7:33 AM
> > To: CMS-PIPELINES@VM.MARIST.EDU
> > Subject: Re: [CMS-PIPELINES] How to locate a record, plus next 3
> >
> > If there are more, you certainly want to explore PICK.
> >
> > |p: pick from  w17.3 == /target 1/ count 3|
> >
> > \p:
> > |q: pick from w17.3 == /target2/ count 4|
> >
> > On 07/24/2013 02:27 PM, Frank M. Ramaekers wrote:
> > > Yeah, there's potential for more than one, but thanks for the
> pointers.
> > >
> > > Frank M. Ramaekers Jr.
> > >
> > >> -Original Message-
> > >> From: CMSTSO Pipelines Discussion List [mailto:CMS-
> > >> pipeli...@vm.marist.edu] On Behalf Of Rob van der Heij
> > >> Sent: Wednesday, July 24, 2013 7:20 AM
> > >> To: CMS-PIPELINES@VM.MARIST.EDU
> > >> Subject: Re: [CMS-PIPELINES] How to locate a record, plus next 3
> > >>
> > >> If there is just one such set that you care about, I'd use
> > >>frtarget locate /rob/  | take 4 | x: if drop 3 | nlocate ,frank,
> |
> > > x:
> > >> If there's multiple sets I would mark them first and then use
> between
> > >>
> > >> Rob
> > >>
> > >>
> > >> On 24 July 2013 14:10, Frank M. Ramaekers 
> > >> wrote:
> > >>
> > >>> In this case, I'm looking for a particular string.  When found, I
> > > need
> > >>> that record plus the next three.   I don't see an easy way to do
> > > this
> > >>> with PIPEs.  Somebody got a straight forward method?
> > >>>
> > >>> (Actually, I need the next three records, if the contents of the
> 3rd
> > >>> record has a particular string, otherwise I need 4 records.)
> > >>>
> > >>>
> > >>>
> > >>> TIA,
> > >>>
> > >>> Frank M. Ramaekers Jr. | Systems Programmer | Information
> Technology
> > > |
> > >>> American Income Life Insurance Company | 254-761-6649
> > >>>
> > >>>
> > >>>
>


Re: [CMS-PIPELINES] Using variables and IF statement

2013-07-22 Thread Kris Buelens
or ENDIF


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/7/22 Rob van der Heij 

> You at least need the 'fi' as msg 1080E says...
>
>
> On 22 July 2013 15:19, Frank M. Ramaekers  wrote:
>
> > I'm not sure what is the problem with this PIPLINE (granted I don't do
> > this type of SPEC very often):
> >
> > "|  SPEC a: W3 .",
> >
> >"if a=='P' then",
> >
> >"  /primary/ 1",
> >
> >"else",
> >
> >"  /backup/ 1",
> >
> > "|  CONSOLE"
> >
> >
> >
> >
> >
> > This results in the following error messages:
> >
> >
> >
> > FPLSPE1080E Incomplete IF
> >
> >
> > FPLMSG003I ... Issued from stage 3 of pipeline 3
> >
> >
> > FPLMSG001I ... Running "SPEC a: W3 . if a=='P' then /primary/ 1 else /"
> >
> >
> > FPLSPE192I ... Scan at position 55; previous data "P' then /primary/ 1
> > else /backup/ 1"
> >
> >
> >
> > Frank M. Ramaekers Jr. | Systems Programmer | Information Technology |
> > American Income Life Insurance Company | 254-761-6649
> >
> >
> >
>


Re: [CMS-PIPELINES] Placeholder for removed lines

2013-04-11 Thread Kris Buelens
I know it was 100% perfect.
 1) would be better to display Reserved iso omitted
 2) ethernal NLS problems
 3) in Belgium our code page makes the default stage separator is ! and not
|

to make it perfect the IF in the specs need to be elaborated a bit.
Something like
 'if a<>b+1 then Write',
  'Print b+1 Pic ZZZ9 1 ',
  'if a-1>b+1 then /-/ N',
  'print a-1 Strip N',
  'endif',
  '/Reserved/ NW',
   'endIf',

Don't shoot me if still not perfect.

Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/4/11 Frank M. Ramaekers 

> Works great except:
>
> 1)  Omitted only has one m.  :)
> 2)  The caret symbol came through as a one quarter sign (1/4)
> 3)  The stage separator is an explanation mark (yet wasn't
> declared, not sure if it was translated this way)
>
> Now to understand it better...
>
> Thanks,
> Frank M. Ramaekers Jr.
>
>
> > -----Original Message-
> > From: CMSTSO Pipelines Discussion List [mailto:CMS-
> > pipeli...@vm.marist.edu] On Behalf Of Kris Buelens
> > Sent: Thursday, April 11, 2013 2:52 PM
> > To: CMS-PIPELINES@VM.MARIST.EDU
> > Subject: Re: [CMS-PIPELINES] Placeholder for removed lines
> >
> > What about this
> >
> >  address command
> >
> >  'PIPE (endchar ?)',
> > '!CP QUERY CPOWN',
> > '!Hdr: take!In: Fanin!cons',
> > '?Hdr:',
> > '!PICK W2 ¼== /--/',
> > '!Spec a: w1 .  SELECT Second b: w1 . 1-* 1',
> >'if a<>b+1 then Write',
> >   'Print b+1 Pic ZZZ9 1  /-/ N',
> >   'print a-1 Strip N  /ommitted/ NW',
> >'endIf',
> > '!In:'
> >
> >
> > Kris Buelens,
> >  --- freelance z/VM consultant, Belgium ---
> > ---
> >
> >
> > 2013/4/11 Frank M. Ramaekers 
> >
> > > I have this (real simple) PIPE to abbreviate the output from QUERY
> > > CPOWN in a z/VM 6.2 environment (normally has 255 lines):
> > >
> > >
> > >
> > > QCPOWN   EXEC A1  V 130  Trunc=130 Size=7 Line=0 Col=1 Alt=0
> > >
> > >
> > >
> > >
> |...+1+2+3+4+5+6+7..
> > > ..+8
> > >
> > >0 * * * Top of File * * *
> > >
> > >
> > >1 /* "Q CPOWN" eliminating the empty slots */
> > >
> > >
> > >2   Trace "O"
> > >
> > >
> > >3   "PIPE (endchar ?)",
> > >
> > >
> > >4   "|  LITERAL QUERY CPOWN",
> > >
> > >
> > >5   "|  CP",
> > >
> > >
> > >6   "|  PICK SUBSTR 1.6 OF W2 \== /--/",
> > >
> > >
> > >7   "|  CONSOLE"
> > >
> > >
> > >
> > >
> > > The output looks okay:
> > >
> > >
> > >
> > > Slot  Vol-ID  Rdev  Type   Status  SSIOwner SysOwner
> > >
> > >1  M01RES  0705  OwnOnline and attached  
> > >
> > >5  VMCOM1  0701  OwnOnline and attached  
> > >
> > >   10  M01S01  0706  OwnOnline and attached  MKMFVM
> > >
> > >   11  M01S02  0707  OwnOnline and attached  
> > >
> > >   12  M01S03  0708  OwnOnline and attached  
> > >
> > > 249  M01P07  070F  OwnOnline and attached  
> > >
> > > 250  M01P06  070E  OwnOnline and attached  
> > >
> > > 251  M01P05  070D  OwnOnline and attached  
> > >
> > > 252  M01P04  070C  OwnOnline and attached  
> > >
> > > 253  M01P03  070B  OwnOnline and attached  
> > >
> > > 254  M01P02  070A  OwnOnline and attached  
> > >
> > > 255  M01P01  0709  OwnOnline and attached  MKMFVM
> > >
> > >
> > >
> > > I'd like to change it 

Re: [CMS-PIPELINES] Placeholder for removed lines

2013-04-11 Thread Kris Buelens
What about this

 address command

 'PIPE (endchar ?)',
'!CP QUERY CPOWN',
'!Hdr: take!In: Fanin!cons',
'?Hdr:',
'!PICK W2 ¼== /--/',
'!Spec a: w1 .  SELECT Second b: w1 . 1-* 1',
   'if a<>b+1 then Write',
  'Print b+1 Pic ZZZ9 1  /-/ N',
      'print a-1 Strip N  /ommitted/ NW',
   'endIf',
'!In:'


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/4/11 Frank M. Ramaekers 

> I have this (real simple) PIPE to abbreviate the output from QUERY CPOWN
> in a z/VM 6.2 environment (normally has 255 lines):
>
>
>
> QCPOWN   EXEC A1  V 130  Trunc=130 Size=7 Line=0 Col=1 Alt=0
>
>
>
> |...+1+2+3+4+5+6+7..
> ..+8
>
>0 * * * Top of File * * *
>
>
>1 /* "Q CPOWN" eliminating the empty slots */
>
>
>2   Trace "O"
>
>
>3   "PIPE (endchar ?)",
>
>
>4   "|  LITERAL QUERY CPOWN",
>
>
>5   "|  CP",
>
>
>6   "|  PICK SUBSTR 1.6 OF W2 \== /--/",
>
>
>7   "|  CONSOLE"
>
>
>
>
> The output looks okay:
>
>
>
> Slot  Vol-ID  Rdev  Type   Status  SSIOwner SysOwner
>
>1  M01RES  0705  OwnOnline and attached  
>
>5  VMCOM1  0701  OwnOnline and attached  
>
>   10  M01S01  0706  OwnOnline and attached  MKMFVM
>
>   11  M01S02  0707  OwnOnline and attached  
>
>   12  M01S03  0708  OwnOnline and attached  
>
> 249  M01P07  070F  OwnOnline and attached  
>
> 250  M01P06  070E  OwnOnline and attached  
>
> 251  M01P05  070D  OwnOnline and attached  
>
> 252  M01P04  070C  OwnOnline and attached  
>
> 253  M01P03  070B  OwnOnline and attached  
>
> 254  M01P02  070A  OwnOnline and attached  
>
> 255  M01P01  0709  OwnOnline and attached  MKMFVM
>
>
>
> I'd like to change it so it shows the omitted lines (minimally):
>
>
>
> Slot  Vol-ID  Rdev  Type   Status  SSIOwner SysOwner
>
>1  M01RES  0705  OwnOnline and attached  
>
>-
>
>5  VMCOM1  0701  OwnOnline and attached  
>
>-
>
>   10  M01S01  0706  OwnOnline and attached  MKMFVM
>
>   11  M01S02  0707  OwnOnline and attached  
>
>   12  M01S03  0708  OwnOnline and attached  
>
>-
>
> 249  M01P07  070F  OwnOnline and attached  
>
> 250  M01P06  070E  OwnOnline and attached  
>
> 251  M01P05  070D  OwnOnline and attached  
>
> 252  M01P04  070C  OwnOnline and attached  
>
> 253  M01P03  070B  OwnOnline and attached  
>
> 254  M01P02  070A  OwnOnline and attached  
>
> 255  M01P01  0709  OwnOnline and attached  MKMFVM
>
>
>
> Or ideally:
>
>
>
> Slot  Vol-ID  Rdev  Type   Status  SSIOwner SysOwner
>
>1  M01RES  0705  OwnOnline and attached  
>
>   2 -  4 omitted
>
>5  VMCOM1  0701  OwnOnline and attached  
>
>   5 -  9 omitted
>
>   10  M01S01  0706  OwnOnline and attached  MKMFVM
>
>   11  M01S02  0707  OwnOnline and attached  
>
>   12  M01S03  0708  OwnOnline and attached  
>
> 13-248 omitted
>
> 249  M01P07  070F  OwnOnline and attached  
>
> 250  M01P06  070E  OwnOnline and attached  
>
> 251  M01P05  070D  OwnOnline and attached  
>
> 252  M01P04  070C  OwnOnline and attached  
>
> 253  M01P03  070B  OwnOnline and attached  
>
> 254  M01P02  070A  OwnOnline and attached  
>
> 255  M01P01  0709  OwnOnline and attached  MKMFVM
>
>
>
> Can't seem to find a way to replace the omitted lines with a range of
> what was omitted.
>
>
>
> Frank M. Ramaekers Jr. | Systems Programmer | Information Technology |
> American Income Life Insurance Company | 254-761-6649
>
>
>
>
> _
>
> This message contains information which is privileged and confidential and
> is solely for the use of the
>
> intended recipient. If you are not the intended recipient, be aware that
> any review, disclosure,
>
> copying, distribution, or use of the contents of this message is strictly
> prohibited. If you have
>
> received this in error, please destroy it immediately and notify us at
> privacy...@ailife.com.
>


Re: [CMS-PIPELINES] AW: PIPSYSF Filter Package

2013-04-09 Thread Kris Buelens
*MSGALL is used by CMS Fullscreen, it captures all message that are not set
to IUCV and captured by *MSG

This allows CMS Fullscreen to co-exist with WAKEUP and PIPE STARMSG

Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/4/9 FAULHABER Michael 

> Yes, FORTRAN can call CSL (I call EXECs via CSL).
>
> I found SG24-5164-00 'Usr Gde 2 CMS Application MT' from 1998 what comes
> with a SG245164 Package of Sample Programs. I assume this is what you
> mentioned.
> It contains a chapter 3.4 'Multiple Threads with Pipelines'. It uses
> starmsg *MSG what is already in use by Fullscreen CMS. I am not yet deep
> enough in this subject to see if I could create "my own" *MSG that is not
> used by Fullscreen.
>
> If you had other samples in mind than the a. m. please let me know.
>
> Best Regards,
> Mike
>
> BTW: I am a user of your DRM :)
>
> 
> CONFIDENTIALITY : This e-mail and any attachments are confidential and may
> be privileged. If you are not a named recipient, please notify the sender
> immediately and do not disclose the contents to another person, use it for
> any purpose or store or copy the information in any medium.
>


Re: [CMS-PIPELINES] PIPSYSF Filter Package

2013-04-09 Thread Kris Buelens
Not a PIPE solution, but you could use the CMS Multitasking queues.  There
are drivers to exchange between queues in different virtual machines.  Used
via CSL calls, I don't know if Fortran can call CSL routines directly.

I found (REXX) samples as illustration on the VM website.  I can dig those
up if you cannot find them.

Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/4/9 FAULHABER Michael 

> By looking for the simplest way to transfer 2-byte data packages from one
> VM user to another one I came across the OLD stage (and some adjunct) in a
> PIPSYSF.
>
> Q1: is there some descriptions for OLD? Or more examples than PIPESERV
> only?
> Q2: what is the best way to pipe data between VM sessions (restriction:
> receiver has SET FULLSCREEN ON)?
> Q3: the PIPSYSF Filter Package at
> http://vm.marist.edu/~pipeline/pipsysf.html has nothing what meanwhile
> was moved to the PIPELINE module?
> Q4: Rob van der Heij's 'Piping through IUCV' from 1994 is still up to
> date? Or should I go for VMCDATA, VMCLIENT, and VMCLISTEN?
> Q5: is multitasking and communicate between threads easier than between
> sessions? (I am MT-untouched.)
>
> What I am asking for? I tried to get data via TCP to a FORTRAN program by
> calling an exec via CSL. The exec does a tcplisten|take|tcpdata|fblock
> 2|... (and some end-this-pipe-ASAP) what works if I slow down to call this
> exec not more than every two seconds what is not the foreseen transfer
> speed. Now I look for a chance to stay with one TCPDATA stage (in a thread
> or an other session) until the FORTRAN ends.
>
> TIA for every hint
>
> Best,
> Mike
>
> 
> CONFIDENTIALITY : This e-mail and any attachments are confidential and may
> be privileged. If you are not a named recipient, please notify the sender
> immediately and do not disclose the contents to another person, use it for
> any purpose or store or copy the information in any medium.
>


Re: [CMS-PIPELINES] AW: Reverse GET

2013-02-25 Thread Kris Buelens
http://www.vm.ibm.com/download/packages/descript.cgi?PUTFILES


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/2/25 FAULHABER Michael 

> Thank you for all replies. With the subject "Reverse GET" I had Kris'
> PUTFILE in mind but did not remember who and where.
> I try to excerpt pictures from *.mht files (archives from Windows Internet
> Explorer) and was upset that I did not find a solution on my own. Well, I
> did it the slow way, but without Pipelines I had no way at all. :)
>
> Best,
> Mike
>
> 
> CONFIDENTIALITY : This e-mail and any attachments are confidential and may
> be privileged. If you are not a named recipient, please notify the sender
> immediately and do not disclose the contents to another person, use it for
> any purpose or store or copy the information in any medium.
>


Re: [CMS-PIPELINES] Reverse GET

2013-02-22 Thread Kris Buelens
Our Telecourse (an HTML selfstudy)
  http://www.vm.ibm.com/download/packages/descript.cgi?TCVM2


Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/2/22 Roberto Halais 

> Hello listers:
>
> I am new to Pipelines. I will be using them in z/OS-TSO.
>
> Would someone please guide me to a good/easy tutorial?
>
> Appreciate any effort.
>
> Thank you.
>


Re: [CMS-PIPELINES] Reverse GET

2013-02-22 Thread Kris Buelens
PUTFILES has options to work with various inputs: if records are really
scattered around, the problem may be you run out-of-storage below 16M.  I
had a case with this when the input contained records for about 180
different files.  Then I created the GROUPED and BATCHED options for
PUTFILES.  The help explains it.

Kris Buelens,
 --- freelance z/VM consultant, Belgium ---
---


2013/2/22 Rob van der Heij 

> On 22 February 2013 09:17, FAULHABER Michael
>  wrote:
> > How may I write several files from one with file IDs built from data
> within this file? I know this 'reverse GET' was discussed long ago so --
> sorry for disturbing -- a hint to the result would be enough.
>
> Have a look at the "putfiles" from Kris.
> http://www.vm.ibm.com/download/packages/descript.cgi?PUTFILES
>
> I think this one (and the suggestion from John) does best when the
> input is grouped so that output files get written completely one after
> the other. When your input records are pretty random (like you're
> spraying into a large set of buckets) then you need something else
> (even though his "putfiles" has an "append" option to accumulate
> records, the overhead may be significant).
>
> | Sir Rob the Plumber
>


Re: [CMS-PIPELINES] Daylight Saving Time change?

2011-11-09 Thread Kris Buelens
How time is gotten in CMS is a bit of a mess, some use CP Q TIME, others
use Store Clock, 
- EXEC2's &TIME for example uses Store Clock (I guess), and returns UTC (if
the system is set up with timezone)
- I think having seen in a REXX source it -sometimes- uses CP Q TIME.

2011/11/9 Paul Gilmartin 

> On Nov 9, 2011, at 00:41, Rob van der Heij wrote:
>
> > On Wed, Nov 9, 2011 at 8:17 AM, John P. Hartmann 
> wrote:
> >> The system control file specifies the future timezone changes.
> >>
> >> SET TIMEZONE must be issued to change the timezone of a running
> >> system.  This drives an interrupt in the virtual machines for them to
> >> recalculate their local time.  It would appear that CMS fails to do
> >> so.
> >
> > Yep. I recall CMS builds on "TOD at last midnight" as determined
> > during IPL CMS.
> >
> But somehow Rexx time() gets it right.  I get output:
>
> Started at: 00:30 for 1/ascii/recscan.Rexx/1.26
> Delaying until: 24:30 2011-11-01
> Delayed  until: 24:30  at 2011-11-02 00:30:00
> Delaying until: 24:30 2011-11-02
> Delayed  until: 24:30  at 2011-11-03 00:30:00
> Delaying until: 24:30 2011-11-03
> Delayed  until: 24:30  at 2011-11-04 00:30:00
> Delaying until: 24:30 2011-11-04
> Delayed  until: 24:30  at 2011-11-05 00:30:00
> Delaying until: 24:30 2011-11-05
> Delayed  until: 24:30  at 2011-11-06 00:30:00
> Delaying until: 24:30 2011-11-06
> Delayed  until: 24:30  at 2011-11-06 23:30:00
> Delaying until: 24:30 2011-11-06
> Delayed  until: 24:30  at 2011-11-07 23:30:00
> Delaying until: 24:30 2011-11-07
> Delayed  until: 24:30  at 2011-11-08 23:30:00
> --- End of List ---
>
> from (excerpted):
>   ...
>   do Day = 1
>   'output Delaying until:' When date( 'S', , , '-' )
>   'callpipe literal | *.output.FLSH:'  /* Flush buffer so far.  */
>   'callpipe literal' When '| delay | var stopped'
>   'output Delayed  until:' value( 'stopped' ) 'at' date( 'S', , , '-'
> ) time()
>   'callpipe literal | *.output.FLSH:'  /* Flush buffer so far.  */
>   if symbol( 'stopped' )<>'VAR'  then leave Iter
>   When = '24:30'  /* Delay until 07:00 "tomorrow".  */
>   if Date( 'Weekday' )=='Tuesday' then leave Day;  end Day
>   ...
>
> I don't get Kris's loop because I cautiously chose a time after midnight
> rather than just before.
>
> -- gil
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Daylight Saving Time change?

2011-11-08 Thread Kris Buelens
Servers using PIPE DELAY need to be restarted, an IPL CMS is required.

One can not only suffer from wrong wakeup times, but -depending on the REXX
code- suffer from a CPU loop: my server wanted to wakeup at 23:59 (and stop
the pipeline then too).
Here some comments from my ACCOUNT EXEC
 *** BEWARE 
 * At least up to z/VM 4.2, the DELAY stage cannot cope with dynamic   *
 * timezone changes, e.g. a DELAY to wakeup at 23:58:00 would cause a  *
 * wakeup at 22:58:00 when the timezone changed from Summer to Winter. *
 * Result is a loop -every day- during the hour of TZ change.  *
 * The only solution is to re-IPL CMS (NUCXDROP PIPE doesn't help) *
 * We try to solve that problem too.   *
 ***
 I programmed around this problem.  When waking up: check the time it is
and compare with the expected time

In the PIPE:
,/* Do  stop at midnight to close files and cleanup --*/
'?Literal 23:59:00|Delay', /* To stop around midnight */
'|VAR MIDNIGHT',
'|SPEC 1-* 1 /: passing midnight../ N|cons',
'|STOP: FaninAny',
'|PipeStop',
   
   when symbol('MIDNIGHT')='VAR' then call Daily_Clean
  
/*-*/
Daily_Clean: /* Close current file, format the recs and open a new one*/
/*-*/
 parse value date('S') time() with today now
 if left(Midnight,2)<>left(now,2) then do
/* Delay's time does not match CP's time */
Say 'There has been a dynamic timezone change... Must IPL'
'CP IPL CMS PARM AUTOCR'
 end

 say today now 'Daily Cleanup started'
  .



2011/11/8 Paul Gilmartin 

> I have an event that I intended to occur daily at 12:30:
>
>'literal 36:30 | dup * | ... delay | ...'
>
> Last week it was happening at 12:30.  This week, it is
> happening at 11:30.  It's easy to suspect the Daylight
> Time change.  The event timestamps its output with the
> Rexx time() function, which shows 11:30, so it appears
> that the system local time offset is correct.
>
> I have not restarted the pipeline for several weeks.
> Is it possible that Pipelines fetches the clock offset
> once, when the pipeline starts, and never again?
>
> Or might this depend on how ops set the local time?
>
> Thanks,
> gil
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] new data set stage; MVS REXX trace weirdness

2011-10-19 Thread Kris Buelens
MVS has -in VM eyes- special meanings for return codes, or, standards.
Going from 4 = Warning, over 8 and 12 to 16 = failure.

Wasn't there a change in REXX when it became SAA to tell that the "old"
TRACE NEGATIVE" was rebaptised to "TRACE FAILURE", and then a 16 is
definitively a traceable event.


2011/10/19 Glenn Knickerbocker 

> I finally got fed up enough with the extra step of allocating a new data
> set to write myself a front-end to >MVS to do it for me.  Before I go
> any further with figuring out how much more function I might want in it,
> has anybody done this already?
>
> If not, any recommendations for useful defaults?  I picked RECFM(V,B)
> LRECL(32756) BLKSIZE(32760) SPACE(10,100) CYL.
>
> In checking for existence of the data set, I ran into an oddity with the
> REXX TRACE setting.  With TRACE N, I get trace output not just when the
> return code is negative, but also when it's > 12.  Any idea what's going
> on here?  I poked through the TSO REXX books looking for anything
> special about TRACE in the MVS address space, but only found a note
> about messages in the output file in MVS batch.
>
> ¬R
>



-- 
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] VARSET case sensitive

2011-09-30 Thread Kris Buelens
And, EXEC2 is entirely case sensitive, and the EXECCOMM interface -used by
VARSET & co- dates from the EXEC2 days.

2011/9/29 Glenn Knickerbocker 

> On 09/29/2011 04:36 PM, Frank M. Ramaekers wrote:
> > Why is VARSET case sensitive?  As far as I know, REXX variables are
> > case-insensitive.
>
> The tails of stemmed variables are case-sensitive:
>
>  /* try this */
>  Address COMMAND
>  'PIPE literal upper case| var ABC.XYZ direct'
>  'PIPE literal lower case| var ABC.xyz direct'
>  Say abc'.'xyz '=' abc.xyz  /* ABC.XYZ = upper case */
>  xyz = 'xyz'
>  Say abc'.'xyz '=' abc.xyz  /* ABC.xyz = lower case */
>
> ¬R
>



-- 
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] QUERY ENROLL in a PIPELINE

2011-08-22 Thread Kris Buelens
You could look into the PIPE forum to fond a very recent discussion on the
subject

Or here an extract with my notes with programming tips
*
[MENU:ROOT] [NAME:WORKUNIT]
[TITLE:How to handle Workunit problems with SFS files]
[MODEL: /* PIPE STATE fn ft dirid | ... leaves workunit open if the file]
[MODEL: |  is found.  This then results in: ]
[MODEL: |DMSQRQ1157E Work unit already active when atomic request...]
[MODEL: |  Solution: commit the workunit.   Example ]
[MODEL: |  'PIPE LITERAL T T .|STATE ISODATE|CONS'  ]
[MODEL: |  call csl 'DMSCOMM RETC REAS'; say retc reas  ]
[MODEL: |  'CMDCALL QUERY LIMITS *'  /* Would fail without DMSCOMM*/]
[MODEL: */  ]
[MODEL: /* Similar, when a file is open and a workunit is active, some  ]
[MODEL: |  cmds give: DMSQRQ1157E Work unit already active when atomic..]
[MODEL: |  Solution: get a new workunit.   Example  ]
[MODEL: |  call csl 'DMSGETWU RETC REAS WID1' /* Get a workunit */  ]
[MODEL: |  call csl 'DMSPUSWU RETC REAS WID1' /* Start using it */  ]
[MODEL: |  'CMDCALL QUERY LIMITS *' ]
[MODEL: |  call csl 'DMSPOPWU RETC REAS'  /* Use prev Wunit */  ]
[MODEL: |  call csl 'DMSRETWU RETC REAS WID1' /* Delete new Wunit */]
[MODEL: */  ]
[END:WORKUNIT]

2011/8/22 Frank M. Ramaekers 

> I don't quite understand why I'm getting this:
>
>
>
>   463 *-*  "PIPE LITERAL QUERY ENROLL USER FOR ALL"
> !._WorkPool "| CMS | STEM QE."
>
>   >L>"PIPE LITERAL QUERY ENROLL USER FOR ALL"
>
>
>   >V>"VMSYSA:"
>
>
>   >O>"PIPE LITERAL QUERY ENROLL USER FOR ALL
> VMSYSA:"
>
>   >L>"| CMS | STEM QE."
>
>
>   >O>"PIPE LITERAL QUERY ENROLL USER FOR ALL
> VMSYSA: | CMS | STEM QE."
>
>   +++ RC(70) +++
>
>
> 'QUERY ENROLL USER FOR ALL VMSYSA:'
>
>
> DMSQRE1157E Work unit already active when atomic request is issued for
> work unit 1
>
>
>
>  Frank M. Ramaekers Jr.
>
>
>
>
>
> Systems Programmer
>
> MCP, MCP+I, MCSE & RHCE
>
>
>
> American Income Life Insurance Co.
>
> Phone: (254)761-6649
>
>
>
> 1200 Wooded Acres Dr.
>
> Fax: (254)741-5777
>
>
>
> Waco, Texas  76701
>
>
>
>
>
>
>
>
>
>
> _
> This message contains information which is privileged and confidential and
> is solely for the use of the
> intended recipient. If you are not the intended recipient, be aware that
> any review, disclosure,
> copying, distribution, or use of the contents of this message is strictly
> prohibited. If you have
> received this in error, please destroy it immediately and notify us at
> privacy...@ailife.com.
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] STATE on SFS w/o ACCESS

2011-08-19 Thread Kris Buelens
Yes, that would seem better.  But, I no longer have the email(s?) I
exchanged with you when I discovered this problem many years ago.  I think
to remember that your reply was: "the STATE stage should not issue a Commit
and commit everything".  And, that's right indeed.  Maybe my question was
unclear/misleading.

So indeed, if you'd change STATE to use its own workunit, fewer people would
get the surprises of the current behaviour.

And, a remark to Rob: the QUERY LIMITS is just an example of a command that
stops working in an open workunit.  I use this as example as that was where
I discovered there was a problem.  I often stay a very long time in FILELIST
for example, without returning to CMS Ready.  With my changes to FILELIST,
the top line can be changed to
 *   DISK: X R/W 17 Files, DIR POOLSRC:MAINT. 2% of 362000 4K blocks Used*
At some time I saw that this x% used was no longer displayed.  So then I
went looking for which piece of code could be the cause, and I found PIPE
STATE and contacted John...

2011/8/19 Rob van der Heij 

> On Fri, Aug 19, 2011 at 1:01 PM, John P. Hartmann 
> wrote:
> > Kris, are you saying that STATE should create a unit of work to do its
> > deed on?
> >
> > I have never understood why querying something could leave a work unit
> changed.
>
> In theory, when there's uncommitted work you can't really predict what
> your usage is after the work unit is committed or rolled back. I think
> Q LIMITS is trying too hard. Why not simply state the current usage
> with the state of the open work units. When it forces me to run it in
> a private work unit, I believe it sees the world as it was before the
> work units opened. That may be what I need, but I'd rather decide for
> that myself.
>
> I've been using a pipeline stage similar to the idiom Kris shows. This
> lets me run a series of CMS commands in a private work unit and
> decides to roll back or commit the work unit. If nothing else, I would
> use   PIPE literal Q LIMITS | privwu command | cons
>
> /* PRIVWU   REXX  */
> parse arg stage
> rc = mycsl('DMSGETWU retc reas wuid') + mycsl('DMSPUSWU retc reas
> wuid')
>
> 'callpipe (end \) *: |' stage '| *:'
> piprc = rc
> if rc <> 0 then rc = mycsl('DMSROLLB retc reas')
> else rc = mycsl('DMSCOMM retc reas')
>
> rc = mycsl('DMSPOPWU retc reas') + mycsl('DMSRETWU retc reas wuid')
> return piprc
>
> mycsl:
>  parse arg routine retc reas .
>  myrc = csl(arg(1))
>  if myrc <> 0 then say 'RC='myrc 'from CSL call' routine,
>'Reason Code' value(reas)
> return myrc
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] STATE on SFS w/o ACCESS

2011-08-19 Thread Kris Buelens
And, *beware if you start using PIPE .. STATE  with dirids in execs*.  You
will automatically start discovering the world of CMS workunits, more
precise: the default workunit remaining active and many SFS related commands
that start failing.  One needs to return to CMS Ready to make it all work
again.

Here the notes I keep around in a "model" file for REXX execs.

 PIPE STATE fn ft dirid ! ... leaves workunit open if the file
 is found.  This then results in:
   DMSQRQ1157E Work unit already active when atomic request...
 Solution: commit the workunit.   Example
 'PIPE LITERAL T T .!STATE ISODATE!CONS'
 call csl 'DMSCOMM RETC REAS'; say retc reas
 'CMDCALL QUERY LIMITS *'  /* Would fail without DMSCOMM*/

 Similar, when a file is open and a workunit is active, some
 cmds give: DMSQRQ1157E Work unit already active when atomic..
 Solution: get a new workunit.   Example
 call csl 'DMSGETWU RETC REAS WID1' /* Get a workunit */
 call csl 'DMSPUSWU RETC REAS WID1' /* Start using it */
 'CMDCALL QUERY LIMITS *'
 call csl 'DMSPOPWU RETC REAS'  /* Use prev Wunit */
 call csl 'DMSRETWU RETC REAS WID1' /* Delete new Wunit */

Above thus two possiblities.  The first one - with the commit- is easy, but
are you sure your code can commit everything?  So maybe the second is what
you need.  The PIPE with the STATE would go at the QUERY LIMITS place.
Note: the CMDCALL is not related to this problem, but makes QUERY LIMITS
produce an errormessage even when running under ADDRESS COMMAND.

2011/8/18 Bruce Hayden 

> PIPE STATE can do it - but read the author's help about return codes.
>
> On Thu, Aug 18, 2011 at 3:14 PM, Frank M. Ramaekers
>  wrote:
> > Is there a way to test the existence of a file in a SFS directory w/o
> > first ACCESSing it?
> >
> >
> >
> >  Frank M. Ramaekers Jr.
> >
> >
> >
> >
> >
> > Systems Programmer
> >
> > MCP, MCP+I, MCSE & RHCE
> >
> >
> >
> > American Income Life Insurance Co.
> >
> > Phone: (254)761-6649
> >
> >
> >
> > 1200 Wooded Acres Dr.
> >
> > Fax: (254)741-5777
> >
> >
> >
> > Waco, Texas  76701
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > _
> > This message contains information which is privileged and confidential
> and is solely for the use of the
> > intended recipient. If you are not the intended recipient, be aware that
> any review, disclosure,
> > copying, distribution, or use of the contents of this message is strictly
> prohibited. If you have
> > received this in error, please destroy it immediately and notify us at
> privacy...@ailife.com.
> >
>
>
>
> --
> Bruce Hayden
> z/VM and Linux on System z ATS
> IBM, Endicott, NY
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] PACK PIPE

2011-08-08 Thread Kris Buelens
A PACKED file has RECFM F LRECL 1024, so
  "|  >" DirFn "DIRECT00" DirFm 'F 1024',

2011/8/8 Frank M. Ramaekers 

> I'm not quite sure what is wrong with this PIPE:
>
>
>
> /* */
>
>  !._Direct="USER DIRECT A"
>
>  Parse var !._Direct DirFn DirFt DirFm
>
>  "PIPE (endchar ?)",
>
>  "|  <" !._Direct,
>
>  "|  SPEC 1-72 1",
>
>  "|  STRIP",
>
>  "|p:PACK VARIABLE",
>
>  "|w: >" DirFn "DIRECT00" DirFm,
>
>"?p:",
>
>  "|w:"
>
> Exit
>
>
>
> If I XEDIT the result, it doesn't show it as PACKED and the data is
> uncorrect (not unpacked).
>
>
>
>
>
>  Frank M. Ramaekers Jr.
>
>
>
>
>
> Systems Programmer
>
> MCP, MCP+I, MCSE & RHCE
>
>
>
> American Income Life Insurance Co.
>
> Phone: (254)761-6649
>
>
>
> 1200 Wooded Acres Dr.
>
> Fax: (254)741-5777
>
>
>
> Waco, Texas  76701
>
>
>
>
>
>
>
>
>
>
> _
> This message contains information which is privileged and confidential and
> is solely for the use of the
> intended recipient. If you are not the intended recipient, be aware that
> any review, disclosure,
> copying, distribution, or use of the contents of this message is strictly
> prohibited. If you have
> received this in error, please destroy it immediately and notify us at
> privacy...@ailife.com.
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] PIPE to read STACK when not 1st

2011-06-30 Thread Kris Buelens
Sir Rob, I had a look at your promising "conditional-output-of-cms-command.

Did you ever use it in practice?  Because: most CMS commands do not produce
error messages when started in "command" mode.  To get the reliability of
"command" (no execs called by accident) and the advantage of having error
messages being produced. For example:
  address command 'CMDCALL STATE some file'
  if rc<>0 then exit rc

I found this technique very suited to handle SFS commands, their RC is very
often not unique for various errors.  So for example:
   'PIPE COMMAND CMDCALL QUERY LIMITS FOR xyz SFSabc:',
 '|VAR EMSG', /* pass error or header to REXX */
 '|DROP', /* Drop header or error msg */
 '|'
   if rc<>0 then call errExit rc,'Something is wrong:',emsg

And, for you subroutine:

'PIPE (end ? name OHCMS.EXEC:8)',
   '? var cmd',
   '| insert /CMDCALL /',  /* make the command produce error messages */
   '| c: not command ',
   '| strnfind ,0, ',
   '| d: dam ',
   '? c: ',

   '| buffer ',
   '| d:',
   '| cons'



2011/6/30 Rob van der Heij 

> On Thu, Jun 30, 2011 at 3:33 PM, Paul Gilmartin 
> wrote:
>
> > I suppose this is useful in the case where want the side effects
> > of the preceding command, but not its output.  Nowadays, given the
> > prevalance of PIPE, GETFMADR ought to have a (NOSTACK) option.
>
> I believe it helps to show unexpected output rather than ignore it
> because you did not expect any. It's very frustrating to see a tool
> exit with RC=28 and maybe even report "File not found" where the
> original messages would have told me *which* file was missing. It's
> not always that simple, so I did this one a while ago:
> http://rvdheij.wordpress.com/2008/12/19/conditional-output-of-cms-commands/
>
> The advantages of a generic interface are obvious. If we were to
> design the CMS again now that we have CMS Pipelines, nobody would care
> about STACK, FIFO, LIFO, and STEM options for various commands.
>
> | Sir Rob the Plumber
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] PIPE to read STACK when not 1st

2011-06-30 Thread Kris Buelens
> make sure the command (and it's parameters) is in upper case!
Corrected:
  make sure the command (and it's parameters) is in correct case!
Because, with COMMAND and ADDRESS COMMAND, you can for example
- send mixed case messages
- send lower case commands to a Linux guest
- handle CMS files with a mixed case fileid
- avoid all "file not found" messages, without having to code SET CMSTYPE HT
(what hides everything)
- ...
Coding upper case commands is just a habbit, not very hard, and, imho, with
command in uppercase, REXX execs become more readable.   Our "Advanced REXX
Telecourse", TCVM1, has much more information:
 http://www.vm.ibm.com/download/packages/descript.cgi?TCVM1

2011/6/30 Frank M. Ramaekers 

> Ahhhbut using "command" you have to make sure the command (and it's
> parameters) is in upper case!
>
> pipe literal getfmadr f00 | command | append stack | console
>
> PIPCOM281W Mixed case command verb "getfmadr".
> PIPMSG003I ... Issued from stage 2 of pipeline 1.
> PIPMSG001I ... Running "command".
>
> pipe literal GETFMADR f00 | command | append stack | console
>
> DMSCYG363E Invalid starting address f00
>
>
> Frank M. Ramaekers Jr.
>
>
>
> -Original Message-
> From: CMSTSO Pipelines Discussion List [mailto:CMS-PIPELINES@VM.MARIST.EDU]
> On Behalf Of Rob van der Heij
> Sent: Thursday, June 30, 2011 7:59 AM
> To: CMS-PIPELINES@VM.MARIST.EDU
> Subject: Re: [CMS-PIPELINES] PIPE to read STACK when not 1st
>
> On Thu, Jun 30, 2011 at 2:50 PM, Frank M. Ramaekers
>  wrote:
> >
> > I want to read the stack in the middle of a pipe.   How?   For example,
> > GETFMADR puts information on the stack.  How can it be retrieved from
> > PIPE?
> >
> >
> >
> > "PIPE LITERAL GETFMADR | CMS |  (pull from stack) | ..."
>
> (using "command" to discourage Sir Kris from warning you about the
> virtues of command resolution in CMS... )
>
>  literal GETFMADR | command | append stack | ..
>
> That gives you both. The output of the command followed by what's on the
> stack.
> You could also have  " ..| hole | append stack | ..."  if you just
> want the stack, or " .. | preface stack | .. "  to get the stacked
> lines first.
>
> | Sir Rob the Plumber
>
> _
> This message contains information which is privileged and confidential and
> is solely for the use of the
> intended recipient. If you are not the intended recipient, be aware that
> any review, disclosure,
> copying, distribution, or use of the contents of this message is strictly
> prohibited. If you have
> received this in error, please destroy it immediately and notify us at
> privacy...@ailife.com.
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Splitting records to fit

2011-06-14 Thread Kris Buelens
Dit you look at SPILL

2011/6/14 Paul Gilmartin 

> I'd like to split records to fit the width of a page, screen,
> whatever.  Rules:
>
> Records not exceeding the maximum allowable width are passed
> to the output unmodified.
>
> Longer records are split at word boundaries if possible.  Text
> not at the split point is not modified (multiple blanks are not
> compressed, etc.)
>
> If a word is longer than the maximum allowable width, it is
> broken into pieces of the maximum allowable width.
>
> (Most of these can be ignored if necessary.  But a file with
> no oversize records should pass the filter unmodified.)
>
> SPLIT and CHOP don't seem to do quite what I want, but perhaps
> I just don't know how to use them.
>
> Thanks,
> gil
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Notification on logoff?

2011-05-05 Thread Kris Buelens
SFPURGER does not purge open files.
And, that SFSPURGE can purge it right after an IPL, I'd like that: after an
IPL, AUTOLOG1/2 will probably restart the service machine, so it is OK, and
one'd better not receive that pending" email.

2011/5/5 Schuh, Richard 

> Does the purger purge open files? If not, it would be OK; however, it will
> not be sent until it is closed. If that happens in conjunction with a
> SHUTDOWN, it may still be caught by the purger before it can be sent. The
> monitoring SVM is the answer. Here we have 2 machines. One monitors the
> entire complex of SVMs; the other, only the main monitor.
>
> Regards,
> Richard Schuh
>
>
>
> > -Original Message-
> > From: CMSTSO Pipelines Discussion List
> > [mailto:CMS-PIPELINES@VM.MARIST.EDU] On Behalf Of Bruce Hayden
> > Sent: Wednesday, May 04, 2011 12:11 PM
> > To: CMS-PIPELINES@VM.MARIST.EDU
> > Subject: Re: Notification on logoff?
> >
> > That would only work if the virtual machine resets, which it
> > would do if it is IPLed or it logs off.  But, if it just dies
> > and sits there without a VM or CP read (or the 15 minute
> > timebomb is disabled) then your spool file wouldn't be sent.
> >
> > Maybe your server could use the timebomb diagnose (diag 288)
> > via the timebomb package on the VM download page.  Then, if
> > your server crashes, you wouldn't reset the timebomb and it
> > would reboot.  Of course, a better answer is use some kind of
> > monitoring software (commerical product, a tool, or home
> > grown) that would know that your server died and react accordingly.
> >
> > On Wed, May 4, 2011 at 1:29 PM, Paul Gilmartin
> >  wrote:
> > > I tend a service machine that mostly runs unattended,
> > processing work
> > > requests that are sent to its reader (email, actually, from UNIX
> > > systems.)  Yesterday, someone complained that his request
> > had not been
> > > processed.  The service machine had crashed 32 days before!
> > >
> > > I can't diagnose it from the spooled console log -- our site purges
> > > spool files after two weeks.
> > >
> > > So, I get a weird idea.  In PROFILE EXEC:
> > >
> > >   CP DEFINE PUNCH ...  /* Not 00D */
> > >   CP SPOOL ... to RSCS CONT
> > >
> > >   Use NETDATA, etc. stages to create an email image addressed to
> > >   me, and leave it in the CONT spooled punch.
> > >
> > > When the server crashes, the punch will be closed and the RSCS will
> > > deliver the email to me.
> > >
> > > o Will this work?
> > >
> > > o Is it abusive of system resources?
> > >
> > > o Is there a better way?
> > >
> > > Thanks,
> > > gil
> > >
> >
> >
> >
> > --
> > Bruce Hayden
> > z/VM and Linux on System z ATS
> > IBM, Endicott, NY
> >




--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] VM/Pipelines/REXX job in Cleveland OH; act now or be square

2011-04-28 Thread Kris Buelens
No no, this Pipeline job should come to Belgium.

2011/4/28 James Laing - Hotmail 

> There are jobs going in Belgium?
>
> --
> From: "Kris Buelens" 
> Sent: Thursday, April 28, 2011 8:25 PM
>
> To: 
> Subject: Re: [CMS-PIPELINES] VM/Pipelines/REXX job in Cleveland OH; act now
>
> or be square
>
>  What about Belgium?
>>
>> 2011/4/28 James Laing - Hotmail 
>>
>>  It's a shame that such a lovely job is not going here in the UK!
>>>
>>> --
>>> From: "Philip Cohen" 
>>> Sent: Thursday, April 28, 2011 1:49 PM
>>> To: 
>>> Subject: [CMS-PIPELINES] VM/Pipelines/REXX job in Cleveland OH; act now
>>> or
>>> be square
>>>
>>>
>>>  This is at DFAS (Defense Finance and Accounting Services) in the Federal
>>>
>>>> building downtown; I'm the technical lead. Our first interview is today,
>>>> but there should still be time to email a resume to
>>>> jackie.robi...@hp.com. Sorry about the late notice.
>>>> --
>>>> Philip M. Cohen 610-331-3926
>>>>
>>>>
>>>>
>>
>> --
>> Kris Buelens,
>> IBM Belgium, VM customer support
>>
>>


--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] VM/Pipelines/REXX job in Cleveland OH; act now or be square

2011-04-28 Thread Kris Buelens
What about Belgium?

2011/4/28 James Laing - Hotmail 

> It's a shame that such a lovely job is not going here in the UK!
>
> --
> From: "Philip Cohen" 
> Sent: Thursday, April 28, 2011 1:49 PM
> To: 
> Subject: [CMS-PIPELINES] VM/Pipelines/REXX job in Cleveland OH; act now or
> be square
>
>
>  This is at DFAS (Defense Finance and Accounting Services) in the Federal
>> building downtown; I'm the technical lead. Our first interview is today,
>> but there should still be time to email a resume to
>> jackie.robi...@hp.com. Sorry about the late notice.
>> --
>> Philip M. Cohen 610-331-3926
>>
>>


--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Repetitive word lookup and insertion.

2011-03-17 Thread Kris Buelens
What about (untested)
  .. read details ...
  '|Insert x15 After',
  '|split 0 before sting /:FIXED/',
  '|LK: Lookup W3 W1 Detail Master',
  '|SPEC 1-* 1 Read W3 NextWord',
  '|In: FaninAny',
  '|Deblock Linend 15',
   you output
  '? Read masters
  '|LK:',
  '|SPEC 1-* "n:a" NewtWord|In:'

I think I should be close.

2011/3/17 Mike Walter 

> Given a master file with records like:
>
> lua x APP1
> lub x APP2
> luc x APP3
> lud x APP4
>
> And a detail file containing records like:
> :FIXEDA MISC.DATA  :FIXEDP BLAHA lua  :FIXEDP BLAHX lua   :FIXEDP BLAHJ
> luc
> :FIXEDA MISC.DATA  :FIXEDP BLAHB luc  :FIXEDP BLAHQ fail  :FIXEDP BLAHR
> lud   :FIXEDP BLAHJ lud (more :FIXEDP's?)
> :FIXEDA MISC.DATA  :FIXEDP BLAHC lub
>
> Goal:
> :FIXEDA MISC.DATA  :FIXEDP BLAHM lua APP1  :FIXEDP BLAHR lua APP1  :FIXEDP
> BLAHW luc APP3
> :FIXEDA MISC.DATA  :FIXEDP BLAHJ luc APP3  :FIXEDP BLAHP fail n/a  :FIXEDP
> BLAHH lud APP4  :FIXEDP BLAHJ ddd APP4
> :FIXEDA MISC.DATA  :FIXEDP BLAHA lub APP3
>
> (The given words are just examples, not even close to the actual file
> contents.)
> There is no pattern to the 2nd word after each :FIXEDP (shown as lowercase
> strings herein just to make them stand out in the examples).
>
> How do I LOOKUP the 2nd word after each ":FIXEDP" in the detail file
> against in the 1st word of the master file, and (this is the problem)
> insert the 3rd word from the matching master file record without a stall
> or loss of data integrity?
>
> Additional difficulty points will be awarded for a working example
> permitting append of a text string when the lookup fails (in the example:
> "fail n/a").
>
> Everything I've tried has failed due to LOOKUP's delay.  If I could even
> think of decent search arguments, I'd search the list for previously
> posted examples.
>
> TIA
>
> Mike Walter
> Aon Corporation
> The opinions expressed herein are mine alone, not my employer's.
>
>
>
> The information contained in this e-mail and any accompanying documents may
> contain information that is confidential or otherwise protected from
> disclosure. If you are not the intended recipient of this message, or if
> this message has been addressed to you in error, please immediately alert
> the sender by reply e-mail and then delete this message, including any
> attachments. Any dissemination, distribution or other use of the contents of
> this message by anyone other than the intended recipient is strictly
> prohibited. All messages sent to and from this e-mail address may be
> monitored as permitted by applicable law and regulations to ensure
> compliance with our internal policies and to protect our business. E-mails
> are not secure and cannot be guaranteed to be error free as they can be
> intercepted, amended, lost or destroyed, or contain viruses. You are deemed
> to have accepted these risks if you communicate with us by e-mail.
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Where did my output go?

2011-01-07 Thread Kris Buelens
PROCEDURE EXPOSE  has nothing todo with it.

An example (useless).
  AA EXEC
  'PIPE < PROFILE EXEC | REXX (BB EXEC) | CONS'
  BB EXEC
 'ADDPIPE *.input: | STEM ABC.' ; exit
The ABC. stem will be set in the AA EXEC.  My example does not illustrate
that the BB EXEC could be gone when the added PIPE still runs.

Consider that ADDPIPE adds stages always *outside* the REXX that added it.

Let's change BB EXEC to:
   'ADDPIPE *.input:| stem ABC.| buffer | split |*.input:'
   do 5; 'READTO' ;  ;end ; exit

Soon after the start of the pipe, before the ADDPIPE, we have this topology
  <  | rexx{ BB EXEC } | CONS
After the ADDPIPE it becomes
  <  | STEM | Buffer | Split | rexx{BB EXEC} | CONS
With this code, it should be clear that after having consumed 5 records
(here 5 words due to SPLIT) , BB EXEC terminates.  And we've got:
  <  | STEM | Buffer | Split
The STEM stage is still there, BB EXEC has ended; AA EXEC is still there, as
long as the PIPE command runs.

When using ADDPIPE, reading Melinda's "Cramming for the Journeyman Plumber,
Part III" is strongly recommended.
http://vm.marist.edu/~pipeline/#MWV

2011/1/7 Paul Gilmartin 

> On Jan 7, 2011, at 09:18, Kris Buelens wrote:
>
> > The REXX variable pool addressed by ADDPIPE is different from CALLPIPE.
> > - with CALLPIPE, the REXX instance issuing it is surely available as long
> as
> > the called PIPE runs.
> > - with ADDPIPE, this REXX instance can long be gone when the added PIPE
> > still runs.
> > The online help explains this.
> >
> Of course.  Foiled by the PROCEDURE EXPOSE.  I suppose I had some
> intuition of this; I was careful not to use a stem that was
> hidden in some scopes.  But, of course, Pipelines can't know this.
>
> You say a "different" variable pool.  Did it, in fact go to some
> variable pool where it could subsequently be accessed.  If not,
> I'd almost think that ADDPIPE ... STEM should be a syntax error.
> But perhaps Pipelines can't detect this easily, either.
>
> Rob, thanks for the suggestion; it meets my need.  I was seeking
> a greater generality, where today I might do:
>
>ADDPIPE ... | STEM ...
>
> and tomorrow:
>
>ADDPIPE ... | > fn ft fm
>
> and not need to modify my OUTPUT statements.  Kris explains that
> this is nearly impossible.
>
> Thanks,
> gil
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Where did my output go?

2011-01-07 Thread Kris Buelens
The REXX variable pool addressed by ADDPIPE is different from CALLPIPE.
- with CALLPIPE, the REXX instance issuing it is surely available as long as
the called PIPE runs.
- with ADDPIPE, this REXX instance can long be gone when the added PIPE
still runs.
The online help explains this.

2011/1/7 Paul Gilmartin 

> Naively, I'd expect the following:
>
>5 *-* 'addstream output FOO'
> >>>  "addstream output FOO"
>7 *-* 'addpipe *.output.FOO: | stem BAR.'
> >>>  "addpipe *.output.FOO: | stem BAR."
>8 *-* 'select output FOO'
> >>>  "select output FOO"
>9 *-* 'output Wombat'
> >>>  "output Wombat"
>   10 *-* 'sever output'
> >>>  "sever output"
>   11 *-* say symbol( 'BAR.0' ) value( 'BAR.0' )
> >>>  "LIT BAR.0"
> LIT BAR.0
>
> ... to do the same as:
>
>   13 *-* 'callpipe literal Wombat | stem BAR.'
> >>>  "callpipe literal Wombat | stem BAR."
>   14 *-* say symbol( 'BAR.0' ) value( 'BAR.0' )
> >>>  "VAR 1"
>
> It doesn't.  What's the paradigm for adding to a stem piecemeal?
>
> Thanks,
> gil
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Too many streams?

2011-01-06 Thread Kris Buelens
Oh yes, and, I'd find
  c: PICK W3-4 == /CP SYSTEM/
a bit more elegant than
 c: ZONE W3-4 FIND CP_SYSTEM

2011/1/6 Frank M. Ramaekers 

> Is something wrong with this or is there a limit to the streams?
>
>
>
> /**/
>
>  Trace "O"
>
>  "PIPE (endchar ?)",
>
>  "|  LITERAL QUERY DASD ALL",
>
>  "|  CP",
>
>  "|c:ZONE W3-4 FIND CP_SYSTEM"||,
>
>  "| HOLE",
>
>"?c:",
>
>  "|d:ZONE W3-4 FIND CP_OWNED"||,
>
>  "| HOLE",
>
>"?d:",
>
>  "|e:ZONE W3 FIND ATTACHED"||,
>
>  "| HOLE",
>
>"?e:",
>
>  "|u:SPLIT AT ,",
>
>  "|  STRIP",
>
>  "|  CONSOLE",
>
>"?u:",
>
>  "|  SPEC /Unknown:/ 1 1-* NW"
>
> PIPFPI264E Too many streams.
>
> PIPSCA003I ... Issued from stage 2 of pipeline 4.
>
> PIPSCA001I ... Running "SPLIT AT ,".
>
>
>
> The HOLE stages are place holders (for now).
>
>
>
>  Frank M. Ramaekers Jr.
>
>
>
>
>
> Systems Programmer
>
> MCP, MCP+I, MCSE & RHCE
>
>
>
> American Income Life Insurance Co.
>
> Phone: (254)761-6649
>
>
>
> 1200 Wooded Acres Dr.
>
> Fax: (254)741-5777
>
>
>
> Waco, Texas  76701
>
>
>
>
>
>
>
>
> _____
> This message contains information which is privileged and confidential and
> is solely for the use of the
> intended recipient. If you are not the intended recipient, be aware that
> any review, disclosure,
> copying, distribution, or use of the contents of this message is strictly
> prohibited. If you have
> received this in error, please destroy it immediately and notify us at
> privacy...@ailife.com.
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Too many streams?

2011-01-06 Thread Kris Buelens
The problem is that split accept only one stream. What would split send to a
secondary output stream? It's task is to split in words, it doesn't remove
anything that would be candidate for a secondary stream.

And, the number of streams in general is unlimited (or seems to be).

2011/1/6 Frank M. Ramaekers 

> Is something wrong with this or is there a limit to the streams?
>
>
>
> /**/
>
>  Trace "O"
>
>  "PIPE (endchar ?)",
>
>  "|  LITERAL QUERY DASD ALL",
>
>  "|  CP",
>
>  "|c:ZONE W3-4 FIND CP_SYSTEM"||,
>
>  "| HOLE",
>
>"?c:",
>
>  "|d:ZONE W3-4 FIND CP_OWNED"||,
>
>  "| HOLE",
>
>"?d:",
>
>  "|e:ZONE W3 FIND ATTACHED"||,
>
>  "| HOLE",
>
>"?e:",
>
>  "|u:SPLIT AT ,",
>
>  "|  STRIP",
>
>  "|  CONSOLE",
>
>"?u:",
>
>  "|  SPEC /Unknown:/ 1 1-* NW"
>
> PIPFPI264E Too many streams.
>
> PIPSCA003I ... Issued from stage 2 of pipeline 4.
>
> PIPSCA001I ... Running "SPLIT AT ,".
>
>
>
> The HOLE stages are place holders (for now).
>
>
>
>  Frank M. Ramaekers Jr.
>
>
>
>
>
> Systems Programmer
>
> MCP, MCP+I, MCSE & RHCE
>
>
>
> American Income Life Insurance Co.
>
> Phone: (254)761-6649
>
>
>
> 1200 Wooded Acres Dr.
>
> Fax: (254)741-5777
>
>
>
> Waco, Texas  76701
>
>
>
>
>
>
>
>
> _________
> This message contains information which is privileged and confidential and
> is solely for the use of the
> intended recipient. If you are not the intended recipient, be aware that
> any review, disclosure,
> copying, distribution, or use of the contents of this message is strictly
> prohibited. If you have
> received this in error, please destroy it immediately and notify us at
> privacy...@ailife.com.
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Converting an EXEC to a stage

2010-11-25 Thread Kris Buelens
If you've got fewer CMS commands than PIPE stages, leave the default
addressing to 'pipe' and prefix the CP/CMS commands.  Like
   address '' 'IDENTIFY'

Or, what I do in my "self-contained" execs:
  parse upper source . . myname mytype . syn addr .
  if addr='?' then signal subpipe
  address command
  ..
/*-*/
SubPipe: /* Pipe subroutines   */
/*-*/
 parse upper arg fnc opts
 Select
  when fnc='PUTFILES' then call PutFiles opts
  when fnc='CLEVERSEL' then call CleverSel opts
  Otherwise call ErrExit 89,'Coding error: unknown parm for SubPipe:' fnc
 end




2010/11/25 Paul Gilmartin 

> I have been bestowed (long ago) a sizable (over 1000 lines)
> EXEC. I'm considering converting it to a REXX stage so I can
> use plumbing; avoid use of temporary files and the dreadful
> CMS console stack, replace some EXECIO 1 DISKR with READTO
> (or even PEEKTO!), etc.  But I'd like to avoid changing code
> where it's unnecessary.
>
> I have a POC:
>
>/* REXX tiny_2Erexx Thu Nov 25 10:43:48 MST 2010 */ signal on novalue;
>trace R
>
>parse source sys invoked exfn exft exfm cmd env
>
>STAGE = address()
>say c2x( STAGE ) STAGE
>address 'COMMAND'
>
>'IDENTIFY'
>
>address value STAGE
>'addpipe < PROFILE EXEC A | CONSOLE'
>address
>
>say address()
>return( RC )
>
> o Seems to work.  But what are the pitfalls?
>
> o the PIPE command has no syntactic objections to a single-stage
>  pipeline.  Nice.
>
> o ADDRESS VALUE environment command isn't allowed, so I must use
>  three instructions instead of one.  Rexx limitation.  Nuisance.
>
> o PARSE SOURCE won't return a useful subcommand environment name;
>  I must use address().  Silly.
>
> Thanks,
> gil
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Treating absent files as empty

2010-11-23 Thread Kris Buelens
Besides using DISK as Rob suggests, yoiu can use STATE to test if a file
exists.  For example
  'STATE NONE SUCH A'
  if rc=0 then appendExtraFile='|APPEND < NONE SUCH A'
  else AppendExtraFile=''
  'PIPE ...,
 AppendExtraFiles,  /¨* Maybe append an extra file */
 '|> FOO BAR A'
I feel that too few people realise they can use some REXX logic to construct
PIPE sections.  The above example is too simple (one'd use APPEND DISK NONE
SUCH A), but you should see the principle.

P.S. and, you you run with ADDRESS COMMAND, the STATE command above will not
display a "file not found" on the console.

2010/11/23 Paul Gilmartin 

> On Nov 23, 2010, at 04:03, Rob van der Heij wrote:
>
> > On Tue, Nov 23, 2010 at 11:42 AM, Paul Gilmartin 
> wrote:
> >> First, I'm restricted to minidisks; my sysprog is stuck
> >> somewhere in the Twentieth Century.  But I'd like to be
> >> able to delete an output file if the input file doesn't
> >> exist.  So:
> >
> > Use the "disk" stage rather than the "<" if your input file is optional.
> >
> > The 'nose stage' verifies that your input file exists before raising
> > the commit level (and possibly doing irreversable things). In most
> > cases you don't want to wipe out files because of a missing input
> > file. Your case may be different.
> >
> Thanks.  "commit" isn't really in my vocabulary.  I don't think it
> existed when I first brushed against Pipelines, perhaps before SFS
> was a consideration.
>
> I might want to do things like:
>
>pipe disk FN1 FT1 A | locate NONEXISTENT | sort
> | xlate | ... | > FN2 FT2 A
>
> What stages must I beware of that might not raise the commit level
> until an input record is available?  (What should I look for in the
> documentation?)  I'd be most comfortable if I could put something
> just before the 'tail stage' that forced the commit level and passed
> its input stream unmodified, or unconditionally force commit in '>'.
>
> Thanks again,
> gil
>



-- 
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] PIPDSR120E Return code 16 from parameter list Vblockw

2010-11-02 Thread Kris Buelens
You don't have two '>' stages writing to the same file?  (That anyhow gives
such a message too, but maybe not RC 16.)

2010/11/2 Ian S. Worthington 

> I have a largeish multistage pipeline which filters the input into separate
> files.  After running for a while it's started giving:
>
> PIPDSR120E Return code 16 from parameter list Vblockw MV0888 09 Z1.
>
> which seems to mean:
>
> 16 Record format specified not the same as file.
>
> which makes little sense to me from a ">" stage.
>
> viz:
>
> 16:32:18: 40 records read
> 16:32:30: 41 records read
> 16:32:42: 42 records read
> 16:32:55: 43 records read
> 16:33:10: 44 records read
> 16:33:28: 45 records read
> PIPDSR120E Return code 16 from parameter list Vblockw MV0888 09 Z1.
> PIPMSG004I ... Issued from stage 2 of pipeline 49 name "AnalyseMsgs".
> PIPMSG001I ... Running "> MV0888 09 Z".
> PIPDSR120E Return code 16 from parameter list Vblockw MV0888 14 Z1.
> PIPMSG004I ... Issued from stage 2 of pipeline 54 name "AnalyseMsgs".
> PIPMSG001I ... Running "> MV0888 14 Z".
>
> From filelist:
>
> MV0888   09   Z1   V133245  9 11/01/10
> MV0888   14   Z1   V312107  6 11/01/10
>
> I see that rc=15 may mean that the file has been erased, but that doesn't
> seem
> to be the case here. Any suggestions would be most welcome.
>
> i
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Pipe stall in the middle of writing to SFS

2010-10-05 Thread Kris Buelens
Most of the time such errors mean you have to get in touch with SW support.
To get the message number, you could
- ACCESS 19D as Z
- use a tool to scan all DMS* HELPMSG Z files for string "Detecting module"

2010/10/5 Bob Cronin 

> I had a pipe stall (return code 30) in the middle of writing a file to an
> SFS directory using ">". The only clue as to what might have been wrong was
> this cryptic error message I found on the console log:
>
> Error 76000 for file pool XAGSFS; error codes -1 and -115; Detecting module
> DMS3WM
>
> Sadly, I don't have the actual message number.
>
> All subsequent attempts to write to the filepool failed (with rc 30 or 31)
> for about the next 45 minutes, after which the problem mysteriously went
> away by itself (i.e. without any help from me, anyway).
>
> Anyone ever seen this or have any suggestions what might be going on?
> --
> bc
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] PC-Pipelines

2010-08-27 Thread Kris Buelens
Has everybody forgotten about this:
CMS/TSO Pipelines for Windows and Linux  - James Johnson - July 2009
http://www.mail-archive.com/cms-pipelines@vm.marist.edu/msg00899.html

http://ipages.iland.net/~jimj/

2010/8/27 Rod Furey 

> There are any number of implementations around. I've got 2 - one in
> Rexx and one in Delphi. Or at least, they do what I wanted them to do
> at the time which is not actually replicate CMS Pipelines but give me
> something similar but with extensions to the stack size. Neither are
> really brilliant (there are ugly hacks in some places due to time
> constraints) and when I get chance I'll be re-writing the Delphi one
> (the code has a better parser and structure) so that it gains multiple
> streams and works with FPC and Lazarus (the Rexx one has multiple
> streams and TCP stuff). The syntax in both is slightly different from
> CMS Pipelines - it's about half-a-level lower for the Rexx one and
> both have some slightly different stage names (they're non-completed
> implementations) but they do what I wanted .
>
> Given all the moans and groans about how many people want this sort of
> thing on their PCs and the fact that this comes up every so often,
> anyone who really wants it would be better off setting up a separate
> mailing list and using that to co-ordinate various bits and pieces.
> Whoever it is can start with the arguments which I'll start for them -
> there's no way I'm programming anything in C! There y'go - your first
> topic :-)
>
> Gr.,
>
> Rod
>
> On Fri, Aug 27, 2010 at 5:18 AM, Craig Edwards
>  wrote:
> >  A few years ago, I wrote a reasonably complete version of pipelines in
> > Java.  I had vague plans of open-sourcing it, but other priorities took
> > over and it has just sat idle since then.  If anyone is interested, I
> > could dig it out of my source code repository and put it up onto
> > sourceforge or googlecode.  Feel free to contact me via this list, or by
> > email directly.
> >
> > Cheers,
> > Craig
> >
> > On 26/08/10 11:02 PM, Mark Pace wrote:
> >>
> >> That would be a great idea.  But I don't have the time, talent, or
> >> knowledge
> >> of C/Windows to pull off such a thing.
> >>
> >> On Wed, Aug 25, 2010 at 10:01 PM, Richard Troth
> >>  wrote:
> >>
> >>> I'd like to discuss PC-Pipes here too, but I'd also like to discuss a
> >>> non-.Net and non-C# method of providing what PC-Pipelines does.
> >>> (Something based on a core of plain C.  Something portable.)
> >>>
> >>> -- R;<><
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On Wed, Aug 25, 2010 at 14:11, Mark Pace
>  wrote:
> >>>>
> >>>> Is it okay to ask questions here about PC-Pipelines or this strictly
> for
> >>>> CMS/TSO pipelines?   If this is not the place, where would be?
> >>>>
> >>>> --
> >>>> Mark D Pace
> >>>> Senior Systems Engineer
> >>>> Mainline Information Systems
> >>>>
> >>
> >>
> >> --
> >> Mark D Pace
> >> Senior Systems Engineer
> >> Mainline Information Systems
> >
>



--
Kris Buelens,
IBM Belgium, VM customer support


Re: [CMS-PIPELINES] Null/blank value

2010-08-20 Thread Kris Buelens
I guess you'd better code'| em: StrFIND /Phone:_/',
With StrFind you are independant on how the REXX code is written. With a
simple FIND these are all different
   '| em: FIND Phone'||,
   '|xxx
-
   '| em: FIND Phone',
   '|xxx
-
   '  | em: FIND Phone'||,
   '  |xxx
-
   '  | em: FIND Phone',
   '  |xxx
The last example looks for records starting with Phone and at least 3 other
characters.

2010/8/20 Frank M. Ramaekers 

> I noticed that as well.
>
>'| em: FIND Phone'||,
>
> This will match each line that starts with 'Phone'
>
> Yours will match 'Phone  ' 'Phonexx' 'Phone??' (blanks are wildcards).
>
> Frank M. Ramaekers Jr.
>
>
>
> -Original Message-
> From: CMSTSO Pipelines Discussion List
> [mailto:cms-pipeli...@vm.marist.edu] On Behalf Of Larson, John E.
> Sent: Friday, August 20, 2010 2:54 PM
> To: CMS-PIPELINES@VM.MARIST.EDU
> Subject: Re: [CMS-PIPELINES] Null/blank value
>
> Did you intentionally put a space/blank on all of your FIND statements?
>
>   '| em: find Phone ',
>   '| spec 9-* n /;/ n',
>   '| fin:',
>   '\ em:',
>   '| find email ',
>   '| spec 9-* n',
>
> Seems that the space between Phone and the ' mark implies a field must
> be present or the FIND will not match.
>
> JL
>
> -Original Message-
> From: CMSTSO Pipelines Discussion List
> [mailto:cms-pipeli...@vm.marist.edu] On Behalf Of Mark Pace
> Sent: Friday, August 20, 2010 12:39 PM
> To: CMS-PIPELINES@VM.MARIST.EDU
> Subject: Null/blank value
>
> I have a file that contains my customer information formated as such
> FORM:  Customer
> Customer_Name:  Some Customer1
> SysProg:  Jane Doe
> Phone:  xxx.xxx.
> email:  jane...@customer.com
> $UpdatedBy:  CN=Mark Pace/O=Mainline
>
> "
> FORM:  Customer
> Customer_Name:  Some Customer2
> SysProg:  John Doe
> Phone:
> email:  john...@someplace.com
> $UpdatedBy:  CN=Mark Pace/O=Mainline
>
> I want to put it in a file as such
> Some Customer1*;*Jane Doe*;*xxx.xxx.*;*jane...@customer.com
> So basically a CVS file using an *;* as the delimiter.
>
> I have this pipe
> 'PIPE (end \ name TTCUST.EXEC:12)',
>   '|< ttcust data a ',
>   '| sy: find Customer ',
>   '| spec 17-* 1 /;/ n',
>   '| fin: faninany',
>   '| > ttcust data2 a',
>   '\ sy:',
>   '| ph: find SysProg ',
>   '| spec 11-* n /;/ n ',
>   '| fin:',
>   '\ ph:',
>   '| em: find Phone ',
>   '| spec 9-* n /;/ n',
>   '| fin:',
>   '\ em:',
>   '| find email ',
>   '| spec 9-* n',
>   '| fin:'
>
> And it mostly works.  If a field is missing I would expect a record with
> only a ; delimiter, but I am getting nothing, the field is just missing.
> I realize in the test exec that each filed comes out as a seperate line
> and I only have to do a JOIN after the faninany to create the one
> record.
>  My question is why I don't get a record if say the phone number is
> blank?
>
>
> --
> Mark D Pace
> Senior Systems Engineer
> Mainline Information Systems
>
> _
> This message contains information which is privileged and confidential and
> is solely for the use of the
> intended recipient. If you are not the intended recipient, be aware that
> any review, disclosure,
> copying, distribution, or use of the contents of this message is strictly
> prohibited. If you have
> received this in error, please destroy it immediately and notify us at
> privacy...@ailife.com.
>



--
Kris Buelens,
IBM Belgium, VM customer support


  1   2   >