[CMS-PIPELINES] first group of matching records

2024-04-12 Thread Glenn Knickerbocker
Is there anything I'm overlooking that would simplify selecting records up to where a column changes? This does it, but doesn't help if I want the rest of the file on another stream: (end /) ... | first: unique ... first | skip: drop 1 | stop: gate / skip: | rest: fanin | stop: | ... / first:

Re: [CMS-PIPELINES] split at a column

2023-03-21 Thread Glenn Knickerbocker
On 3/21/2023 6:43 PM, Rob van der Heij wrote: > After all your solutions, I still don't understand what you were trying to > do. Partly because they're all solutions to different things. I have a bad habit of editing out too much of what I think is repetitive, leaving things confusingly out of

Re: [CMS-PIPELINES] split at a column

2023-03-21 Thread Glenn Knickerbocker
On 3/18/2023 9:29 AM, John P. Hartmann wrote: > On 3/18/23 14:02, Glenn Knickerbocker wrote: >>    ... | split 80 before not 00-ff | ... > > Hehe!  So I forgot to check for an impossible character range in > combination with NOT. Turns out using a number with it doesn't work as

Re: [CMS-PIPELINES] split at a column

2023-03-18 Thread Glenn Knickerbocker
On Fri, 17 Mar 2023 16:56:25 +0100, Rob wrote: >On Fri, 17 Mar 2023 at 16:51, Glenn Knickerbocker wrote: >> ... | split -80 before 00-ff 1 | ... >So you want to split 80 from the right? No, -80 BEFORE is just 79 AFTER plus the one character matched by the xrange. The tiny tr

[CMS-PIPELINES] split at a column

2023-03-17 Thread Glenn Knickerbocker
I had records to split at column 80 and I knew they weren't longer than 160, so DEBLOCK FIXED 80 did the job. What if the right part might be longer than the left? CHOP|GATHER|LOCATE seemed like overkill. I realized SPLIT would do it, given two tiny tricks: * Split once at a number of columns

Re: [CMS-PIPELINES] deblocking with various possible linends

2023-03-16 Thread Glenn Knickerbocker
On 3/16/2023 6:38 PM, Rob van der Heij wrote: > KEEP to include the line end characters in the output stream? Would you > also need a BEFORE and AFTER, or is it good enough to just have them at the > end? You could use STRIP TRAILING ANYOF with the same set. I picture wanting them at the end of

Re: [CMS-PIPELINES] deblocking with various possible linends

2023-03-16 Thread Glenn Knickerbocker
On 3/16/2023 4:46 PM, Rob van der Heij wrote: > alternatives (with preference for the first one) > - line end is any unique sequence of the specified characters, so if you > specify the CR and LF as candidate, then CR, LF, CR LF, and LF CR are all > one single end of line, but CR CR would imply a

Re: [CMS-PIPELINES] juxtapose with next

2023-03-16 Thread Glenn Knickerbocker
On 3/16/2023 4:55 PM, Rob van der Heij wrote: > I guess that's why you don't want to process the entire thing backwards, You know, I never even thought of that. As long as I can buffer the whole file, that's certainly straightforward! In this case, I also want the list items at the front of the

Re: [CMS-PIPELINES] deblocking with various possible linends

2023-03-16 Thread Glenn Knickerbocker
On 3/13/2023 7:41 PM, Paul Gilmartin wrote: > The problem is not well-posed.  Consider >     Foo >     >     >     Bar > Is that two records, or three with a null record between the and > the . Figuring out the reasonable assumptions to make to make that decision is the biggest part of what I

Re: [CMS-PIPELINES] juxtapose with next

2023-03-16 Thread Glenn Knickerbocker
On 3/15/2023 10:49 AM, John P. Hartmann wrote: > If we are speaking two records, wouldn't SPEC be able to do what you want? Yes, since the lists are joined into single records, I was able to use SPECS to swap the order and then CHOP|SPLIT|JUXTAPOSE to split up the lists and juxtapose each item

Re: [CMS-PIPELINES] deblocking with various possible linends

2023-03-16 Thread Glenn Knickerbocker
On 3/15/2023 1:28 AM, Rob van der Heij wrote: > Splitting a record with no words will pass the record (see example in usage > note :-) Right, and in that case it was a real null line in the input ...0a0a..., so it hasn't added any *extra* null records. ¬R

Re: [CMS-PIPELINES] deblocking with various possible linends

2023-03-14 Thread Glenn Knickerbocker
On Tue, 14 Mar 2023 08:07:15 +0100, Rob wrote: >On Tue, 14 Mar 2023 at 00:44, Donald Russell wrote: >> —> ... | deblock linend 0a | split 0d | ... >> Could that cause extra lines? >Yes, it does. I didn't find a case where SPLIT created any extra null records. It will *lose* null lines if

