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

Syncsort - Create Multiple Records from Single Record(I/P)


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

New User


Joined: 03 Nov 2009
Posts: 14
Location: chennai

PostPosted: Sat Dec 05, 2009 2:29 am
Reply with quote

I'm getting SOC7 Abend.


Error Message:
TOOLMSG:
*****************************TOP OF DATA **************************************

SYT000I SYNCTOOL RELEASE 1.6.2 - COPYRIGHT 2007 SYNCSORT INC.
SYT001I INITIAL PROCESSING MODE IS "STOP"
SYT002I "TOOLIN" INTERFACE BEING USED

COPY FROM(IN) USING(CTL1)
SYT020I SYNCSORT CALLED WITH IDENTIFIER "0001"
SYT030I OPERATION COMPLETED WITH RETURN CODE 0

SORT FROM(T1) TO(OUT) USING(CTL2)
SYT020I SYNCSORT CALLED WITH IDENTIFIER "0002"

******************************** BOTTOM OF DATA ********************************


Control Card Used:


//* Control card Description :

//* H1 - I have to update the unique fields - starting Location: 31 Displacement:9 , Increment by +1 and Starting Location : 395 Displacement:9 ,Increment by +1

//* D1 - Starting location :25 Displacement:9 , Increment by +1

//* D1 - Starting Location :25 Displacement:9 , Increament by +1
//IPTS2805 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//*
//IN DD DSN=IPTT.IPTF500A.IPTB913.TSS.BJ1.PT.SI.G0004V00,
// DISP=SHR
//*
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(100,100)),DISP=(,PASS)
//*
//OUT DD DSN=IPTT.IPTF500A.IPTB913.TSS.BJ1.PT.SI.G0005V00,
// DISP=SHR,
// UNIT=SYSDA,
// SPACE=(CYL,(100,200),RLSE),
// DCB=(LRECL=471,BLKSIZE=0,RECFM=FB)
//*
//TOOLIN DD *
COPY FROM(IN) USING(CTL1)
SORT FROM(T1) TO(OUT) USING(CTL2)
/*
//CTL1CNTL DD *
INREC IFTHEN=(WHEN=INIT,OVERLAY=(472:1,2)),
IFTHEN=(WHEN=(1,2,CH,EQ,C'H1'),OVERLAY=(472:C'D1'))
OUTFIL FNAMES=T1,REPEAT=200,OVERLAY=(475:SEQNUM,8,ZD,START=0,
475:475,8,ZD,MOD,+200,TO=ZDF,LENGTH=8)
/*
//CTL2CNTL DD *
OPTION EQUALS
SORT FIELDS=(475,8,ZD,A)
OUTREC IFOUTLEN=471,
IFTHEN=(WHEN=(1,2,CH,EQ,C'H1'),
OVERLAY=(31:31,09,ZD,ADD,475,8,ZD,ADD,+1,TO=ZDF,LENGTH=09,
395:395,09,ZD,ADD,475,8,ZD,ADD,+1,TO=ZDF,LENGTH=09)),
IFTHEN=(WHEN=(1,2,CH,EQ,C'D1'),
OVERLAY=(25:25,09,ZD,ADD,475,8,ZD,ADD,+1,TO=ZDF,LENGTH=09)),
IFTHEN=(WHEN=(1,2,CH,EQ,C'D1'),
OVERLAY=(25:25,09,ZD,ADD,475,8,ZD,ADD,+1,TO=ZDF,LENGTH=09))
/*

Input File used: 471 Bytes:

[size=8][size=8][size=8]H1500A00005003400000300000+USD0000001 SCACSI 2009-10-282009-10-282009-10-28 00000001 SCHNEIDER NATIONAL, INC. 00955 0000045296+00000000+0000025+ 1234511 000050034HO
D1500ATFLHC TRKFRT 00002127600000052500+HK GOLDEN DEER CO. YANTIAN
D1500AAIRFS AIRFRT 00002127600000004301+HK GOLDEN DEER CO. YANTIAN
[/size][/size][/size]
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Dec 05, 2009 2:39 am
Reply with quote

Hello,

The s0c7 is caused by "numeric" data that is not a valid numeric.

You need to determine if the "record layout" is correct or if there is a problem with the data content (this could be many fields/records or a single invalid value).
Back to top
View user's profile Send private message
pushparaj v

New User


Joined: 03 Nov 2009
Posts: 14
Location: chennai

PostPosted: Wed Dec 09, 2009 7:57 am
Reply with quote

Thanks a lot.

Actually it was data issue, I have sorted out the SOC 07 Abend.

Now,

Could help me for the below scenario:

1) Behalf of creating the multiple records(For Example : 25000) in single file, Create the records into equal parts i.e 5000 records in File A, Next 5000 records in File B,...Last 5000 records in File E.
2) Also I need to schedule the jobs Manually(Not using ZEKE Scheduler) i.e First File A will be sending 5000 records to Message Queue. then Second File B should start sending next set of 5000 records to Message Queue only when File A return code = 00, Third File C should start sending next set of 5000 records to message queue only when File B return code = 00, Fourth File D should start sending next set of 5000 records to message queue only when File C return code = 00, Finally File E will start sending the 5000 records to message Queue only when File D return code = 00.
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Wed Dec 09, 2009 8:18 pm
Reply with quote

Hello,

Suggest you start a new topic for this question that is not related to the sort question. . . You would probably get more/useful replies.

To do what you want, have each "job" submit the next job thru the internal reader (there are many topics in the forum about using the internal reader).

I don't know how a file sets a condition code. . .
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 Compare 2 files(F1 & F2) and writ... JCL & VSAM 7
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts INCLUDE OMIT COND for Multiple values... DFSORT/ICETOOL 5
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts FINDREP - Only first record from give... DFSORT/ICETOOL 3
Search our Forums:

Back to Top