Page 1 of 3

Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Tue Oct 14, 2008 10:35 pm
by claywilly
Hello,
I have a somewhat complex problem that envolves 3 input files.
It might take several steps to get to the end result.
I would appreciate any suggestions.

The PASM input file has a record length of 380.
The OPPH input file has a record length of 398.
The OPVL input file has a record length of 380.

I need to extract all records from PASM and create a file containing the PA Number (1:11), Authorized Limit (92:16) and End Date (82:10).

I need to extract all records from OPVL where Ref.Trans.Code (182:2) = "PN" and create a file containing the whole PN Number (182:16), Closed Amount (101:16) and Last Check Date (146:10), then summarize Closed Amount by PN Number.

I need to extract all records from OPPH where the Blanket Number (131:11) is not spaces and create a file containing the Blanket Number (131:11) and Expended Amount (291:16), then summarize Expended Amount by Blanket Number.

I need to join the PASM file (PA Number) with the OPVL file (PN Number). Return all PASM records and only those OPVL records where PN Number = PA Number.

I need to join the PASM file (PA Number) with the OPPH file (Blanket Number). Return all PASM records and only those OPPH records where Blanket Number = PA Number.

The end result (file) should include all PA Numbers, End Date, Authorized Limit (from PASM), OPVL Closed Amount, OPPH Expended Amount, then calculate the Remaining Balance (Authorized Limit - OPVL Closed Amount - OPPH Expended amount)

If this is too complex, just let me know. :?
Thank you.

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Wed Oct 15, 2008 12:30 am
by claywilly
I forgot to mention that the amount fields are already in the format of Siiiiiiiiiiii.ii ( s is sign).

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Wed Oct 15, 2008 2:36 am
by Frank Yaeger
I need more information. Show an example of the records in each input file (relevant fields only), and the corresponding expected intermediate records, and final output records. If there can be duplicates at any point, show that in your example. Explain the "rules" in terms of the example.

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Wed Oct 15, 2008 5:18 am
by claywilly
Sample PASM records (with pos:length)
PA Number 1:11      End Date 82:10   Auth. Amount 92:16
D0000000022   â€¦â€¦   4/30/1998   â€¦â€¦   100000.00
D0000000023   â€¦â€¦   4/30/1995   â€¦â€¦   18000.00
D0000000025   â€¦â€¦   11/15/1997   â€¦â€¦   520000.00
D0000000030   â€¦â€¦   5/24/1997   â€¦â€¦   50000.00
D0000000032   â€¦â€¦   9/30/1996   â€¦â€¦   1200000.00


Sample OPVL records (with pos:length)
1:100   Closed Amt. 101:16   Last Check Date 146:10       PN Number 187:16      
….           +2100.00   â€¦.         08/13/2002   â€¦.        PN012RB000054.02      â€¦.
….          +39829.67   â€¦.         04/29/2002   â€¦.        PO012RB000054.02      â€¦.
….           +8866.50   â€¦.         04/29/2002   â€¦.        PN012RB000054.02      â€¦.
….          -13726.56   â€¦.         05/30/2002   â€¦.        PO012RB000054.02      â€¦.
….          +14685.00   â€¦.         05/30/2002   â€¦.        PN012RB000054.02      â€¦.
….                     
Sorted / Summarized result                     
….           25651.5   â€¦.          05/30/2002   â€¦.        PN012RB000054.02      



Sample OPPH records (with pos:length)
1:130   Blanket Num. 131:11      Expended Amt. 291:16            
….   N2000002903   â€¦.          +24948.00            
….   N3000002903   â€¦.          +10695.00            
….   N1000005282   â€¦.          +10070.00            
….   N1000005282   â€¦.              +0.00            
….   N1000005282   â€¦.          +13911.50            

Sorted / Summarized result                     
….   N2000002903   â€¦.           35643.00            
….   N1000005282   â€¦.           23981.50            



Join if the OPVL PN Number (from pos 192:11) equals the PA Number from PASM
Join if the OPPH Blanket Number equals the PA Number from PASM

Sample end result file:
PA Number      End Date    Auth. Amount    OPVL Closed Amt.     OPPH Expended Amt.   Rem.Balance
N2000002903   08/13/2002     +494500.00           +2100.00         +35643.00          +456757.00
N1000005282   04/29/2002     +500000.00          +39829.67         +23981.50          +436188.83
…..               