[CMS-PIPELINES] juxtapose with next

2023-03-13 Thread Glenn Knickerbocker
I've got a bunch of lists where each list *precedes* the container I want to match it up with--similar to link-edit steps in JCLIN, where the name of the load module comes last. The lists are actually already joined up into a single record, so I can join the container to the list, move it to the

[CMS-PIPELINES] deblocking with various possible linends

2023-03-13 Thread Glenn Knickerbocker
(Copied here from an IBM internal discussion because I should have come here first anyway:) Anyone have an idiom for deblocking and translating a file in ASCII that may have either or both of CR and LF (*), and may be split into records, without unnecessarily buffering the whole file? The

Re: [CMS-PIPELINES] PREFACE and REXXVARS error 233

2022-06-15 Thread Glenn Knickerbocker
On 6/13/2022 4:34 PM, John P. Hartmann wrote: > Oh, adjust the number by 1 for the wrapper.  And forget about SHORT > there will be no input to short. Easy enough to use PIPCMD directly to avoid any REXX complications: 'PIPE literal callpipe rexxvars' i 'nomsg233 || *: | pipcmd |' etc. I'm

Re: [CMS-PIPELINES] PREFACE and REXXVARS error 233

2022-06-13 Thread Glenn Knickerbocker
On 6/11/2022 9:01 AM, John P. Hartmann wrote: > Stop using PREFACE/APPEND if you wish to retain your sanity. I have to wrap this in *something* that will let the rest of the pipeline run. APPEND might be hard to predict when you want something to stop at (rather than after) EOF on its input.

Re: [CMS-PIPELINES] PREFACE and REXXVARS error 233

2022-06-09 Thread Glenn Knickerbocker
On Mon, 6 Jun 2022 14:55:21 +0200, John wrote: >The callpipe implied in PREFACE does the commit on you (trace told me), >so REXXVARS starts on commit level 0, does not commit to 0, and returns >with code 233, as it should, but at that time it is too late for the >dispatcher to pull the brake.

Re: [CMS-PIPELINES] LOOKUP AUTOADD wishlist: different key fields

2022-06-09 Thread Glenn Knickerbocker
On Tue, 7 Jun 2022 16:10:50 +0200, John wrote: >You must specify ALLMASTERS to get all matching master records. I was looking for the duplicates that were *not* added to the reference on output 4: >On 6/6/22 23:57, Glenn Knickerbocker wrote: >> I see >> that even with BEFO

Re: [CMS-PIPELINES] LOOKUP AUTOADD wishlist: different key fields

2022-06-06 Thread Glenn Knickerbocker
On 6/6/2022 4:55 PM, Glenn Knickerbocker wrote: > I don't get where the confusion is. W2 is the key in the master record. > If W3 in this detail record doesn't match any masters, add this record > to the reference, the same as in my pipeline with the feedback loop. Ah, but think

Re: [CMS-PIPELINES] LOOKUP AUTOADD wishlist: different key fields

2022-06-06 Thread Glenn Knickerbocker
On 6/6/2022 3:42 PM, Rob van der Heij wrote: > On Mon, 6 Jun 2022 at 21:37, John P. Hartmann wrote: >> So which is the master and which is the detail? >> >> On 6/6/22 21:32, Glenn Knickerbocker wrote: >> >> PIPE ... | lookup autoadd w3 w2 ... >> >> FPL

[CMS-PIPELINES] LOOKUP AUTOADD wishlist: different key fields

2022-06-06 Thread Glenn Knickerbocker
> PIPE ... | lookup autoadd w3 w2 ... > FPLLUP761E Different key fields not allowed with AUTOADD Why not? It wasn't hard to write the pipeline to add the records to the reference myself, but in the general case it gets pretty fiddly, grabbing the nonmatches from output 1 and delaying them

Re: [CMS-PIPELINES] PREFACE and REXXVARS error 233

2022-06-06 Thread Glenn Knickerbocker
On Tue, 31 May 2022 12:16:01 -0400, James Vincent wrote: >The giveaway: Do Until is evaluated at the end of the first iteration and I >am betting you have no "level 1" in play at the time, so the PIPE gets RC >233 and the VAR FILELIST is not set. The Do condition (or REXX) concludes >that

[CMS-PIPELINES] PREFACE and REXXVARS error 233

2022-05-31 Thread Glenn Knickerbocker
Here's one I never noticed before. Often I'll do something like: > Do i = 0 Until filelist | (rc ¬= 0) > > 'PIPE rexxvars' i 'nomsg233' , > '| take 1' , > '| strfind ,s_CMS_COMMAND_FILELIST_EXEC_,' , > '| count lines'

Re: [CMS-PIPELINES] Removing blank records

