Steps for Recreation

21
Steps for recreation: 1. Take cli ent’s environment wi th the upda tes R09_T T_Fo undation_6 and R09_TT_Contract_14 and installed. 2. Have t he TELL ER.TRANSAC TION Re cord as shown belo w. 3. Have the FT.COMMISSION.TYPE Record as shown below. 4. Have the T AX reco rd as shown bel ow. 5. Have t he TT. GROUP.CONDI TION r ecord as shown belo w. 6. Have t he APP L.GEN. CONDI TION r ecord as shown belo w. 7. Now inp ut a telle r transac tion wit h customer account category equa ls to 1001, the system recalculates the CHRG.AMT.LOCAL and its corresponding  TAX amount. 8. Now cha nge the va lue in the fie ld CHRG.AMT.LOCAL , the system no w does not change the TAX amount instead it retains the same tax amount which was calculated previously. Debug BASE debugger->S ource changed to D:\R9\Temenos\R09\bnk\bnk.run\BIAT1.BP\TT.CHECK.FIELDS 0346 GOSUB INITIALISE  jBASE debugger->C DEBUG statement seen Source changed to D:\R9\Temenos\R09\bnk\bnk.run\BIAT2.BP\TT.PERFORM.DEF.PROCESSING 0319 DEBUG  jBASE debugger->C DEBUG statement seen 0886 DEBUG  jBASE debugger->S 0887 CHG.COUN = DCOUNT(TELLER.CHARGE,VM)

Transcript of Steps for Recreation

Page 1: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 1/21

Steps for recreation:

1. Take client’s environment with the updates R09_TT_Foundation_6 and

R09_TT_Contract_14 and installed.

2. Have the TELLER.TRANSACTION Record as shown below.

3. Have the FT.COMMISSION.TYPE Record as shown below.

4. Have the TAX record as shown below.

5. Have the TT.GROUP.CONDITION record as shown below.

6. Have the APPL.GEN.CONDITION record as shown below.

7. Now input a teller transaction with customer account category equals to

1001, the system recalculates the CHRG.AMT.LOCAL and its corresponding

 TAX amount.

8. Now change the value in the field CHRG.AMT.LOCAL, the system now does

not change the TAX amount instead it retains the same tax amount which

was calculated previously.

Debug

BASE debugger->S

ource changed to

D:\R9\Temenos\R09\bnk\bnk.run\BIAT1.BP\TT.CHECK.FIELDS

0346 GOSUB INITIALISE

 jBASE debugger->C

DEBUG statement seen

Source changed to

D:\R9\Temenos\R09\bnk\bnk.run\BIAT2.BP\TT.PERFORM.DEF.PROCESSING

0319 DEBUG

 jBASE debugger->C

DEBUG statement seen

0886 DEBUG

 jBASE debugger->S

0887 CHG.COUN = DCOUNT(TELLER.CHARGE,VM)

Page 2: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 2/21

 jBASE debugger->S

0888 IF CONTRACT.GRP THEN ;* If TT.GROUP.CONDITION defined then

 jBASE debugger->S

0889 SAVE.TELLER.CHARGE = TELLER.CHARGE ;*CI_10046309 - S

 jBASE debugger->S

0890 CALL

CALCULATE.CHARGE(C.CUST,C.AMT,C.CCY,C.MKT,C.RATE,C.CROSS.CCY,C.DRAW.CC

  Y,TELLER.CHARGE,CUST.CONDITION,"","") ;* For general charges defined in

 TELLER.TRANSACTION

 jBASE debugger->T CUST.CONDITION

t 4: CUST.CONDITION

 jBASE debugger->S

0891 GENERAL.CHARGE = TELLER.CHARGE ;*CI_10046309 - E

COMMON variables

TELLER.CHARGE :

BIAT]18^COM]TAX^52052]USD172050001^10.00]1.80^^^962]465^961]464^NO

^^^^]18^]PLUS^^^USD^18^^^^USD]USD^]1^]^^^^^^^^^^^^^^^^^^

^^^^^^10^]^]^]^^^^FLAT

COMMON variables

R.NEW(37) : 5.00]0.04

 jBASE debugger->S

0892 TELLER.CHARGE = SAVE.TELLER.CHARGE

 jBASE debugger->S

0893 FOR S.LOOP = 1 TO CHG.COUN ;* If more than one charge code is

defined....

COMMON variables

