|
View previous topic :: View next topic
|
| Author |
Message |
Agni
New User

Joined: 22 Nov 2007 Posts: 83 Location: Chennai
|
|
|
|
All,
I have a requirement of removing non-numeric characters from my input file. It starts from byte 31 and ends in 47. i created a SORT card for this. But when i submitted the job it abended with U0016. When i checked in my spool, it says 'WER268A INREC STATEMENT : SYNTAX ERROR'.
Can any one help me out? Also, i don't want to have as many steps as the number of times checked for non-numeric.
| Code: |
// EXEC PGM=SORT
//SORTIN DD DSN=ABC.INPUT,DISP=SHR
//SORTOUT DD DSN=ABC.OUTPUT,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK,(500,100),RLSE),
// RECFM=FB,LRECL=80
//SYSOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=(31,1,FS,NE,NUM),OVERLAY=(31:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(32,1,FS,NE,NUM),OVERLAY=(32:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(33,1,FS,NE,NUM),OVERLAY=(33:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(34,1,FS,NE,NUM),OVERLAY=(34:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(35,1,FS,NE,NUM),OVERLAY=(35:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(36,1,FS,NE,NUM),OVERLAY=(36:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(37,1,FS,NE,NUM),OVERLAY=(37:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(38,1,FS,NE,NUM),OVERLAY=(38:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(39,1,FS,NE,NUM),OVERLAY=(39:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(40,1,FS,NE,NUM),OVERLAY=(40:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(41,1,FS,NE,NUM),OVERLAY=(41:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(42,1,FS,NE,NUM),OVERLAY=(42:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(43,1,FS,NE,NUM),OVERLAY=(43:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(44,1,FS,NE,NUM),OVERLAY=(44:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(45,1,FS,NE,NUM),OVERLAY=(45:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(46,1,FS,NE,NUM),OVERLAY=(46:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(47,1,FS,NE,NUM),OVERLAY=(47:C' '))
/*
//
|
|
|
| Back to top |
|
 |
William Thompson
Global Moderator
Joined: 18 Nov 2006 Posts: 3156 Location: Tucson AZ
|
|
|
|
| How about posting the sysout where the Syncsort error is shown? |
|
| Back to top |
|
 |
Agni
New User

Joined: 22 Nov 2007 Posts: 83 Location: Chennai
|
|
|
|
Hi William,
Here it goes.
| Code: |
SYSIN :
OPTION COPY
OUTREC IFTHEN=(WHEN=(31,1,FS,NE,NUM),OVERLAY=(31:C' '),
*
HIT=NEXT),
IFTHEN=(WHEN=(32,1,FS,NE,NUM),OVERLAY=(32:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(33,1,FS,NE,NUM),OVERLAY=(33:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(34,1,FS,NE,NUM),OVERLAY=(34:C' '),
HIT=NEXT),
.
.
.
IFTHEN=(WHEN=(45,1,FS,NE,NUM),OVERLAY=(45:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(46,1,FS,NE,NUM),OVERLAY=(46:C' '),
HIT=NEXT),
IFTHEN=(WHEN=(47,1,FS,NE,NUM),OVERLAY=(47:C' '))
WER268A OUTREC STATEMENT : SYNTAX ERROR
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000
|
Thanks
Agni. |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
When you posted the sysout info, the product release did not make it nto the post. It may help to know which release of the product you are running.
In additon to resolving the syntax error, i believe you may have an issue with the data as well.
| Quote: |
| It starts from byte 31 and ends in 47 |
Are these all 1-byte numeric fields? If they are of multiple bytes that make up one value (i.e. say bytes 31-35 are a quantity) and those positions have 123#5, the current implementation plan would make this be "123 5" - which i believe would still be invalid. |
|
| Back to top |
|
 |
Alissa Margulies
SYNCSORT Support
Joined: 25 Jul 2007 Posts: 496 Location: USA
|
|
|
|
Agni,
NUM is supported in SyncSort for z/OS 1.3. Please verify that you are not running an earlier release. |
|
| Back to top |
|
 |
Agni
New User

Joined: 22 Nov 2007 Posts: 83 Location: Chennai
|
|
|
|
Hi All,
I understood my requirement wrongly and i gave it wrongly in my post. Sorry about that. Actually if any of the one byte, from the byte 31 to 47 contains non-numeric character, then spaces should be moved to 31-47. This is my actual requirement. Can any one of you give SORT card for this,please?
Thanks
Agni |
|
| Back to top |
|
 |
shankar.v
Active User
Joined: 25 Jun 2007 Posts: 196 Location: Bangalore
|
|
|
|
Hi Agni,
Please check with the following code for your requirement.
| Code: |
// EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=INFILE,DISP=SHR
//SORTOUT DD DSN=OUTFILE,DISP=...
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=(31,17,FS,NE,NUM),OVERLAY=(31:17X))
/*
// |
Thanks,
Shankar |
|
| Back to top |
|
 |
Agni
New User

Joined: 22 Nov 2007 Posts: 83 Location: Chennai
|
|
|
|
Hi Alissa,
Syncsort version in my shop is "SYNCSORT FOR Z/OS 1.2.2.2R". Is there any other way of achieving my requirement?
Thanks
Agni |
|
| Back to top |
|
 |
Aaru
Senior Member

Joined: 03 Jul 2007 Posts: 1287 Location: Chennai, India
|
|
|
|
Agni,
Did you try submitting the SORT jcl posted by shankar? |
|
| Back to top |
|
 |
shankar.v
Active User
Joined: 25 Jun 2007 Posts: 196 Location: Bangalore
|
|
|
|
Hi Agni,
| Quote: |
| Syncsort version in my shop is "SYNCSORT FOR Z/OS 1.2.2.2R". Is there any other way of achieving my requirement? |
Please check with the following code for your requirement.
| Code: |
// EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=INFILE,DISP=SHR
//SORTOUT DD DSN=OUTFILE,DISP=...
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=(31,01,SS,NE,C'0123456789',OR,
32,01,SS,NE,C'0123456789',OR,
33,01,SS,NE,C'0123456789',OR,
34,01,SS,NE,C'0123456789',OR,
35,01,SS,NE,C'0123456789',OR,
36,01,SS,NE,C'0123456789',OR,
37,01,SS,NE,C'0123456789',OR,
38,01,SS,NE,C'0123456789',OR,
39,01,SS,NE,C'0123456789',OR,
40,01,SS,NE,C'0123456789',OR,
41,01,SS,NE,C'0123456789',OR,
42,01,SS,NE,C'0123456789',OR,
43,01,SS,NE,C'0123456789',OR,
44,01,SS,NE,C'0123456789',OR,
45,01,SS,NE,C'0123456789',OR,
46,01,SS,NE,C'0123456789',OR,
47,01,SS,NE,C'0123456789'),
OVERLAY=(31:17X))
/*
// |
Thanks,
Shankar |
|
| Back to top |
|
 |
skrishnavijay
New User

Joined: 26 Sep 2007 Posts: 25 Location: chennai
|
|
|
|
Hi Agni,
Please find below the fileaid routine that I got from the posts.
//STEP0001 EXEC PGM=FILEAID
//SYSPRINT DD SYSOUT=*
//DD01 DD DISP=SHR,DSN=INPUT DATASET
//DD01O DD DSN=OUTPUT DATASET,
// DISP=(NEW,CATLG,DELETE),
// RECFM=..,LRECL=....,
// SPACE=....,UNIT=SYSDA
//SYSIN DD *
*
$$DD01 COPY IF=(31,17,EQN)
/*
Thanks,
Krishna |
|
| Back to top |
|
 |
Agni
New User

Joined: 22 Nov 2007 Posts: 83 Location: Chennai
|
|
|
|
Hi Shankar,
I tried your code. But it is not working properly. Please see below.
This is in the input file.
| Code: |
----+----1----+----2----+----3----+----4----+----5----+----6----+----7
9155-04754-09-43/
1499****65/
|
I am getting in the output file as:
| Code: |
----+----1----+----2----+----3----+----4----+----5----+----6----+----7
-43/
*65/
|
Please correct me if i have done something wrong.
Thanks
Agni |
|
| Back to top |
|
 |
CICS Guy
Senior Member

Joined: 18 Jul 2007 Posts: 2146 Location: At my coffee table
|
|
|
|
| Agni wrote: |
| I tried your code. But it is not working properly. |
Is the file VB?
If it is, you need to add four to the dusplacements.....35 to 51..... |
|
| Back to top |
|
 |
Agni
New User

Joined: 22 Nov 2007 Posts: 83 Location: Chennai
|
|
|
|
Hi,
Yes, it's a VB file. I tried it and it worked fine. Thanks all.
Cheers
Agni. |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|