2021-10-15 Thread Glenn Knickerbocker
On 8/18/2021 7:49 AM, Lionel B. Dyck wrote: > The LOCATE 1 as well as LOCATE worked great - thank you. I stumbled on this in cleaning up old mail, and thought I'd point out a couple other options and how they can be applied in more general ways: | LOCATE WORD n | find records with at least n

[CMS-PIPELINES] specifying an arbitrary string

2021-02-16 Thread 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

Re: [CMS-PIPELINES] Cleanest "always read one record" segment?

2021-02-16 Thread Glenn Knickerbocker
On 2/16/2021 2:48 AM, Rob van der Heij wrote: > When I'm really only taking a single sip, I see nothing wrong with 'peekto' > and 'readto' in the loop, especially when you need it to detect EOF anyway. This is for the case where I'm sipping an unknown number of records. It *should* never be

[CMS-PIPELINES] Cleanest "always read one record" segment?

2021-02-15 Thread Glenn Knickerbocker
What's your favorite thing to stick into a "sipping" pipeline so you know it will always consume at least one record and not worry about looping? I have a nagging feeling I'm overlooking something obvious that's cheaper and safer than using VAR and trusting I know an unused name: 'callpipe *:

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

2021-01-21 Thread Glenn Knickerbocker
On 1/18/2021 4:23 PM, Alain Benvéniste wrote: > 2) in the case where i punch a file i only strip the last record. And it > works. As long as it's padded with 00, you don't need to strip anything. All the extra trailing 00's are just discarded by DEBLOCK CMS. I'm amazed I had never learned that

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

2021-01-18 Thread Glenn Knickerbocker
On Sun, 17 Jan 2021 19:40:46 +0100, Alain Benvéniste wrote: >... ! block 80 cms ! pad 80 FF ! punch The notes for BLOCK CMS say to pad with 00, not FF. ¬R

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

2021-01-16 Thread Glenn Knickerbocker
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

Re: [CMS-PIPELINES] Wikipedia and EBCDIC 037-2

2020-09-22 Thread Glenn Knickerbocker
On 9/20/2020 10:27 PM, Alan Altmark wrote: > works just fine. And in 40 years of writing programs on CMS, I’ve never > been stymied by 26 file mode letters. You'd be surprised. Our code library for service for the MVS base is spread over 13 disks: 25k files split into 3 groups, 4 levels of

[CMS-PIPELINES] Wikipedia and EBCDIC 037-2

2020-09-15 Thread Glenn Knickerbocker
Somebody pointed out today that a mass purge of Wikipedia EBCDIC code page articles was done in July (with a move to Wikibooks begun but not finished). For the most part, the objection was that they simply reproduced information from primary sources. 037-2 seems like an exception, unacknowledged

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

2020-09-11 Thread Glenn Knickerbocker
On 9/11/2020 11:10 AM, John P. Hartmann wrote: > The interaction with STRIP also needed a loving hand. Ouch, now I'm thinking way too hard about STRIP C2V and lengths around 16K. ¬R

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

2020-09-10 Thread Glenn Knickerbocker
On 9/10/2020 3:09 PM, Stanislawski, Shawn (National VM Capability) wrote: > Anyone have a great idea on how to use PIPE to replace single record > at a specified record number in a file without having to read / > write out the entire file, with the following caveats? > > * the file could be

Re: [CMS-PIPELINES] Stage for reading/updating CMS NAMES file?

2020-08-21 Thread Glenn Knickerbocker
On 8/20/2020 1:39 PM, David Boyes wrote: > Since there isn't an existing Pipe stage to deal with NAMES files, > what would be the most efficient way to remove the entry for CLOWN > using CMS Pipes? 30 years ago when I needed to parse an arbitrary NAMES file in a pipeline (and boy was the one I was

Re: [CMS-PIPELINES] Stage for reading/updating CMS NAMES file?

2020-08-21 Thread Glenn Knickerbocker
On 8/20/2020 1:39 PM, David Boyes wrote: > I would invite you to look at the entry for NAMEFIND in the CMS > Command reference again. Anything that has a syntax diagram that goes > on for a page and a half is not basic or straightforward. Says someone who enjoys using Pipelines? ¬R

Re: [CMS-PIPELINES] Stage for reading/updating CMS NAMES file?

2020-08-18 Thread Glenn Knickerbocker
On 8/18/2020 10:00 AM, Dave Jones wrote: > Did the IUO tool NAMELIST ever make it out to the wider world? A lot of the more general function did make it into NAMES. It doesn't handle especially long tag names and values, but it's good for fairly general use. ¬R

Re: [CMS-PIPELINES] stack + stem append