There would be duplicate PA and PN Numbers, but then they would be summarized (on amounts) before the final output.

THanks.

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Thu Oct 16, 2008 2:29 am
by Frank Yaeger
Join if the OPVL PN Number (from pos 192:11) equals the PA Number from PASM
Join if the OPPH Blanket Number equals the PA Number from PASM


Huh? I don't see any matches between these numbers in your examples.

For the output,you show PA numbers of N2000002903 and N1000005282. I see blanket numbers in OPPH that match those numbers. But I don't see any values in PASM or OPVL that match those numbers. So your "rules" don't seem to match your examples.

You need to explain HOW you got those output records from the input records you show.

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Thu Oct 16, 2008 3:58 am
by claywilly
Here is a better example:

PASM file input records:
PA Number 1:11      End Date 82:10   Auth. Amount 92:16
D0000000022   â€¦â€¦   4/30/1998   â€¦â€¦   +100000.00
D0000000025   â€¦â€¦   11/15/1997  ……   +520000.00
D0000000030   â€¦â€¦   5/24/1997   â€¦â€¦   +50000.00
N1000005282   â€¦â€¦   9/30/1996   â€¦â€¦   +1200000.00
N2000002903   â€¦â€¦   7/12/1999   â€¦â€¦   +53070.00


OPVL file input records:
1:100   Closed Amt. 101:16   Last Check Date 146:10       PN Number 187:16     
….           +2100.00   â€¦.         08/13/2002   â€¦.        PN012D0000000025      ….
….          +39829.67   â€¦.         04/29/2002   â€¦.        PO012RB000054.02      ….
….           +8866.50   â€¦.         04/29/2002   â€¦.        PN012D0000000025      ….
….          -13726.56   â€¦.         05/30/2002   â€¦.        PO012RB000054.02      ….
….          +14685.00   â€¦.         05/30/2002   â€¦.        PN012D0000000025     â€¦.
….                     
Sorted / Summarized result  (Just "PN" numbers are sorted and summed)                   
….           +25651.50   â€¦.          05/30/2002   â€¦.      PN012D0000000025     


OPPH file input records:
1:130   Blanket Num. 131:11      Expended Amt. 291:16           
….   N2000002903   â€¦.          +24948.00           
….   N3000002903   â€¦.          +10695.00           
….   N1000005282   â€¦.          +10070.00           
….   N1000005282   â€¦.              +0.00           
….   N1000005282   â€¦.          +13911.50           

Sorted / Summarized result     
….   N1000005282   â€¦.           +23981.50                   
….   N2000002903   â€¦.           +24948.00 
….   N3000002903   â€¦.           +10695.00       


Join if the OPVL PN Number (from pos 192:11) equals the PA Number from PASM
--- D0000000025 is in the PASM file.

Join if the OPPH Blanket Number equals the PA Number from PASM
---N1000005282 and N2000002903 are in the PASM file

Sample end result file.
PA Number      End Date    Auth. Amount    OPVL Closed Amt.     OPPH Expended Amt.   Rem.Balance
D0000000025   11/15/1997      +520000.00          +25651.50         +0.00              +494348.50
N1000005282    9/30/1996      +1200000.00         +0.00             +23981.50          +1176018.50
N2000002903    7/12/1999      +53070.00           +0.00             +35643.00          +17427.00
…..               


Does this help?
Thanks.

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Thu Oct 16, 2008 5:18 am
by Frank Yaeger
N2000002903    7/12/1999      +53070.00           +0.00             +35643.00          +17427.00


Where did the +35643.00 value come from? Shouldn't the value be +24948.00 from the sorted/summarized result for the N2000002903 record in OPPH?

Let's take this a step at a time to make sure I understand what you want. Let's start with the three extracted output files (before the join).

I need to extract all records from PASM and create a file containing the PA Number (1:11), Authorized Limit (92:16) and End Date (82:10).

I need to extract all records from OPVL where Ref.Trans.Code (182:2) = "PN" and create a file containing the whole PN Number (182:16), Closed Amount (101:16) and Last Check Date (146:10), then summarize Closed Amount by PN Number.

I need to extract all records from OPPH where the Blanket Number (131:11) is not spaces and create a file containing the Blanket Number (131:11) and Expended Amount (291:16), then summarize Expended Amount by Blanket Number.


Does this DFSORT/ICETOOL job give you the three extracted output data sets the way you want them?

