Version Routines
September 2011
Objectives
Why Version Routines
Various Types of Version Routines
Steps to create Version Routines & Error Shots
Why Version Routines?
For Additional Validations During
Generation of ID
Record Level
Field Level
Commit level
Authorization level
For Defaulting Values
Common Variables
[Link]
[Link]
[Link]
[Link]
[Link]
[Link]
Available in I_COMMON
[Link]
Common variable defined in I_COMMON
Dynamic array
Contains the ID of the currently opened record
When record is closed/committed/authorised value is flushed
[Link]
Common variable defined in I_COMMON
Dimensioned array
Contains 500 dynamic arrays
Holds the currently opened record
‘R’ in the variable name stands for ‘Record’
[Link]
Definition in I_COMMON : DIM [Link](C$SYSDIM)
C$SYSDIM = 500
No application in T24 has more than 500 fields
[Link] and [Link]
[Link]
[Link]
Sli
de
[Link]
Defined in I_COMMON
Dynamic array
For unauthorized record - ID of the unauthorized record is held
[Link]
Defined in I_COMMON
Dimensioned array
Consists of 500 dynamic arrays
Holds the currently opened record (If the record is unauthorized)
Definition in I_COMMON
DIM [Link](C$SYSDIM)
[Link] and [Link]
[Link] [Link]
[Link] [Link]
Sli
de
[Link]
Defined in I_COMMON
Dynamic array
For authorized record
Holds the ID of the authorized record
Enables to check if the current record is authorized
[Link]
Defined in I_COMMON
Dimensioned array
Consists of 500 dynamic arrays
Holds the current authorized record (if any)
Holds the actual live record (If it exists)
Definition in I_COMMON
DIM [Link](C$SYSDIM)
[Link] and [Link]
[Link] [Link] [Link]
[Link] [Link] [Link]
Sli
de
[Link], [Link], [Link], [Link], [Link] and [Link]
[Link] [Link] [Link]
[Link] [Link] [Link]
Sli
de
COMI
Global variable
Defined in I_COMMON file
Contains the last entered value in any application/version
Types of Version Routines
Validation Routine
Input Routine
Authorization Routine
Auto Field Routine
Id Routine
After unauth Routine
Before Auth Routine
Validation Routine
Why Validation routine?
When Validation Routine is called?
Where do we Attach the routine?
Mandatory Prerequisites.
How to Create Version Routines – Scenario.
Why validation routine?
To perform Field level validations.
To perform validation as soon as the data entered.
When Validation Routine is called?
In the version to which we attach the routine
When the users comes out of the field for which we have validated
Where do we Attach the routine?
Attached to the specific field of the version.
Field to be validated is specified in [Link]
Routine used to validate is specified in [Link]
Mandatory - Prerequisites
Entry in [Link]
Entry in [Link]
Scenario
Create a version for [Link] with the mandatory fields
Write a Validation Routine to restrict the funds transfer for amount more
than 1000/-.
Write the Validation Routine
[Link] and [Link]
Create the Version
Attaching the routine to the version
Run the Version
Enter the value in Debit Amount field GT 1000
Validation Routine is called only on validation
Set the Attribute
Run the Application
Attribute is set to [Link] as [Link]
Routine called immediately after exit from [Link]
Thus becomes field level Validation
Hot Validate
[Link] Vs [Link]
In browser field level validations are done when field is
[Link]
[Link]
Hot fields can be used to default other field values
Hot validate can be used for validation only
Hot Field Example
Create a Version for [Link] with the required fields
Make [Link] as hot field. On coming out of [Link] the
‘[Link]’ field should be updated as
<CUS>_<Number of Accounts>
Where <CUS> is the first three characters of Customer Mnemonic, followed
by ‘_’ , followed by <Total number of accounts held by the Customer>.
Solution
[Link] and [Link]
Create version
Create version
Run the Version
Hot Field
Run the Version
Scenario
Create a version for the FUNDS TRANSFER application with the following
fields
Transaction Type
Debit Account Number
Debit Currency
Debit Amount
Debit Value Date
Credit Account Number
Credit Currency
Scenario
As soon as the Debit account number is entered, Validation Routine should
check whether it is a savings account otherwise it should throw an error
“DEBIT ACCOUNT IS NOT A SAVINGS ACCOUNT’
Routine
[Link] and [Link]
Version
Version
Output
Workshop 2
Create a version in FT with mandatory fields if the debit amount is greater
than working balance then display error Message.
Input Routines
Why Input routine?
When Input Routine is called?
Where do we Attach the routine?
Mandatory Prerequisites.
How to Create Input Routines – Scenario.
Why Input Routines
Update local files
Provide additional validation at input stage
Provide override processing
When do Input Routines Called
Gets invoked when committing a transaction
All validations might have been completed
Where do we attach Input Routine
Mandatory - Prerequisites
Entry in [Link]
Entry in [Link]
Scenario
Create a Version for Funds Transfer version with the mandatory field. Write
an Input routine to check if the CREDIT CURRENCY and the DEBIT
CURRENCY match. If not an error message, “Credit and Debit currency
mismatch” needs to be displayed when the user commits the record.
Routine
[Link] and [Link]
Create Version
Attach the routine to the version
Commit
Workshop 1
Create a version for [Link] with mandatory fields and the
following validations done in input routine
Account should be savings
Customer should be an individual
Routine
[Link] and [Link]
Version
Attach the routine to the Version
Output
Authorisation Routine
Why Authorisation routine?
When Authorisation Routine is called?
Where do we Attach the routine?
Mandatory Prerequisites.
How to Create Authorisation Routines – Scenario.
Why Authorisation routine
To update local files
To provide additional validation at authorization stage
To provide override processing
When Authorisation Routine is Called
Time of Authorisation of Transaction
After Field level validations.
After standard default processing is done.
Where do we attach the Routine
How to create Authorisation Routines - Scenario
Once a record in a version of the [Link] application is
authorised, details from the transaction need to be extracted and
written on to a flat file named [Link] for interface
purposes.
ID of the record in the flat file needs to be the FT id
Following field’s values need to be stored in the flat file all
delimited with a single space
Credit Account Number
Debit Account Number
Value Date
Debit Amount
Debit Currency
Solution
Creates a Sequential File
File created for updation
Routine
Compile and Catalogue
Create the Version
Commit the Version
Value in [Link]
Workshop 1
Create version for Account application and input a record using the version.
When the record is authorised using the version it has to check for
If the Currency is USD or GBP then Nationality or residence of the customer should
be US
Else it should display an error message “WRONG CURRENCY ENTERED FOR
THIS CUSTOMER”
Solution
Attach the routine
Authorise
Scenario
What happens if no of authorisers is two
First Authorisation will not call authorisation routine
Its called during Second authorisation
Second Authorisation
After First Authorisation
Error Handling
Should include Override-1 field in the Version
Error Handling
Auto Field Routine
Why Auto field routine?
When auto field Routine is called?
Where do we Attach the routine?
Mandatory Prerequisites.
How to Create Auto field Routines – Scenario.
Why AutoField Routine
To perform any special editing to a record.
To modify the record as soon as id is fetched.
When Autofield Routine is called?
After id of the record is input.
After record is fetched
Before it is displayed.
Mandatory - Prerequisites
Entry in [Link]
Entry in [Link]
Where do we Attach the routine
To the field Auto New Content
How to Attach routines- Scenario
Create a Version for Account which mandates the account officer to 1 if the
sector is 1001 or else 2
Routine
Attach the Routine
Run the Version
Auto Field Routine
Create a local reference field for the ACCOUNT application called
[Link]
Create a version for the ACCOUNT application . Fields to be part of the
version are
All mandatory fields of the ACCOUNT application
Local reference field [Link]
The field [Link] will denote the total number of USD accounts
created till date
Sli
de
The Algorithm
Create a local reference field to display the total number of USD
accounts
Create the version for the ACCOUNT application. Attach the local
reference field to your version
Write the subroutine to calculate the total number of USD accounts and
populate the value in the local reference field
Compile the routine and catalog the subroutine
Make an entry in [Link]
Attach the subroutine to the field ‘Aut New Content’ in the VERSION
Application
Sli
de
The subroutine
Sli
de
Workshop
Create an FT version which displays value date to be 1st January of the
current year.
ID Routine
Why ID routine?
When ID Routine is called?
Where do we Attach the routine?
Mandatory Prerequisites.
How to Create ID Routines – Scenario.
Why ID Routine?
To manipulate the id of the record.
When is it called
As soon as id of the record is entered
Before fetching the Record
Where do we attach routine
In the version Application
Id routine field.
Mandatory Prerequisites
Entry in [Link]
Entry in [Link]
How to attach the routine - Scenario
Create a version for the Enquiry application with all the mandatory fields
Create subroutine that will get executed as soon as the id of an enquiry is
entered and prefixes the id of the enquiry with ‘[Link]’ provided it is
not a %Enquiry or an Enquiry-List.
Routine
Create Version and attach routine
Run the version
WorkShop 1
Create a version for acct application when a new Account is created, check
if the 3rd and last digit does not have the same no. if the nos. are same
then increment the no. by one.
Routine
Attach the routine
Output
Check Record Routine
Check record routine is used to alter field attributes or to default values into
fields
It is invoked after the id is entered and validated
Gets invoked when the functions I(Input), D(Delete), A(Authorise) and
R(Reverse) are used
Attached to the field [Link] of the version
Check record routines need to have an entry in [Link]
Sli
de
Check Record Routine
Create a version for the ACCOUNT application with all the mandatory
fields
Using the version ,the user should be allowed to open only account
records that belong to CATEGORY 6001. Write a subroutine to perform
the validation
Sli
de
The Algorithm
Create the version for the ACCOUNT application
Check the id of the version that is opened currently by the user
User should be allowed to open only those accounts that belong to
CATEGORY 6001
Sli
de
Write the subroutine
Sli
de
AfterUnauth routine
Why AfterUnauth routine?
When AfterUnauth Routine is called?
Where do we Attach the routine?
Mandatory Prerequisites.
How to Create AfterUnauth Routines – Scenario
Why AfterUnauth
To perform any operation after Input Routine
After Committing the record.
Without affecting the existing record
When is it called?
While Committing a new/existing record
After the record been written into the $NAU file.
Where do we attach routine
How do we attach- Scenario
When a transaction is committed using a version of the FT application, the
user should be taken to another version in order to input the charges (if
any).
Mandatory Prerequisites
Entry in [Link]
Entry in [Link]
[Link]
Common variable
Defined in I_COMMON
Contains the name of the currently opened version.
Example : CUSTOMER,INPUT
• APPLICATION : CUSTOMER
• [Link] :,INPUT
[Link]
Common variable.
Defined in I_COMMON
Any input that a user wishes to execute from the command line.
Example
• [Link] = C.U:”CUSTOMER I” : C.F
• C.U : Ctrl U Enter -> will go to the command
line
• C.F : Ctrl F Enter(F3) -> Used to obtain a new
id
V$FUNCTION
Common variable.
Defined in I_COMMON
Contains the function that is being currently chosen by the user.
Routine – Reflection Mode
Attach the Routine
Execute the version – Reflection Mode
After Commit – Reflection Mode
Routine – Browser Mode
Attach the Routine
Execute the version
Commit
Workshop
Create a version for Account as soon as a new Account is created a teller
version is called to deposit LCY amount
BeforeAuth Routine
Why BeforeAuth routine?
When BeforeAuth Routine is called?
Where do we Attach the routine?
Mandatory Prerequisites.
How to Create BeforeAuth Routines – Scenario
Why Before Auth
To Perform Any operation after Commit
To perform Operation before Authorise
When BeforeAuth is called?
During authorization of an INAU record.
Called before Version Auth routine is executed.
[Link] – Before [Link].
Changes made to [Link] will reflect in the record written
AUTH routine – After [Link]
Where to Attach the Routine?
BeforeAuth Rtn.1 field of the Version
Mandatory Prerequisites
Entry in [Link]
Entry in [Link]
How to Attach Routines - Scenario
While authorizing a customer record, the user should be given the option to
fill in any special comments with the customer record like “Special
Customer”.
Write a routine that will prompt the user to enter free text while authorizing a
customer record.
Once the text is entered by the user, the data needs to be updated in the
field TEXT in the Customer application.
If no text is entered by the user then the message “No text entered.
Proceeding with other processing” should be displayed and the record
should get authorized.
Routine
Attach the routine
Attach the routine
Workshop
Write a routine for an FT version such that
if the debit Currency is a foreign currency then debit amount is converted to local
currency equivalent
and currency should be changed to local currency.
[Link]/financialservices