2020-05-21 Thread Glenn Knickerbocker
On Wed, 20 May 2020 08:38:07 -0400, you wrote: >I was a bit surprised by the behavior Alain describe as well, but the >description of the STEM stage says: > When APPEND is specified, writing starts with n where n > is one more than the value returned for 0. > >Stated more clearly, when

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

2020-05-15 Thread Glenn Knickerbocker
On 5/9/2020 5:48 PM, amphitr...@ok.de wrote: > If the easily filtered headers are as good as section delimiters, > you have won. That's where I lose in this case. Even the actual section headers identifying the different source files are unreliable. ¬R

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

2020-05-09 Thread Glenn Knickerbocker
On Fri, 8 May 2020 13:00:40 -0600, gil wrote: >On 2020-05-08, at 12:46:56, Glenn Knickerbocker wrote: >> Anybody have an existing idiom for picking out the section of a file >> between the first and last matches with another file? >How would you use the output of comparing? C

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

2020-05-08 Thread Glenn Knickerbocker
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

[CMS-PIPELINES] interrupting SQL? (also PIPESTOP doc error)

2020-01-23 Thread Glenn Knickerbocker
When a query takes longer than expected, is there a way for the pipeline to stop it? I thought I'd try using DELAY|GATE to sever the output of SQL or SQLSELECT, but that doesn't do it, and neither does PIPESTOP. Is there anything I can do short of HX? In the PIPESTOP help, I noticed there's a

Re: [CMS-PIPELINES] Caution! STREAMSTATE SUMMARY and PEEKTO

2020-01-15 Thread Glenn Knickerbocker
On 1/15/2020 4:05 AM, Rob van der Heij wrote: > But isn't that a leaky garden hose? If you meant to sip all records from > the input stream, RC=8 from STREAMSTATE would be a reason to keep sipping. Not with SUMMARY. It returns 0 if both sides are connected, 8 otherwise (never understood why not

[CMS-PIPELINES] Caution! STREAMSTATE SUMMARY and PEEKTO

2020-01-14 Thread Glenn Knickerbocker
I knew I had written some "sipping stages" in the past where I didn't need PEEKTO to put any input in REXX variables, and I only needed STREAMSTATE SUMMARY to check whether to continue: 'streamstate summary' Do While rc = 0 'callpipe *: | take' etc. If rc = 0 Then 'streamstate

[CMS-PIPELINES] STRLITERAL BETWEEN?

2019-10-09 Thread Glenn Knickerbocker
I have a file split into two sections, and I wanted to add a delimiter in between them only when there were lines in both sections. I puzzled for a while about how to detect that both sections were present and my complicated ideas with PREDSELECT or COUNT got more and more ridiculous. Finally it

Re: [CMS-PIPELINES] wishlist: STRFIND ASIS

2019-08-22 Thread Glenn Knickerbocker
On 2019-08-22 1:48 PM, Paul Gilmartin wrote: > The general and correct wish should be for an escape character to protect > any character, even itself, from any special meaning, even as '"' does in > a CP LINEDIT environment. That could be more than just a matter of syntax for FIND. I don't know

Re: [CMS-PIPELINES] wishlist: STRFIND ASIS

2019-08-22 Thread Glenn Knickerbocker
On 2019-08-22 12:03 PM, Rob van der Heij wrote: > Wouldn't PICK 1+ == /abc/ do what you ask for? If I learned (and remembered) newfangled syntaxes like "1+", sure! For ASIS, at least. ¬R

[CMS-PIPELINES] wishlist: STRFIND ASIS

2019-08-22 Thread Glenn Knickerbocker
Tiny convenience wishlist item, after being bitten by this repeatedly this morning: STRFIND ASIS to find a string without translating underscores and skipping blanks, so the same target can be good for STRFIND and STRTOLABEL. A slightly less tiny item would be options for which characters to

Re: [CMS-PIPELINES] swap two records

2019-08-19 Thread Glenn Knickerbocker
On 2019-08-18 9:47 AM, amphitr...@ok.de wrote: > RITA revealed that most of the time is lost (or spent ?) in > rearranging the records for later advantageous use. Instead of > inserting a tag to many lines I now tag _all_ and remove where > appropriate, Substr is so much faster than Insert.

Re: [CMS-PIPELINES] swap two records

2019-08-16 Thread Glenn Knickerbocker
On 2019-08-14 12:45 PM, amphitr...@ok.de wrote: > In a file I have every now and then a record tagged at the > beginning, all other lines begin with blanks. I'd like to change > the sequence of tagged records with the one directly following it > (which is for sure not tagged). A way that's a

Re: [CMS-PIPELINES] swap two records

