VersionRoutines R4
VersionRoutines R4
Warning: This document, is protected by copyright law and international treaties. No part of this
document may be reproduced or transmitted in any form or by any means, electronic or mechanical,
for any purpose, without the express written permission of TEMENOS Holdings NV Unauthorized
reproduction or distribution of this presentation or any portion of it, may result in severe civil and
criminal penalties, and will be prosecuted to the maximum extent possible under applicable law.”
Information in this document is subject to change without notice.
Version Routines
Validation Routine
Input Routine
Authorization Routine
Id Routine
R.OLD(C$SYSDIM)
R.NEW.LAST(C$SYSDIM)
*Version auto new content routine that calculates the total number of
*accounts for a customer and displays it in the field TOTAL.ACCOUNTS
*which is a local reference field
SUBROUTINE V.TRG.AUT.CNT.RTN
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.CUSTOMER
$INSERT I_F.CUSTOMER.ACCOUNT
GOSUB INIT
GOSUB OPENFILES
GOSUB PROCESS
RETURN
INIT:
FN.CUS.ACC = 'F.CUSTOMER.ACCOUNT'
F.CUS.ACC = ''
Y.CUS.ID = ID.NEW
R.CUS.ACC = ''
Y.CUS.ACC.ERR = ''
RETURN
OPENFILES:
CALL OPF(FN.CUS.ACC,F.CUS.ACC)
RETURN
PROCESS:
IF ID.OLD = ‘’ THEN ; * If it is a new customer record
R.NEW(EB.CUS.LOCAL.REF)<1,29> = 0 ; * No calculation is required
END
ELSE
CALL F.READ(FN.CUS.ACC,Y.CUS.ID,R.CUS.ACC,F.CUS.ACC,Y.CUS.ACC.ERR)
IF Y.CUS.ACC.ERR NE ‘’ THEN
R.NEW(EB.CUS.LOCAL.REF)<1,29> = 0
END
ELSE
R.NEW(EB.CUS.LOCAL.REF)<1,29> = DCOUNT(R.CUS.ACC,FM)
END
END
RETURN
END
SUBROUTINE V.TRG.CHECK.ID.RTN
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.ENQUIRY
IF APPLICATION NE 'ENQUIRY' THEN RETURN
IF COMI THEN ;* ID.NEW would not have been set now
IF COMI[1,1] NE '%' AND FIELD(COMI,'-',2)[1,4] NE 'LIST' THEN
COMI = 'TEM.TRG.':COMI
IF LEN(COMI) GT 30 THEN
E = “Temenos Trg restricts ID length to 30 Characters”
CALL ERR
MESSAGE = 'REPEAT'
V$ERROR = 1
END
END
END
RETURN
END
OPERATOR
SUBROUTINE V.TRG.CHECK.REC.RTN
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.CUSTOMER
IF NOT(R.NEW(EB.CUS.INPUTTER)) THEN RETURN ;* Could be a new
* record
IF R.NEW(EB.CUS.RECORD.STATUS) THEN RETURN ;* Could be an
*unauthorized record
THIS.OPERATOR.OK = 0
INPUTTERS = R.NEW(EB.CUS.INPUTTER)
NO.OF.INPUTTERS = DCOUNT(INPUTTERS,@VM)
IF NO.OF.INPUTTERS = 1 THEN
IF FIELD(INPUTTERS,'_',2) = OPERATOR THEN THIS.OPERATOR.OK = 1
END
ELSE
LOOP
REMOVE INPUTTER FROM INPUTTERS SETTING MORE.INPUTTERS
WHILE INPUTTER : MORE.INPUTTERS DO
INPUT.OPERATOR = FIELD(INPUTTER,'_',2)
IF INPUT.OPERATOR EQ OPERATOR THEN
THIS.OPERATOR.OK = 1
INPUTTERS = ''
END
REPEAT
RETURN
END
Example : CUSTOMER,INPUT
APPLICATION : CUSTOMER
PGM.VERSION : ,INPUT
Example
SUBROUTINE V.TRG.AFTER.UNAUTH.RTN
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.FUNDS.TRANSFER
Create a subroutine that will prompt the user for the text
and update the TEXT field in the Customer application.
SUBROUTINE V.TRG.BEFORE.AUTH.RTN
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_F.CUSTOMER
Y.COLUMN = 8 ;* Not of any significance in Desktop
Y.ROW = 22 ;* Not of any significance in Desktop
N1 = '35.1'
T1 = 'A'
INP.MSG = 'Enter text for customer'
CALL INP(INP.MSG,Y.COLUMN,Y.ROW,N1,T1)
IF COMI = '' THEN
CRT "No text entered. Proceeding with other
procesing"
END
ELSE
R.NEW(EB.CUS.TEXT)<1,-1> = COMI
END
END
RETURN
END
VERSION.TYPE