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

Parse statement error...


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
karthikr44

Active User


Joined: 25 Aug 2007
Posts: 235
Location: Chennai

PostPosted: Tue Aug 10, 2010 4:24 pm
Reply with quote

Hi,

I want to achieve the following requirement.

I/P: RECFM FB/133

Code:

 SCREEN NAME:APS001
 AMENDMENT CURRENTLY IN PROGRESS                                                 
 CAN NOT CHANGE UNIQUE INDEX OR KEY FIELDS                                       
 CLEAR IS INVALID 
 SCREEN NAME:APS002                                                             
 DATA DELETED                                                                   
 DATA HAS NOT BEEN COPIED                                                       
 DATA HAS NOT BEEN DELETED                                                       
 DATA HAS NOT BEEN SAVED       


O/P: RECFM FB/133

Code:
                                                 
 APS001|AMENDMENT CURRENTLY IN PROGRESS                                                 
 APS001|CAN NOT CHANGE UNIQUE INDEX OR KEY FIELDS                                       
 APS001|CLEAR IS INVALID 
 APS002|DATA DELETED                                                                   
 APS002|DATA HAS NOT BEEN COPIED                                                       
 APS002|DATA HAS NOT BEEN DELETED                                                       
 APS002|DATA HAS NOT BEEN SAVED                                                         


I tried the below code

Code:
                                                 
 SORT FIELDS=COPY                                               
 INREC IFTHEN=(WHEN=(1,12,CH,EQ,C'SCREEN NAME:'),               
 PARSE=(%1=(STARTAFT=C'NAME:',ENDBEFR=C' ',FIXLEN=6))),         
 IFTHEN=(WHEN=(1,12,CH,NE,C'SCREEN NAME:'),                     
 BUILD=(01:%1,C'|',1,80))                                           


But i am getting the following error,

Code:
                                                 
SYSIN :                                                         
  SORT FIELDS=COPY                                             
  INREC IFTHEN=(WHEN=(1,12,CH,EQ,C'SCREEN NAME:'),             
  PARSE=(%1=(STARTAFT=C'NAME:',ENDBEFR=C' ',FIXLEN=6))),       
                                                       *       
  IFTHEN=(WHEN=(1,12,CH,NE,C'SCREEN NAME:'),                   
  BUILD=(01:%1,1,80))                                           
WER268A  INREC STATEMENT   : SYNTAX ERROR                       
WER211B  SYNCSMF  CALLED BY SYNCSORT; RC=0000                   
WER449I  SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE                 
 


Please some one help me to resolve this. I am unable to catch the error.

Thanks
R KARTHIK
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Tue Aug 10, 2010 4:29 pm
Reply with quote

wild guess - remove the comma from the end of the line that begins with parse.
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Tue Aug 10, 2010 4:31 pm
Reply with quote

Just eyeballing it, looks to me like you have one too many close parentheses after the first PARSE.
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Tue Aug 10, 2010 4:50 pm
Reply with quote

Another guess icon_biggrin.gif PARSE should be followed by an OVERLAY or a BUILD. You miss it in your first IFTHEN
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Tue Aug 10, 2010 5:11 pm
Reply with quote

And looking into your input data, it seems like you dont need a 'PARSE' application here or in other words it wont work out for you. PARSE cannot propagate fields across a 'GROUP'. If you have Syncsort for z/OS 1.3.2,you can try the below one.

Also as per your initial post, output LRECL is 133 which might not be the case as you are adding the 'screen name' - 6 byte and a '|' symbol to each record making it 140.
Code:
//SYSIN DD *
  INREC IFTHEN=(WHEN=GROUP,BEGIN=(1,12,CH,EQ,C'SCREEN NAME:'),
        PUSH=(134:13,6))
  SORT FIELDS=COPY
  OUTFIL OMIT=(1,12,CH,EQ,C'SCREEN NAME:'),BUILD=(134,6,C'|',1,133)
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 -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts PARSE Syntax for not fix length word ... JCL & VSAM 7
No new posts Error to read log with rexx CLIST & REXX 11
No new posts Error when install DB2 DB2 2
No new posts CLIST - Virtual storage allocation error CLIST & REXX 5
No new posts Error while running web tool kit REXX... CLIST & REXX 5
Search our Forums:

Back to Top