2019-08-16 Thread Glenn Knickerbocker
On 2019-08-14 5:11 PM, Rob van der Heij wrote: > So true. My dumb. I'm so used to BETWEEN and friends that I forget about > PICK for it. Now I need to revisit all my pipes and see what improvements > there would be (I already spot one where I used PICK to put the marker for > BETWEEN to find -

Re: [CMS-PIPELINES] XEDIT and targets

2019-06-20 Thread Glenn Knickerbocker
On 2019-06-20 6:36 PM, Paul Gilmartin wrote: > In your example, what causes stage1, stage2, and stage3 to > run consecutively rather than concurrently? Would FANIN rather > than FANINANY make a difference? FILLUP causes the input to be provided to each in order until it severs its input (or

Re: [CMS-PIPELINES] XEDIT and targets

2019-06-20 Thread Glenn Knickerbocker
On 2019-06-19 2:29 PM, Paul Gilmartin wrote: >>>{ stage1; stage2; stage3; } | stage4 > Stages run in order, sharing input. So what isn’t consumed by > the first stage is available to the second, etc. But if a stage buffers > reads and doesn’t process the data, the effect is unpredictable.

Re: [CMS-PIPELINES] XEDIT and targets

2019-06-14 Thread Glenn Knickerbocker
On 2019-06-14 1:46 AM, Kris Buelens wrote: > 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 Still vulnerable if I may issue subcommands that change,

Re: [CMS-PIPELINES] VERIFY NOT

2019-06-14 Thread Glenn Knickerbocker
On 2019-06-14 6:38 AM, John P. Hartmann wrote: > 17 Dec 1997  +++ VERIFY NOT. Aha, that was enough to point me in the archive to where I made the request in PIPELINE CFORUM in the first place. Never-publicized MATCH got changed to NOT but without swapping the polarity, and then it was ditched

Re: [CMS-PIPELINES] XEDIT and targets

2019-06-13 Thread 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

Re: [CMS-PIPELINES] VERIFY NOT

2019-06-13 Thread Glenn Knickerbocker
On 2019-06-13 6:53 PM, Donald Russell wrote: > I never use VERIFY NOT... I do use NOT VERIFY and always get the results I > expected. VERIFY NOT provides a complementary function, like SPLIT ANYOF versus SPLIT NOT ANYOF. Except it came out backwards. VERIFY passes records that contain

[CMS-PIPELINES] VERIFY NOT

2019-06-13 Thread Glenn Knickerbocker
I just used VERIFY NOT for the first time in a long time, and made a note in my comments that it was never documented--it does the reverse of what you'd expect, and it never got fixed (too late, already in use) or renamed. Sure would be nice if it could get a comprehensible name and be

Re: [CMS-PIPELINES] XEDIT and targets

2019-06-13 Thread Glenn Knickerbocker
On 2019-06-11 6:55 PM, Rob van der Heij wrote: > On Tue, 11 Jun 2019 at 23:00, Glenn Knickerbocker wrote: >> The "better handle" part is what I don't know enough about the guts of >> XEDIT to know where to find, if there is one: some marker that stays >> with the

Re: [CMS-PIPELINES] XEDIT and targets

2019-06-11 Thread Glenn Knickerbocker
On 2019-06-11 7:43 AM, Rob van der Heij wrote: > Right. I'm not aware of an interface to XEDIT that would allow a CMS > Pipelines stage to access the content of the file without positioning it. That sounds like the reverse of what I'm looking for. I want to ask XEDIT where the target is in the

Re: [CMS-PIPELINES] XEDIT and targets

2019-06-10 Thread 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 Glenn Knickerbocker
On 2019-06-10 3:39 PM, Donald Russell wrote: > Pipe ahelp xedit > > Use it to read starting at the current line, use subsequent stages to > select/do what you want. As I said: >> If I know I'm not going to add or delete >> anything past the current line or change DISPLAY or SCOPE, I can use >>

[CMS-PIPELINES] XEDIT and targets

2019-06-10 Thread Glenn Knickerbocker
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

[CMS-PIPELINES] keep on DEALing

2019-03-15 Thread Glenn Knickerbocker
I have records in pairs and I want to discard the first of each pair. I might just toss them all, or I might divert them to another stream. Either way, I've always run into trouble replacing the old DROPNTAK REXX with DEAL because of how it handles disconnected outputs. I can use HOLE to eat the

Re: [CMS-PIPELINES] beginner's question: how can I process an empty pipe?

2019-03-06 Thread Glenn Knickerbocker
On 2019-03-06 4:13 AM, Rob van der Heij wrote: > Indeed, there's always something new to learn. While Glenn is right with > the more robust example to avoid code injection, the modern appendage > somewhat closer to what you were doing is is with STRLITERAL IFEMPTY I still always have to be

Re: [CMS-PIPELINES] beginner's question: how can I process an empty pipe?

2019-03-05 Thread Glenn Knickerbocker
On 2019-03-05 10:38 PM, Bishop, Peter wrote: > The question is: how can a get a message similar to "Unit not found" > to display, instead of nothing as happens now? When you're searching for something, the alternate outputs of LOOKUP can give you the unmatched records to process: PIPE (end /) cp

Re: [CMS-PIPELINES] SPECS SELECT 1 surprise!

2019-03-01 Thread Glenn Knickerbocker
On 2019-02-27 12:34 PM, John P. Hartmann wrote: > This also works: > specs select 0 select 1 1-* 1 Aha, that might be a better reminder of why I need something there, too. Thanks-- ¬R

Re: [CMS-PIPELINES] SPECS SELECT 1 surprise!

2019-02-26 Thread Glenn Knickerbocker
On 2019-02-26 6:28 PM, I wrote: > something from the primary in the spec, if only to discard it: > > specs 1 . select 1 1-* 1 Forgot to mention, my first thought for discarding the record was READ: specs read select 1 1-* 1 Then I decided it would probably consume two records on the

[CMS-PIPELINES] SPECS SELECT 1 surprise!

2019-02-26 Thread Glenn Knickerbocker
I was so astonished by this one I thought maybe it was an old behavior enshrined in BatchPipeWorks, but no, it's the same in the very latest on CMS. I wanted to replace selected lines in one file with lines from another, sequentially, so I wrote: specs select 1 1-* 1 Surprise! The whole file

Re: [CMS-PIPELINES] Nudging DISKUPDATE

2018-12-21 Thread Glenn Knickerbocker
On 2018-12-20 7:28 PM, Donald Russell wrote: > Yes I was thinking about beat too. Great minds think alike. (Of course > there is also the corollary “fools seldom differ”. :-) ) The Zappa brothers had something to say about that: then baby you and I are doomed to be together