//S1   EXEC  PGM=ICETOOL
//TOOLMSG   DD  SYSOUT=*
//DFSMSG    DD  SYSOUT=*
//PASM DD DSN=... PASM input file
//OPPL DD DSN=... OPPL input file
//OPPH DD DSN=... OPPH input file
//PASMOUT DD DSN=...  PASM output file
//OPPLOUT DD DSN=...  OPPL output file
//OPPHOUT DD DSN=...  OPPH output file
//TOOLIN DD *
COPY FROM(PASM) TO(PASMOUT) USING(CTL1)
SORT FROM(OPPL) USING(CTL2)
SORT FROM(OPPH) USING(CTL3)
/*
//CTL1CNTL DD *
  INREC BUILD=(1:1,11,82:82,10,92:92,16)
/*
//CTL2CNTL DD *
  INCLUDE COND=(182,2,CH,EQ,C'PN')
  INREC BUILD=(101:101,16,146:146,10,182:182,16)
  SORT FIELDS=(182,16,CH,A)
  OUTFIL FNAMES=OPPLOUT,NODETAIL,REMOVECC,
    SECTIONS=(182,16,
      TRAILER3=(101:TOT=(101,16,SFF,EDIT=(SIIIIIIIIIIIT.TT),
        SIGNS=(+,-)),146:146,10,182:182,16))
/*
//CTL3CNTL DD *
  INCLUDE COND=(131,11,CH,NE,C' ')
  INREC BUILD=(131:131,11,291:291,16)
  SORT FIELDS=(131,11,CH,A)
  OUTFIL FNAMES=OPPHOUT,NODETAIL,REMOVECC,
    SECTIONS=(131,11,
      TRAILER3=(131:131,11,
       291:TOT=(291,16,SFF,EDIT=(SIIIIIIIIIIIT.TT),
         SIGNS=(+,-))))
/*

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Thu Oct 16, 2008 5:35 am
by claywilly
Yes, you are correct on the amount should be +24948.00.

However, it should be OPVL not OPPL, in your code.

I am running the test now and will let you know the results.

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Thu Oct 16, 2008 6:40 am
by claywilly
OK. There were some typos (my fault) but I corrected them. > The PN number position starts at 187, not 182. I changed the code to reflect that. The OPPL was renamed to OPVL in all occurances.

The job ran ok after some minor output record length adjustments.

PASMOUT file :

0-15                   82-107      
----+----1----+   ----+----9----+----0----+--      
***************   ***************************      
AC97446120         06/30/2002     +1658400.00      
DGS-OFA-97F        06/30/2003           +0.00      
D0000000007        08/31/1996       +60000.00      
D0000000012        11/30/1996       +55000.00      
D0000000013        11/30/1996     +2506454.00      
D0000000020        03/31/1997       +47000.00      
D0000000022        04/30/1998      +100000.00      
D0000000023        04/30/1995       +18000.00      
D0000000025        11/15/1997      +520000.00      



OPVLOUT file:
100-120                     145-156            185-202   
0----+----1----+----2      +----5----+-      +----9----+----0--   
*********************       ***********      ******************   
        +64550.00           07/30/2008         PN001F2000002042   
          +128.46           06/14/2002         PN001N1000003319   
         +3629.25           02/22/2007         PN001N1000003488   
        +46099.66           02/15/2008         PN001N1000004520   
        +71642.94           01/10/2008         PN001N1000007362   
          +277.45           11/25/2003         PN001N1000009176   
          +326.38           02/21/2006         PN001N3000001358   
          +884.17           05/29/2002         PN001X4000000219   



OPPHOUT file:

130-142         293-306            
3----+----4--   --+----0----+-            
*************   **************            
 DA00000015              +0.00            
 D0000000007         +18570.50            
 D0000000020         +17319.30            
 D0000000022          +3276.50            
 D0000000023          +1838.20            
 D0000000032          +8584.62            
 D0000000039         +27306.70            
 D0000000040        +107026.30            



So far so good.

Re: Help with Icetool, Splice, Sum and Calculate complex sort

PostPosted: Thu Oct 16, 2008 9:56 pm
by Frank Yaeger
Well, since you changed the job, please post the job you used.

Do you actually need to keep the PASMOUT, OPVLOUT and OPPHOUT data sets as separate data sets? Or are they just throwaway data sets to get us to the final output data set?

In your example, you only show matches for a particular key between two of the data sets at a time. Is it possible to have a match on a key in all three data sets?