Correction:

/*----------------------------------------------------------
-----------------
               c100:                             j800:
+--+   +----+   +-+   +-----+                     +-+   +----+   +---+
+----+   +---+
|cp|-->|drop|-->|p|-->|specs|-------------------->|J|-->|pick|-->|...|
-->|sort|-->|...|
+--+   +----+   |i|   +-----+                     |u|   +----+   +---+
+----+   +---+
                |c|                               |x|
                |k|   +----+   +----+   +-----+   |t|
                | |-->|pick|-->|pick|-->|specs|-->|a|
                +-+   +----+   +----+   +-----+   +-+
------------------------------------------------------------
---------------*/

"pipe (end ? name querypath listerr)",
  "?       cp       query path      ",
  "|       drop     last 1          ", /* No Legend line. */
  "| c100: pick     w1 == /Device/  ",
  "|       specs    w2-4 1.25       ",
  "| j800: juxtapose                ",
  "|       pick     w3 \== /ONLINE/ ",
  "|       ....                     ", /* Do some processing here. */
  "|       sort     f1              ", /* Back to original order.  */
  "|       ....                     ", /* More processing          */

  "? c100:                          ",
  "|       pick     w1 \== /Online/ ",
  "|       pick     w2 \== /Available/ ",
  "|       specs    recno 1.8 right  1-* nf",
  "| j800:                          ",

On Thu, Mar 23, 2017 at 3:04 PM, Hobart Spitz <orexx...@gmail.com> wrote:

> At first blush, I think this is a job for JUXTAPOSE.
>
> Assuming you're working with something like this:
>
> Device 0192, Status ONLINE
>  CHPIDs to Device 0192 (PIM)  : 11 12 1A 22 30 40
>   Physically Available (PAM)  : +  +  +  +  +  +
>   Online               (LPM)  : -  -  +  +  +  -
>   Offline by Authorized User  : +  -  -  -  -  -
>   Offline by Control Unit     : -  +  -  -  -  +
>                        Legend     + Yes - No
>
>
> I would try:
>
> /*----------------------------------------------------------
> -----------------
>                c100:                   j800:
> +--+   +----+   +-+   +-----+           +-+   +----+   +---+   +----+
> +---+
> |cp|-->|drop|-->|p|-->|specs|---------->|J|-->|pick|-->|...|-->|sort|
> -->|...|
> +--+   +----+   |i|   +-----+           |u|   +----+   +---+   +----+
> +---+
>                 |c|                     |x|
>                 |k|   +----+   +----+   |t|
>                 | |-->|pick|-->|pick|-->|a|
>                 +-+   +----+   +----+   +-+
> ------------------------------------------------------------
> ---------------*/
>
> "pipe (end ? name querypath listerr)",
>   "?       cp       query path      ",
>   "|       drop     last 1          ", /* No Legend line. */
>   "| c100: pick     w1 == /Device/  ",
>   "|       specs    w2-4 1.25  recno 26.8 right  x05 n             ",
>   "| j800: juxtapose                ",
>   "|       pick     w3 \== /ONLINE/ ",
>   "|       ....                     ", /* Do some processing here. */
>   "|       sort     f1              ", /* Back to original order.  */
>   "|       ....                     ", /* More processing          */
>
>   "? c100:                          ",
>   "|       pick     w1 \== /Online/ ",
>   "|       pick     w2 \== /Available/ ",
>   "| j800:                          ",
>
> RECNO ensures that all records return to their positions within the group.
>
> The output from JUXT will look something like this:
>
> 0291, Status ONLINE            1*tab*CHPIDs to Device 0291
> 0291, Status ONLINE            2*tab*Offline by Authorized User
> 0291, Status ONLINE            3*tab*Offline by Control Unit
>
>
>
>
> On Thu, Mar 23, 2017 at 1:33 PM, Stanislawski, Shawn (National VM
> Capability) <shaw...@hpe.com> wrote:
>
>> Been working on developing my Pipethink, but this scenario has me
>> stumbling.
>>
>> Taking "CP QUERY PATHS 0-FFFF" and filtering so that only those with
>> potential problems (those who are NOT:  "status ONLINE"  AND  "show a '+'
>> for every CHPID") get output to console.
>> The more I poke at this, the more complex it gets.
>>
>> "CP QUERY PATHS" , according to the HELP file:
>> - Each output has from 5 up to and including 12 records/lines total.
>> - Each of the potential lines is a known template, and the first four are
>> always present and always the first four.
>> - The only record I don't really care about is the "Legend", which is
>> always the last record in each output.
>> - In the first record of each output, the "Status xxxx" could have 1 of 8
>> conditions for "xxxx".
>> - Records/lines 3-11 (inclusive) could contain either a "+" or "-" for
>> each CHPID (up to 8 total).
>>
>> If I'm just starting out by 'PIPE CP QUERY PATHS 0-FFFF', then I get a
>> QUERY PATHS output for each device successively.
>>
>> The first problem is:
>> How can I keep these successive outputs in order, but still work with
>> each output as a group when the number of records in the individual outputs
>> is variable?
>>
>> My first thought is to use JOIN so I can then filter the groups of
>> records based on criteria.  But I only know with certainty the first and
>> last records of each output group, the number of records is variable in
>> each group, and there doesn't seem to be any easy way to otherwise
>> distinguish one group from the next.
>> If the JOIN stage could accept a from-label and a to-label that would
>> solve the issue, so a user-made stage could be one solution.  But I feel
>> like there's got to be a better solution using just the built-in stages...
>>
>> 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".
>> I know BETWEEN/INSIDE would be better, but no idea how I'd JOIN in that
>> case...  I'm really trying to avoid a "JOIN *".
>>
>> Any thoughts?
>>
>> --Shawn S.
>>
>
>
>
> --
> OREXXMan
>



--
OREXXMan

Reply via email to