TELLER.CHARGE : BIAT

 jBASE debugger->S

0894 GOSUB PROCESS.TT.GROUP.COND

Page 3: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 3/21

0920 PROCESS.TT.GROUP.COND:

0921 CHG.CODE = ''

COMMON variables

TELLER.CHARGE : BIAT

 jBASE debugger->S

0922 CHG.CODE = TELLER.CHARGE<1,S.LOOP>

 jBASE debugger->S

0923 TGC.REC = ''

 jBASE debugger->S

0924 TGC.ERR = ''

 jBASE debugger->S

0925 TGC.ID = "C-":C.CUST ;*BG_100001355 S

 jBASE debugger->S

0926 CALL CACHE.READ(FN.TGC,TGC.ID,TGC.REC,TGC.ERR)

;*BG_100007243

 jBASE debugger->S

0927 IF TGC.REC EQ '' THEN

 jBASE debugger->S

0928 TGC.ID = R.NEW(TT.TE.CONTRACT.GRP)

 jBASE debugger->S

0929 CALL CACHE.READ(FN.TGC,TGC.ID,TGC.REC,TGC.ERR)

;*BG_100007243

 jBASE debugger->S

0930 END ;*BG_100001355 E

 jBASE debugger->V TGC.ID

TGC.ID : 1234

 jBASE debugger->S

Page 4: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 4/21

0931 IF TGC.REC NE '' THEN

 jBASE debugger->S

0932 IF TGC.REC<TT.GRP.COND.CHG.TYPE,1> = 'ALL' THEN

 jBASE debugger->S

0934 END ELSE

 jBASE debugger->S

0935 LOCATE CHG.CODE IN TGC.REC<TT.GRP.COND.CHG.TYPE,1> SETTING

CHG.POS THEN

 jBASE debugger->S

0936 IF TGC.REC<TT.GRP.COND.CHG.PERCENT,CHG.POS> NE '' THEN

 jBASE debugger->S

0937 CUST.CONDITION<1,S.LOOP> =

 TGC.REC<TT.GRP.COND.CHG.PERCENT,CHG.POS>

 jBASE debugger->S

0943 END

CUST.CONDITION : 2

 jBASE debugger->S

0944 END

 jBASE debugger->S

0945 END ;* CI_10025601/S

 jBASE debugger->S

0946 END

 jBASE debugger->S

0947 RETURN

 jBASE debugger->s

0895 NEXT S.LOOP

COMMON variables

Page 5: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 5/21

 jBASE debugger->S

0896 CALL

CALCULATE.CHARGE(C.CUST,C.AMT,C.CCY,C.MKT,C.RATE,C.CROSS.CCY,C.DRAW.CC

  Y,TELLER.CHARGE,CUST.CONDITION,"","") ;* Process for TT.GROUP.CONDITION

 jBASE debugger->V C.AMT

C.AMT : 100

 jBASE debugger->

 jBASE debugger->V C.CCY

C.CCY : USD

 jBASE debugger->

 jBASE debugger->V C.MKT

C.MKT : 10

 jBASE debugger->

 jBASE debugger->V C.RATE

C.RATE :

 jBASE debugger->

 jBASE debugger->V C.CROSS.CCY

C.CROSS.CCY : USD

 jBASE debugger->

 jBASE debugger->V C.DRAW.CCY

C.DRAW.CCY : USD

 jBASE debugger->

 jBASE debugger->V CUST.CONDITION

CUST.CONDITION : 2

 jBASE debugger->S

0897 FOR S.LOOP = 1 TO CHG.COUN

COMMON variables

Page 6: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 6/21

TELLER.CHARGE :

BIAT]18^COM]TAX^52052]USD172050001^0.20]0.04^^^962]465^961]464^NO^

^^^]18^]PLUS^^^USD^18^^^^USD]USD^]1^]^^^^^^^^^^^^^^^^^^^

^^^^^10^]^]^]^^^^FLAT

COMMON variables

R.NEW(37) : 5.00]0.04

CUST.CONDITION : 2

0898 IF C.DRAW.CCY EQ LCCY THEN ;*CI_10046309 - S

COMMON variables

TELLER.CHARGE :

BIAT]18^COM]TAX^52052]USD172050001^0.20]0.04^^^962]465^961]464^NO^

^^^]18^]PLUS^^^USD^18^^^^USD]USD^]1^]^^^^^^^^^^^^^^^^^^^^^^^^10^]^]^]^^^^FLAT