Re: [CMS-PIPELINES] padding in the middle of a record

2018-11-05 Thread Glenn Knickerbocker
On 2018-11-05 9:52 AM, Rob van der Heij wrote: >> ... a: w2 . print a":" nw.11 print substr(a":",12) n ... >> > Ah, would you care for this one? > > .. a: w1-w2 - set #0:=length(a)+1 w1 1 w2 nw.11 w3-* nw ,:, (#0) ... That doesn't put the overrun anywhere, and it assumes only one

Re: [CMS-PIPELINES] padding in the middle of a record

2018-11-02 Thread Glenn Knickerbocker
On 2018-11-01 4:36 PM, Rob van der Heij wrote: > I may not be following your scenario, but aren't you looking for> insert ,:, > after w2 maybe? Well, that's slightly more straightforward than my CHANGE, but it doesn't help make the solution more general. I realized what I'd overlooked about

[CMS-PIPELINES] padding in the middle of a record

2018-11-01 Thread Glenn Knickerbocker
I have records with two words of variable length, and I want to pad the second word plus a separator after it to a fixed length, like so: first second -> first second: more first secondword -> first secondword: more firstword second -> firstword second: more

Re: [CMS-PIPELINES] NOT help out of date

2018-04-14 Thread Glenn Knickerbocker
On Sat, 14 Apr 2018 12:47:33 +0200, John wrote: >Chances are that this can be accomplished much more easily with IF. That helps gather the sidetrack pipelines together--though, with more than one sidetrack, it can also get touchy keeping the embedded IF-loops straight. What NOT FANIN lets me do

[CMS-PIPELINES] NOT help out of date

2018-04-13 Thread Glenn Knickerbocker
I just wrote NOT FANIN to straighten a kink in a pipeline and then thought to look at the help, and I see it says: > Streams Used: Records are read from the primary input stream; no other > input stream may be connected. I find pipelines I wrote with NOT LOOKUP in 2011, so it's read the

Re: [CMS-PIPELINES] Questions regarding HOW TO READ A SYNTAX DIAGRAM

2018-01-22 Thread Glenn Knickerbocker
On 1/22/2018 2:27 AM, Rob van der Heij wrote: > As you conclude from the picture, the default for the SQL stage is > as if the COMMIT option were specified. This is indicated by putting > above the main track. I believe for consistency there should also > have been a straight line under the

Re: [CMS-PIPELINES] getting the RC from third party commands

2018-01-10 Thread Glenn Knickerbocker
On 1/10/2018 5:28 PM, Miguel Soltero Diaz wrote: > When the command is executed I get > whatever results from the command and ... > Ready(00024); T=0.01/0.01 14:18:19 Wait, when and where do you get that? In your output file? Typed to the console when you run your exec? Typed to the console

Re: [CMS-PIPELINES] LEXX for Pipelines

