boopathy.gopalsamy
New User
Joined: 29 May 2006 Posts: 2 Location: India
|
|
|
|
Hi all,
Please let us know if any body aware the sort utility options to convert Zone Decimal (Positive Value) to Zoned Decimal (Negative Value).
For eg: Amount field is 21.69 then internally in mainframe it is stored as
Positive Value is stored as : FFFFFFFFFFF
00000002169
Negative value is stored as : FFFFFFFFFFD
00000002169
We need the Sort utility function to convert the X'F' to X'D' ( Last half byte), hence the Zoned decimal amount field will be converted to Negative amount. |
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Here's a DFSORT job that will change a positive value (C or F sign) to a negative value (D sign), but leave a negative value (D sign) as is. I assumed your 11-byte ZD value started in position 21 but you can change the job appropriately for other starting positions.
Code: |
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=... input file
//SORTOUT DD DSN=... output file
//SYSIN DD *
OPTION COPY
* If ZD value >= 0, change sign to minus (D).
INREC IFTHEN=(WHEN=(21,11,ZD,GE,+0),
OVERLAY=(21:21,11,ZD,MUL,-1,TO=ZD,LENGTH=11))
/*
|
|
|