Previous Topic: Hexadecimal Fields and Bit Testing

Next Topic: Logic Flowcharts


CA JARS Wizard Exits

The CA JARS Wizard exit WIZSETT allows multiple transmittals of NT text to be produced whenever a debit amount exceeds 9999.99.

In the debit transmittal for CA JARS, the debit amount field is six bytes in size with two decimals.This is generally sufficient to meet the needs for most applications.

There are some cases where a single charge for one amount exceeds $9999.99, and when produced by CA JARS Wizard it becomes truncated.For example, $12,345.67 becomes $2345.67, or 234567 in the statement field.

There is now an exit designed to work in conjunction with a few CA JARS Wizard coding requirements that will produce transmittals until the entire calculated charge amount is produced.For example, a calculated charge of $12, 345.67 will produce one transmittal for $9999.99 and a second for $2,345.68.If you list the same field as in the output record, the report will show only the calculated amount of $12,345.67.

To use the WIZSETT exits you must:

  1. Add the following call immediately before the input statement

    CALL WIZSETT

  2. Define the debit amount field in the output record as a six byte packed field.

To use the WIZSETT exits with CA JARS interfaces you must:

  1. Add the following call immediately before the input statement

    CALL WIZSETT

  2. Change the debit amount field for the output record. For example, ODEBITAMT must be changed from ODEBITAMT (N)(6) to OBEDITAMT(P)(6)(.2). In the example that follows, ODEBITAMT is on the output item list immediately after OPROGRAMMER.

The following is an example of modified CA JARS Wizard code for use in the DB2 Interface.

PARAMETER NOPC XREF
CALL    WIZSETT
INPUT CAWGJRD2
DEFINE OFILL1(1)(C) = ' '
DEFINE ODEBIT(8)(C0 = 'DEBIT  '
DEFINE OCPUID(1)(C) = ' '
DEFINE OUSERID(8)(C) = ' '
DEFINE ODATE(6)(C) = ' '
DEFINE OJOB(8)(C) = 'DB2-PROC'
DEFINE OTIME(6)(C) = ' '
DEFINE OPROGRAMMER(20)(C) = ' '
DEFINE ODEBITAMT(6)(P)(.2) = 0
*
DEFINE IOREQT(6)(P) = 0
*
INPUT FILE KEY = 2CC1-8 MATCH = USER/ID TABLE=2CC10-25 LIST
COMPUTE(P) IF MATCHED THEN OACCT(C)(16) EQ 2CC10-25 ELSE
OACCT EQ USER/ID
*
COMPUTE OUSERID EQ USER/ID
COMPUTE IOREQT = (READ/SYNC/BP0 + READ/PREF/BP0 +
                  READ/SYNC/BP1 + READ/PREF/BP1 +
                  READ/SYNC/BP2 + READ/PREF/BP2 +
                  READ/SYNC/BP32 + READ/PREF/BP32
*
COMPUTE ODEBITAMT = (CPU/TIME * .19283) + (IOREQT * .0123)
*
SORT OACCT
BREAK OACCT
HEADING1C TOTAL CHARGES BY ACCOUNT
LIST(SUM) OACCT(DL) 'ACCOUNT',
          ODEBITAMT($) 'TOTAL CHARGE',
          CPU/TIME 'CPU TIME',
          IOREQT 'READ/REQUEST',
          COUNT 'DB2 ACCOUNT/RECORDS'
*
OUTPUT(SUM) FILE,RECFM = FB,R = 80,B = 800,
   ITEMS = OFILL1,ODEBIT,OCPUID,OUSERID,OACCT,ODATE,OJOB,
   OTIME,OPROGRAMMER,ODEBITAMT