2017-12-31 Thread Glenn Knickerbocker
On 11/28/2017 12:22 PM, John P. Hartmann wrote: > A worktop where you can drag and drop stages and connect them.  The > pipeline end (the mere programming) is in place and is called "encoded > pipeline". The big thing I still see missing in the encoding to enable this is a syntax to specify

Re: [CMS-PIPELINES] SCAN FOR READER FILES

2017-12-26 Thread Glenn Knickerbocker
On Mon, 25 Dec 2017 14:21:32 +0100, you wrote: >You'd need some help of a REXX stage. I have Steve Swift's RECEIVE REXX, but I don't remember whether he shared that outside IBM. >The calling pipe would use CP QUERY RDR * ALL and feed the spool file >numbers to that REXX subroutine. >In order to

Re: [CMS-PIPELINES] split between a number and a letter

2017-11-06 Thread Glenn Knickerbocker
On 11/3/2017 3:26 AM, Rob van der Heij wrote: > Or WIDTH maybe? I don't recall needing a 'parcel by example' before. There we go: EXAMPLE or MODEL would be a clear keyword for what I'm looking for here. ¬R

[CMS-PIPELINES] split between a number and a letter

2017-11-02 Thread Glenn Knickerbocker
To pick out PTF numbers from freeform text, I'm splitting on anything that's not alphanumeric and then looking for U as the first character, etc. I just had a problem where somebody accidentally ran the APAR and PTF numbers together into PI86281UI51100, so I didn't find the PTF number. My code

Re: [CMS-PIPELINES] A better choice than Locate

2017-10-24 Thread Glenn Knickerbocker
On 10/24/2017 7:38 PM, Stewart, Lee wrote: > And I’m drawing a sleep deprived blank for a stage that searches for > w2== (word 2 exactly equal) that wouldn’t pick up those extras… PICK is what you're searching your memory for: pick w2 == /uid/ pick w1.2 == /BUILD ON/ or, if you know the

Re: [CMS-PIPELINES] Pipethink and filtering. CP QUERY PATHS 0-FFFF

2017-03-24 Thread Glenn Knickerbocker
On 3/23/2017 1:33 PM, Stanislawski, Shawn (National VM Capability) wrote: > I've found an imperfect solution by reducing the outputs to just > their first 4 lines using an ALL stage and then a "JOIN 3". If joining the lines is desirable--which it might be, for selecting and sorting, even if

Re: [CMS-PIPELINES] Surprise! ELASTIC doesn't buffer primary when alternate is defined

2017-03-11 Thread Glenn Knickerbocker
On Fri, 10 Mar 2017 22:42:01 +0100, you wrote: >My apologies. I overlooked your secondary input for elastic, but I am still >trying to figure out what you were trying to do :-) You just have to imagine the argument to LOOKUP and what other stages might follow it! I'm following a chain of

[CMS-PIPELINES] Surprise! ELASTIC doesn't buffer primary when alternate is defined

2017-03-10 Thread Glenn Knickerbocker
I tend to avoid ELASTIC in favor of predictable timing where possible, but I could have sworn I'd written loops like this before: (end /) ... | a: fanout | b: elastic | c: lookup ... | b: / a: | c: It stalls as soon as ELASTIC writes its first record, because it won't release the input record

Re: [CMS-PIPELINES] Rexx stage garbage collection

2016-11-03 Thread Glenn Knickerbocker
On 11/3/2016 1:23 PM, Paul Gilmartin wrote: > A current thread in REXX-TSO has me wondering, how do concurrent > Rexx stages avoid contention between their respective storage > managers and garbage collectors? Do they have them? I thought their storage was all managed together in one big lump

Re: [CMS-PIPELINES] SPEC IF string expression using secondary and primary reading stations

2016-10-28 Thread Glenn Knickerbocker
On 10/28/2016 5:00 PM, Stanislawski, Shawn (National VM Capability) wrote: > Perhaps I just kept missing it? The important word to catch is "equivalent": > If SELECT SECOND is in effect for the item, the contents of the equiv- > alent field on the primary input stream are compared with the

Re: [CMS-PIPELINES] SPEC IF string expression using secondary and primary reading stations

2016-10-28 Thread Glenn Knickerbocker
On 10/28/2016 3:45 PM, Stanislawski, Shawn (National VM Capability) wrote: > ...I just can't seem to figure out the correct syntax for the SPEC > IF's string comparison Expression when trying to use both the > Secondary and Primary reading stations within the same Expression. The input field is

Re: [CMS-PIPELINES] Label connections

2016-10-03 Thread Glenn Knickerbocker
On 10/2/2016 3:13 AM, Rob van der Heij wrote: > //PIPE EXEC PGM=PIPE, > // PARM='< dd=pipe1 | join * , , | runpipe | > dd=sysprint' Nice! But of course what Gil wants to avoid is that extra blank on the JOIN. In fact, what I'd do is probably STRIP TRAILING|JOIN * and then put

