IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

when=group clause: question about the end of group detection


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
tuxama

New User


Joined: 25 Jan 2007
Posts: 37
Location: france

PostPosted: Thu Mar 26, 2015 12:51 pm
Reply with quote

The input file contains several JCL concatenated one after the other and separated by a IEBUPDTE card "./ ADD".

I have to propagate the stepname column 90.

For this I use group instruction as well:

Code:

//CTL2CNTL DD *                                         
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(121:X)),
        IFTHEN=(WHEN=GROUP,                             
                BEGIN=(1,1,CH,EQ,C'//',AND,
                   3,1,CH,NE,C'*',AND,
                  4,71,SS,EQ,C' EXEC '),           
                END=(1,15,CH,EQ,C'./ ADD    NAME='),     
                PUSH=(90:3,8)),                         
/*                                                       


The problem is that the line that match "./ ADD" contains also the stepname.

To remove it I use the following :

Code:

//CTL2CNTL DD *                                         
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(121:X)),
        IFTHEN=(WHEN=GROUP,                             
                BEGIN=(1,1,CH,EQ,C'//',AND,
                   3,1,CH,NE,C'*',AND,
                  4,71,SS,EQ,C' EXEC '),           
                END=(1,15,CH,EQ,C'./ ADD    NAME='),     
                PUSH=(90:3,8)),                         
        IFTHEN=(WHEN=(1,15,CH,EQ,C'./ ADD    NAME='),   
                OVERLAY=(90:7X))                         
/*                                                       


Is there a better solution?

In any case, how excluded from processing lines that match BEGIN or END ?

Thank's for your time and attention.
Best regards
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7310
Location: Inside the Matrix

PostPosted: Thu Mar 26, 2015 2:43 pm
Reply with quote

A record matching END= is always part of the group. I think you already have the best way to deal with that.

For the rest, I'd suggest PARSEing the data. You can potentially get false hits on the way you have used SS to look for EXEC.
Code:

                BEGIN=(1,1,CH,EQ,C'//',AND,
                   3,1,CH,NE,C'*',AND,


You have a typo, and that can be simplified:

Code:
                BEGIN=(1,3,CH,EQ,C'// ',AND,
Back to top
View user's profile Send private message
tuxama

New User


Joined: 25 Jan 2007
Posts: 37
Location: france

PostPosted: Fri Mar 27, 2015 10:51 am
Reply with quote

Thanks for your answer.
Best Regards
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts SORT HELP - SORT A COLUMN and GROUP B... DFSORT/ICETOOL 9
No new posts Sort w/OUTREC Question DFSORT/ICETOOL 2
No new posts INCLUDE COND with WHEN=GROUP SYNCSORT 12
No new posts Write records with 3 or less rows in ... DFSORT/ICETOOL 3
No new posts Assembler test under mask question PL/I & Assembler 5
Search our Forums:

Back to Top