COMMON variables

R.NEW(37) : 5.00]0.04

CUST.CONDITION : 2

 jBASE debugger->S

0899 IF (C.CUST.AMT<1,S.LOOP> NE '' AND C.CUST.AMT<1,S.LOOP> NE

 TELLER.CHARGE<4,S.LOOP> AND C.CUST.AMT<1,S.LOOP> NE

GENERAL.CHARGE<4,S.LOOP>) THEN ;* If the charge amount in R.NEW

COMMON variables

 

 jBASE debugger->V S.LOOP

S.LOOP : 1

 jBASE debugger->V C.CUST.AMT<1,1>

C.CUST.AMT<1,1> : 5.00

 jBASE debugger->V TELLER.CHARGE<4,1>

COMMON variables

TELLER.CHARGE<4,1> : 4 bytes (out of 143) : 0.20

Page 7: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 7/21

 jBASE debugger->V GENERAL.CHARGE<4,1>

GENERAL.CHARGE<4,1> : 5 bytes (out of 144) : 10.00

 jBASE debugger->S

0900 TELLER.CHARGE<4,S.LOOP> = C.CUST.AMT<1,S.LOOP> ;* is

different from TT.GROUP.CONDITION charge and general charges

COMMON variables

TELLER.CHARGE :

BIAT]18^COM]TAX^52052]USD172050001^0.20]0.04^^^962]465^961]464^NO^

^^^]18^]PLUS^^^USD^18^^^^USD]USD^]1^]^^^^^^^^^^^^^^^^^^^

^^^^^10^]^]^]^^^^FLAT

 jBASE debugger->V TELLER.CHARGE<4,1>

COMMON variables

TELLER.CHARGE<4,1> : 4 bytes (out of 143) : 5.00

CALL TT.GENERAL.LIBRARY(CALL.CLEAR.FIELDS)

R.NEW(37) :

 jBASE debugger->

 jBASE debugger->S

0811 R.NEW(TT.TE.CHRG.AMT.LOCAL)<1,IDX> =

TELLER.CHARGE<4,IDX> ;* Local

COMMON variables

TELLER.CHARGE :

BIAT]18^COM]TAX^52052]USD172050001^5.00]0.04^^^962]465^961]46

4^NO^^^^]18^]PLUS^^^USD^18^^^^USD]USD^]1^]^^^^^^^^^^^^^

^^^^^^^^^^^10^]^]^]^^^^FLAT

COMMON variables

R.NEW(37) : 5.00

CUST.CONDITION : 2

 jBASE debugger->V TELLER.CHARGE<4,2>

COMMON variables

Page 8: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 8/21

TELLER.CHARGE<4,2> : 4 bytes (out of 143) : 0.04

 jBASE debugger->S

0812 R.NEW(TT.TE.CHRG.AMT.FCCY)<1,IDX> =

TELLER.CHARGE<5,IDX> ;* Foreign

COMMON variables

TELLER.CHARGE :

BIAT]18^COM]TAX^52052]USD172050001^5.00]0.04^^^962]465^961]46

4^NO^^^^]18^]PLUS^^^USD^18^^^^USD]USD^]1^]^^^^^^^^^^^^^

^^^^^^^^^^^10^]^]^]^^^^FLAT

COMMON variables

R.NEW(37) : 5.00]0.04

CUST.CONDITION : 2

Screen shots:

1. Take client’s environment with the updates R09_TT_Foundation_6 and

R09_TT_Contract_14 and installed.

2. Have the TELLER.TRANSACTION Record as shown below.

Page 9: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 9/21

Page 10: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 10/21

 

3. Have the FT.COMMISSION.TYPE Record as shown below.

Page 11: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 11/21

4. Have the STANDARD SELECTION record for teller as shown below

Page 12: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 12/21

5. Have the TAX record as shown below.

Page 13: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 13/21

6. Have the TT.GROUP.CONDITION record as shown below.

Page 14: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 14/21

7. Have the APPL.GEN.CONDITION record as shown below.

Page 15: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 15/21

8. Now input a teller transaction with customer account category equals to1001, the system recalculates the CHRG.AMT.LOCAL and its corresponding

 TAX amount.

I) Teller record after entering TRANSACTION.CODE and AMOUNT.LOCAL.1

Page 16: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 16/21