Re: [CMS-PIPELINES] Incorrect Handling of Negative Numbers With PICK?

2016-08-23 Thread Glenn Knickerbocker
On 8/23/2016 4:58 PM, Ronald van der Laan wrote: > You're doing string compares, so "-0.." is less than "-1". >> pipe ' (end ?) < ' filename filetype filemode, >> '| pick w2 <= /-1/ ', No, he's using the newer numerical comparison operator "<=", not the string comparison operator

Re: [CMS-PIPELINES] Premature Termination of STRLITERAL CONDITIONAL

2016-08-18 Thread Glenn Knickerbocker
On 8/18/2016 3:35 PM, Rob van der Heij wrote: >> in the description of LITERAL (which includes STRLITERAL) I find >> > Premature Termination: "literal" terminates when it >> > discovers that its output stream is not connected. >> and assumed this holds true for STRLIT COND too. > Really works

Re: [CMS-PIPELINES] PIPINIT TEST Fails

2016-08-12 Thread Glenn Knickerbocker
On 8/12/2016 5:11 PM, Ackerman, Alan wrote: > Alas, I don't see any way to request a particular filemode in PICKPIPE EXEC, > either. Nope, that's a function that for whatever reason never made it into the NUCXLOAD command that PIPINIT and PICKPIPE both depend on. In fact, I've never even run

Re: [CMS-PIPELINES] PIPINIT TEST Fails

2016-08-12 Thread Glenn Knickerbocker
On 8/12/2016 1:22 PM, Ackerman, Alan wrote: > I want to run the PIPELINE MODULE on my N disk and not the one on my D disk > or S disk: In that case, you don't want PIPINIT TEST; that loads NXPIPE instead. You could rename or erase the old NXPIPE MODULE, and rename your new copy of PIPELINE to

Re: [CMS-PIPELINES] Converged custom profiles for 'CMS Productivity Aids'

2016-07-11 Thread Glenn Knickerbocker
On 7/10/2016 12:12 PM, Stanislawski, Shawn (National VM Capability) wrote: > I couldn't get EMSG to show up when using CSLMAP command from CMS, > however, which was very strange. Was unable to quick verify for that > one. There's always SAY, or PIPE rexxvars | > etc. But you can also look right

Re: [CMS-PIPELINES] Converged custom profiles for 'CMS Productivity Aids'

2016-07-08 Thread Glenn Knickerbocker
On 7/8/2016 10:50 AM, Stanislawski, Shawn (National VM Capability) wrote: > PEEK EXEC sets BOTH variable PEEK and NOTE , so I can't have both > PEEK / PROFPEEK and NOTE / PROFNOTE in the same converged file > using this single method. You don't need to dig around in the caller at all. Each one

Re: [CMS-PIPELINES] Speaking of SPECS NUMBER

2016-06-28 Thread Glenn Knickerbocker
On 6/28/2016 1:58 PM, John P. Hartmann wrote: > specs if #0==0 then set #0:=1;#1:=42 endif > On 06/28/2016 06:13 PM, Glenn Knickerbocker wrote: >> How the heck do I set a nonzero initial value? Aha, I missed: > The counters are initialised to contain a null value and never tho

[CMS-PIPELINES] Speaking of SPECS NUMBER

2016-06-28 Thread Glenn Knickerbocker
In saving an example for myself, I thought I'd reproduce NUMBER FROM using a counter, given that: > NUMBER is a convenience; the same result can be obtained by > incrementing a counter. How the heck do I set a nonzero initial value? I thought

Re: [CMS-PIPELINES] Field validation

2016-06-09 Thread Glenn Knickerbocker
On 6/8/2016 3:39 AM, Rob van der Heij wrote: > There are a few trigger words in that. The "first in the list" suggests a pipe > with "juxtapose count" Yay, another old new keyword for me to learn! Without it, my approach to the same task was the other way around: Number the primary input

Re: [CMS-PIPELINES] FANINTWO and EOF

2016-06-02 Thread Glenn Knickerbocker
On 6/1/2016 7:26 PM, Rob van der Heij wrote: > But I believe the AUTOSTOP option does exactly what the doctor ordered. That it does! Now, once it finds its way into the HELPLIB, I might even remember it. ¬R

Re: [CMS-PIPELINES] access to variable pool

2016-05-14 Thread Glenn Knickerbocker
On 5/14/2016 12:33 PM, Kris Buelens wrote: > There are other tricks: make 1 record of both the counter and the > data. Problem with that is that then you actually have to process the counter with every record. A dirtier trick that comes to mind is to put the counter on another stream and dig it

  1   2   3   4   >