Sort to convert PD to numeric

In this Mainframe Forum - You can post your queries on DFSORT, ICETOOL , SyncSort & JCL Utilities

Moderators: Frank Yaeger, Moderator Group

Post Reply
archup20
Member
Posts: 31
Joined: Thu Dec 09, 2010 9:53 am

Sort to convert PD to numeric

Post by archup20 » Tue Nov 08, 2011 6:20 pm

I have PD field of length s9(14)v99 I got it converted to numeric using the code

SORT FIELDS=COPY
OUTREC FIELDS=(1,558,
559,9,PD,EDIT=(TTTTTTTTTTTTTTTTS),SIGNS=(,,+,-),
568,33)

But instead of getting the values with decimal like 17688.54 I am getting like this
1768854

Please give suggestions on how to get the decimal points.

DikDude
Moderator
Posts: 1001
Joined: Fri Jul 22, 2011 8:39 am
Location: usa

Post by DikDude » Tue Nov 08, 2011 8:09 pm

You need to specify the decimal point in your EDIT= (i.e. TTT.TTS) using asd many leading T's as needed.
Have a good one

User avatar
Frank Yaeger
Moderator
Posts: 812
Joined: Sat Feb 18, 2006 5:45 am
Location: San Jose, CA
Contact:

Post by Frank Yaeger » Tue Nov 08, 2011 11:26 pm

archup20,

You can use a DFSORT OUTREC statement like this:

Code: Select all

  OUTREC FIELDS=(1,558,                                            
              559,9,PD,EDIT=(TTTTTTTTTTTTTTT.TTS),SIGNS=(,,+,-),   
              568,33)                                              
Frank Yaeger - DFSORT Development Team (IBM) - yaeger@us.ibm.com
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
=> DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort

archup20
Member
Posts: 31
Joined: Thu Dec 09, 2010 9:53 am

Post by archup20 » Wed Nov 09, 2011 9:56 am

Thanks DikDude and Frank. I got hte decimal point by using the below code

SORT FIELDS=COPY
OUTREC FIELDS=(1,558,
559,9,PD,EDIT=(sTTTTTTTTTTTTTT.TT),SIGNS=(,,+,-),
568,33)

But now I am getting too many leading zeroes and the negative signs are not visible.
Now 17688.54 comes like this 0000017688.54

I tried removing some leading T's but it is not working. Please suggest me on this.

User avatar
Frank Yaeger
Moderator
Posts: 812
Joined: Sat Feb 18, 2006 5:45 am
Location: San Jose, CA
Contact:

Post by Frank Yaeger » Wed Nov 09, 2011 10:27 pm

You switched EDIT from a trailing sign to a leading sign, but you didn't fix SIGNS. For a leading sign, you need SIGNS=(+,-). If you don't want leading zeros, then use I instead of T. So you want something like this:

Code: Select all

  559,9,PD,EDIT=(SIIIIIIIIIIIIIT.TT),SIGNS=(,,+,-), 
This is all documented in the DFSORT books, so you can look it up and play with it until you get exactly what you want.
Frank Yaeger - DFSORT Development Team (IBM) - yaeger@us.ibm.com
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
=> DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort

archup20
Member
Posts: 31
Joined: Thu Dec 09, 2010 9:53 am

Post by archup20 » Thu Nov 10, 2011 10:25 am

Thanks Frank!!!

I included your suggestions in my sort card and it works perfectly for me now. :D :)

academyindia4

Topic deleted by Admin

Post by academyindia4 » Thu Jan 21, 2016 10:23 am

<< Content deleted By Admin >>

Post Reply

FREE TUTORIALS

Tutorials
Free tutorials from mainframegurukul
  • JCL Tutorial
    Covers all important JCL concepts.
  • Cobol Tutorial
    This tutorials covers all Cobol Topics from STRING to COMP-3.
  • DB2 Tutorial
    DB2 Tutorial focuses on DB2 COBOL Programming.
  • SORT Tutorial
    This Tutorial covers all important aspects of DFSORT with examples
  • CICS Tutorial
    This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions



Other References
Mainframe Tools and others