Page 17: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 17/21

2.) Now teller record after entering the ACCOUNT.2 field with customer categoryequals to 1001.

Page 18: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 18/21

Page 19: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 19/21

9. Now change the value in the field CHRG.AMT.LOCAL, the system now does

not change the TAX amount instead it retains the same tax amount which

was calculated previously.

Page 20: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 20/21

Analysis:

On checking with the given problem it was found that the tax amount was

not recalculated accordingly with the CHARGE.AMT.LOCAL field i.e. whenever the

CHARGE.AMT.LOCAL is inputted manually by the user. This problem happens only

when the customer account involved in the teller transaction falls under any

 TT.GROUP.CONDITION.

Code Analysis:

Routine flow:

 TT.CHECK.FIELDS TT.PERFORM.DEF.PROCESSING CALCULATE.CHARGE

TT.PERFORM.DEF.PROCESSING

Page 21: Steps for Recreation

8/3/2019 Steps for Recreation

http://slidepdf.com/reader/full/steps-for-recreation 21/21

In the routine TT.PERFORM.DEF.PROCESSING as the below highlighted conditions

gets satisfied the value that is inputted by manually in CHARGE.AMT.LOCAL is alone

is assigned with the TELLER.CHARGE array which holds the charge related details

results in change only in CHARGE.AMT.LOCAL.

SET.CUST.CONDITION:

CHG.COUN = DCOUNT(TELLER.CHARGE,VM)

IF CONTRACT.GRP THEN ;* If TT.GROUP.CONDITION defined then

SAVE.TELLER.CHARGE = TELLER.CHARGE ;*CI_10046309 - S

CALL CALCULATE.CHARGE(C.CUST,C.AMT,C.CCY,C.MKT,C.RATE,C.CROSS.CCY,C.DRAW.CCY,

TELLER.CHARGE,CUST.CONDITION,"","")

GENERAL.CHARGE = TELLER.CHARGE

TELLER.CHARGE = SAVE.TELLER.CHARGE

FOR S.LOOP = 1 TO CHG.COUN

GOSUB PROCESS.TT.GROUP.COND

NEXT S.LOOP

CALL CALCULATE.CHARGE(C.CUST,C.AMT,C.CCY,C.MKT,C.RATE,C.CROSS.CCY,C.DRAW.CCY,

TELLER.CHARGE,CUST.CONDITION,"","")

FOR S.LOOP = 1 TO CHG.COUNIF C.DRAW.CCY EQ LCCY THEN

IF (C.CUST.AMT<1,S.LOOP> NE '' AND C.CUST.AMT<1,S.LOOP> NE

TELLER.CHARGE<4,S.LOOP> AND C.CUST.AMT<1,S.LOOP> NE GENERAL.CHARGE<4,S.LOOP>) THEN

TELLER.CHARGE<4,S.LOOP> = C.CUST.AMT<1,S.LOOP>

END

END ELSE

IF (C.CUST.AMT<1,S.LOOP> NE '' AND C.CUST.AMT<1,S.LOOP> NE

TELLER.CHARGE<5,S.LOOP> AND C.CUST.AMT<1,S.LOOP> NE GENERAL.CHARGE<5,S.LOOP>) THEN

TELLER.CHARGE<4,S.LOOP> = R.NEW(TT.TE.CHRG.AMT.LOCAL)<1,S.LOOP>

TELLER.CHARGE<5,S.LOOP> = C.CUST.AMT<1,S.LOOP>

END

END ;*CI_10046309 - E

NEXT S.LOOP

But the tax amount is not recalculated based on new CHARGE.AMT.LOCAL

inputted .This is due to the TT.GROUP.CONDITION setup. If TT.GROUP.CONDITION

defined for the customer account involved then CALCUALTE.CHARGE is called with

CUST.CONDTION with the TT.GROUP.CONDITION definition not with the amount

entered. Hence calculate charge will always returns tax amount based on

 TT.GROUP.CONDITION not based on the entered value in CHARGE.AMT.LOCAL

 jBASE debugger->V CUST.CONDITION

CUST.CONDITION : 2

0896 CALLCALCULATE.CHARGE(C.CUST,C.AMT,C.CCY,C.MKT,C.RATE,C.CROSS.CCY,C.DRAW.CC

  Y,TELLER.CHARGE,CUST.CONDITION,"","") ;* Process for TT.GROUP.CONDITION