L3 JAVA
T24 Extensibility in Java
© 2010 Capgemini - All rights reserved 1
Why do we need
© 2010 Capgemini - All rights reserved 2
Java Extensibility can be used for
© 2010 Capgemini - All rights reserved 3
Pre-requisite
© 2010 Capgemini - All rights reserved 4
T24 Api and Hooks
© 2010 Capgemini - All rights reserved 5
T24 – T types
© 2010 Capgemini - All rights reserved 6
T24 – T Type -> TField
© 2010 Capgemini - All rights reserved 7
T24 – T type Structure
© 2010 Capgemini - All rights reserved 8
T24 – T Type -> Tvalidationresponse
© 2010 Capgemini - All rights reserved 9
T24 – Data Access
© 2010 Capgemini - All rights reserved 10
T Type ->T24 Context
© 2010 Capgemini - All rights reserved 11
Packages in L3 API
© 2010 Capgemini - All rights reserved 12
Dev Studio Setup
© 2010 Capgemini - All rights reserved 13
Prerequisites for L3 JAVA
• First we need to setup Design Studio in C:\dev\R19\DS.R19.1
• Create a Workspace in C:\dev
• Open Design Studio and create a Normal JAVA Project.
• Import the external jars from G:\Documents\t24lib\t24lib.
• Add an APPLIBS library files to the project by right click on project go to build
path -> configure build path -> add library -> user library -> APPLIBS.
© 2010 Capgemini - All rights reserved 14
Create Java Project
© 2010 Capgemini - All rights reserved 15
Create java Project
© 2010 Capgemini - All rights reserved 16
Import T24 Libraries
© 2010 Capgemini - All rights reserved 17
Import T24 Libraries
© 2010 Capgemini - All rights reserved 18
Import T24 Libraries
© 2010 Capgemini - All rights reserved 19
Import T24 Libraries
© 2010 Capgemini - All rights reserved 20
Import T24 Libraries
© 2010 Capgemini - All rights reserved 21
Creating Package
© 2010 Capgemini - All rights reserved 22
Creating Package
© 2010 Capgemini - All rights reserved 23
Creating Class
© 2010 Capgemini - All rights reserved 24
Objectives
By the end of this you will able to create
• Version Routines
• Enquiry Routines
• Multi-threaded routines
• No-File Enquires
• Local Reference fields
© 2010 Capgemini - All rights reserved 25
Version Routines
• To create a version routine we need to extend a class called RecordLifeCycle in
com.temenos.t24.api.hook.system packaged in EB.TemplateHook.jar
• This RecordLifeCycle class provides a dedicated method to a Particular Version
Routine.
© 2010 Capgemini - All rights reserved 26
Input Routine
When it gets invoked?
• Gets invoked when committing a transaction
• All validations might have been completed
What is the use of Input Routine?
• Update local files
• Provide additional validation at input stage
• Provide override processing
Mandatory Prerequisites
• Entry in EB.API
Method Used for version Routine
The method used for this routine is
• public TValidationResponse validateRecord(String application, String recordId,
TStructure record, TStructure lastLiveRecord)
Parameters:
• application - The name of the application to which the record belongs.
• recordId - The id of the record being processed.
• record - The record being processed - the implementaion must specify the
record type.
• lastLiveRecord - The last live version of the record being processed - the
implementaion must specify the record type.
Returns:
• TValidationResponse - validationResponse - errors and enrichments will be
processed at this stage.
© 2010 Capgemini - All rights reserved 28
Workshop – Input Routine
Example 1: -
Validate whether the Debit Currency and Credit Currency are same or not
In this Scenario We will compare the Both Debit and Credit Currency
If not Equal then we will throw an error message
© 2010 Capgemini - All rights reserved 29
Code for Input Routine
EB.API configuration for Input Routine
Version for Input Routine
Execution of Input Routine
.
Workshop – Input Routine
Example 2: -
Check weather the category of the Account is Savings (6001) or not. If not throw an
error that Category-Mismatch.
© 2010 Capgemini - All rights reserved 34
Code for Input Routine
© 2010 Capgemini - All rights reserved 35
EB.API configuration for Input Routine
© 2010 Capgemini - All rights reserved 36
Execution of Input Routine
© 2010 Capgemini - All rights reserved 37
Before Authorize Routine
Why Before Authorize Routine?
• To Perform Any operation after Commit
• To perform Operation before Authorise.
When it will trigger?
• During authorization of an INAU record.
• Called before Version Auth routine is executed.
Method used for Before Authorization Routine
The method used for this is
• public void updateCoreRecord(String application, String recordId, TStructure
record, TStructure lastLiveRecord, List versionNames, TBoolean isZeroAuth, List
recordIds, List records)
Parameters:
• application - The name of the application to which the record belongs.
• recordId - The id of the record being processed.
• record - The record being processed - the implementaion must specify the
record type.
• lastLiveRecord - The last live version of the record being processed - the
implementaion must specify the record type.
• versionNames - The Version names to be processed.
• isZeroAuth - Returns true if it is Zero auth otherwise false.
• recordIds - The id's of the record to be processed.
• records - The records to be processed.
Returns:
• nothing
© 2010 Capgemini - All rights reserved 39
Workshop for BeforeAuthRtn
To check whether the customer is precious or not by Mnemonic
VERSION
EB.API
Scenario 2
Check if the Customer who is Performing Transaction is Individual (means sector
=1001) or not. If not throw an error that Please select an individual Customer.
© 2010 Capgemini - All rights reserved 48
Code For Before Auth Routine
© 2010 Capgemini - All rights reserved 49
© 2010 Capgemini - All rights reserved 50
Result
The Customer Is not individual
© 2010 Capgemini - All rights reserved 51
Validation Routine
Why Validation Routine and When it will Trigger?
• To perform Field level validations.
• To perform validation as soon as the data entered.
• It will trigger when we click on validate or commit.
Mandatory Prerequisites
• Entry in EB.API
© 2010 Capgemini - All rights reserved 52
Method used for Validation Routine
Method used for this is
• public TValidationResponse validateField(String application, String recordId,
String fieldData, TStructure record)
Parameters:
• application - The name of the application to which the record belongs.
• recordId - The id of the record being processed.
• fieldData - This is the latest value inputted in the field to which this interface has
been attached to.
• record - The record being processed.
Returns:
• TValidationResponse - validationResponse - errors and enrichments will be
processed at this stage.
© 2010 Capgemini - All rights reserved 53
Workshop – Validation Routine
Example 1:-
Validate the Transaction type field.
If Transaction Type is AC, then ask user to enter the transaction type other than AC.
Means This Version is not applicable for Account to Account transfer.
Code for Validation Routine
EB.API configuration for Validation Routine
Version for Validation Routine
Execution of Validation Routine
Scenario
Example 2: -
Create a version in FT with mandatory fields if the debit amount is greater than
working balance then display error Message.
Code for scenario
© 2010 Capgemini - All rights reserved 60
Result
© 2010 Capgemini - All rights reserved 61
Check-Record Routine
When it is invoked?
• 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
What is the use?
• Check record routine is used to alter field attributes or to default values into fields
• Attached to the field CHECK.REC.RTN of the version
Mandatory Prerequisites?
• Check record routines need to have an entry in EB.API
© 2010 Capgemini - All rights reserved 62
Method used for Check-Record Routine
The Method used for this is
• public void defaultFieldValues(String application, String recordId, TStructure
record, TStructure lastLiveRecord)
Parameters:
• application - The name of the application to which the record belongs.
• recordId - The id of the record being processed.
• record - The record being processed - the implementaion must specify the record
type.
• lastLiveRecord - The last live version of the record being processed - the
implementaion must specify the record type.
Returns:
• nothing
© 2010 Capgemini - All rights reserved 63
Workshop – Check Record Routine
Example 1:
Create a check record routine for account application, check the currency matched
or not .
i) If matched view the existing record.
ii) If not matched, throw error message “Currency Mismatched"
Code for Check Record Routine
EB.API configuration for Check Record Routine
Version for Check Record Routine
Execution of Check Record Routine
Workshop – Check Record Routine
Example 2:
Create a check record routine for Customer application,
If the New customer record - Account officer field is “equal to corporate banking
account -2002”it should display the number of the customer records with 2002
category.
Code for Check record routine
EB.API Configuration
Version for Check Record Routine
Check Record Routine-Set Value
Why it is used?
• Check record routine is used to alter field attributes or to default values into fields
When it gets invoked?
• 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
© 2010 Capgemini - All rights reserved 73
Workshop – Check Record Routine-Set Value
Create an version which will display the Category, when the Check routine is called
set the category value eg:1303.
Code for Check Record Routine-Set Value
EB.API configuration for Check Record Routine-Set Value
Version for Check Record Routine-Set Value
Execution of Check Record Routine-Set Value
ID ROUTINE
Why ID Routine?
• To manipulate the id of the record.
When it is called?
• As soon as id of the record is entered
• Before fetching the Record
Where do we attach it?
• Id routine field in the version Application
• Prefix by ‘@’ symbol
Method used for ID Routine
The method used for this is
• public String checkId(String idNew)
Parameters:
• idNew - The new id of the record being processed.
Returns:
• String - the validated @ID.
© 2010 Capgemini - All rights reserved 80
Traversal of ID Routine:
Read only or predefined value of record is generated at the trigger of every account
creation(new Record).
The predefined record is accompanied with the Temenos profile.
Validate ID field.
Change the ID of an application with the combination of ‘TEMENOS’+App ID=ID
CODE FOR ID ROUTINE :
EB.API configuration for ID Routine
Version Design for ID Routine
EXCUTION OF ID ROUTINE
Enquiry Routine
• To create a version routine we need to extend a class called Enquiry in
com.temenos.t24.api.hook.system packaged in EB.EnquiryHook.jar.
• This RecordLifeCycle class provides a dedicated method to a Particular Version
Routine.
© 2010 Capgemini - All rights reserved 87
ENQUIRY BUILD ROUTINE
Why Build Routine?
• To manipulate “Selection Criteria Box”
• Used Before fetching the ID
When it gets invoked?
• Invoked after fixed selection
• Before the dynamic conditions gets executed
Where we attach Build Routine?
• BuildRoutine.1 field of enquiry
Method used for Build Routine
The method used for this is
• public List<FilterCriteria> setFilterCriteria(String enquiryName, List filterCriteria)
Parameters:
• enquiryName - Id of the enquiry. For default enquiries (% enquiries) this will be
'{applicationId} Default List'. (In T24 terms, this is ENQ.DATA<1>)
• filterCriteria - The list of FilterCriteria as entered by the user. (In T24 terms, this is
ENQ.DATA<2 ... 4>)
Returns:
• List<FilterCriteria> - A new list of filter criteria to be applied during record selection.
© 2010 Capgemini - All rights reserved 89
TRAVERSING Build Routine:
• Before the selection of the id the Build routine is triggered ,
• Based on the CATEGORY of the user ,
• Output is launched on satisfying the condition.
Scenario
Example : - 1
Create an enquiry that will display Customer Id, the Account Id and the respective
working balance after accepting the category from the user.
For category 1001 - Balance should be in the range 0 and 49999
For category 6001 - Balance should be in the range 50000 and 100000
For categories greater than 7000 - Balance should be in the range 100000 and
500000
© 2010 Capgemini - All rights reserved 91
CODE FOR BUILD ROUTINE
EB.API configuration for Build Routine
Enquiry Design for Build Routine
Enquiry Design of Build Routine
EXECUTION of Build Routine
Scenario
Example : - 2
Create an enquiry that will display the Debit Account Id and the respective Debit
amount transferred after accepting the debit currency from the user.
For ‘USD’ the amount transferred is greater than 100
For ‘GBP’ the amount transferred is greater than 150
For currencies other than that amount transferred should be greater than 200
© 2010 Capgemini - All rights reserved 97
Code
© 2010 Capgemini - All rights reserved 98
EB.API
© 2010 Capgemini - All rights reserved 99
Result
© 2010 Capgemini - All rights reserved 100
Result
© 2010 Capgemini - All rights reserved 101
Result
© 2010 Capgemini - All rights reserved 102
Conversion Routine
Why Conversion Routine?
• Format data prior to display.
• Read another file and display value from it
When it gets invoked?
• Invoked after fetching required data
• Before Displaying data in respective fields
Where do we attach?
• Attached to the conversion field
• Prefixed with @ followed by space.
© 2010 Capgemini - All rights reserved 103
Method used for Conversion Routine
The method used for this is
• public String setValue(String value, String currentId, TStructure currentRecord,
List filterCriteria)
Parameters:
• value - The initial value of the field. The new value should be returned. (In T24
terms, this is O.DATA)
• currentId - The ID of the current record being processed. (In T24 terms, this is
the 'ID' common variable)
• currentRecord - The full record currently being processed by the enquiry. (In T24
terms, this is R.RECORD)
• filterCriteria - The list of selection criteria entered by the user. (In T24 terms, this
is fields<2 ... 4> from ENQ.SELECTION)
Returns:
• String - The new value to be displayed to the enquiry processing engine, to be
displayed to the user or used in further calculations.
© 2010 Capgemini - All rights reserved 104
Workshop – Conversion Routine
Create an enquiry that will list the Account Numbers, Customer Numbers and their
respective Working Balances. In case the Currency of the Account is in foreign
currency, they have to be converted to local currency and then displayed
Code for Conversion Routine
EB.API configuration for Conversion Routine
Version for Conversion Routine
Execution of ConversionRoutine
NOFILE ENQUIRY
Why NOFILE Enquiry?
• ENQUIRY system works on a single file which is given in the
FILE.NAME field of ENQUIRY application
• To fetch data available in Multiple files, NOFILE Enquiry is the
option
• Nofile enquiry can be designed to fetch data from any number of
files
Method used for NOFILE Enquiry
The method used is
• public List<String> setIds(List filterCriteria)
Parameters:
• filterCriteria - The list of selection criteria entered by the user. (In T24 terms, this
is comes from D.FIELDS, D.RANGE.AND.VALUE and
D.LOGICAL.OPERANDS)
Returns:
• List<String> - The list of recordIds.
© 2010 Capgemini - All rights reserved 111
Workshop –No file Enquiry
Example :
Create an ENQUIRY to display the consolidated balance for a CUSTOMER
No file Enquiry Routine
EB.API Configuration
Standard Selection
ENQUIRY
RESULT
Scenario
Example :- 2
Create a Enquiry which displays Customer Number, Account Number, Customer
Mnemonic, Working balance
© 2010 Capgemini - All rights reserved 118
Code for No-File Routine
© 2010 Capgemini - All rights reserved 119
EB.API
© 2010 Capgemini - All rights reserved 120
STANDARD.SELECTION
© 2010 Capgemini - All rights reserved 121
Enquiry
© 2010 Capgemini - All rights reserved 122
result
© 2010 Capgemini - All rights reserved 123
What is T24 context?
• T24Context is the way/approach to establish a connection between Java
application and T24 system.
•In simple , displaying the output in DS console itself as what we are showing in
browser/classic mode.
Code for T24 context
Output will be displayed in console as below
Multi-threaded Routine
• To create a version routine we need to extend a class called serviceLifeCycle in
com.temenos.t24.api.hook.system packaged in EB.ServiceHook.jar
• This ServiceLifeCycle class provides a dedicated method to a Particular Version
Routine.
© 2010 Capgemini - All rights reserved 127
Workshop – Multithreaded Routine
Create a multithreaded routine that updates the SHORT.NAME of all the CUSTOMER
records as TEST + existing MNEMONIC
EB.API
PGM.FILE & BATCH
TSA.SERVICE
RESULTS:
Local Reference Fields
Why Local Reference Fields?
• Not all fields required by a bank are available in a T24 application.
• Local Reference Field are User defined & totally customizable.
• Once created, can be reused in various applications.
© 2010 Capgemini - All rights reserved 134
Workshop For Local Reference Fields
Check that Local Reference Field ‘HOBBIES’ is having ‘DANCE’ or not. If DANCE
Then throw an error that Dance class already exists
© 2010 Capgemini - All rights reserved 135
Code for Local Reference Fields
© 2010 Capgemini - All rights reserved 136
EB.API
© 2010 Capgemini - All rights reserved 137
Result
© 2010 Capgemini - All rights reserved 138
Results
If not Dancing
© 2010 Capgemini - All rights reserved 139
Results
Record will get commit
© 2010 Capgemini - All rights reserved 140
Template Programming
Scenario-1
We can create a new application using EB.TABLE.DEFINITION.
OVERRIDE must be raised if the phone / email is used by existing customer
TABLE.NAME CUSTOMER.DEMO.EX
PRODUCT ST
FILE.TYPE H
CLASSIFICATION CUS
Application: CUSTOMER.DEMO.EX
Field Name Data Type Remarks
Name A
Phone Raise override if this
PHONE is available in
CUSTOMER
Email Raise override ifthis
EMAIL is available in
CUSTOMER
Generate the API for the local Application creation
Using Design Studio, we can generate the API for the APPLICATION created using
EB.TABLE.DEFINITION
we need a server project –to establish connection with T24
We need a models project –to import the application from T24
Creating the local template using
EB.TABLE.DEFINITION
Create a table using the EB.TABLE.DEFENITION
Create a data tool Project
Creating the server project
File New Project
Add Project Name, tafjHome, InsertDir & libDir
Toggle the project as a TAFJ project
Steps to Import the Local Application
Open the EB_Foundation and the check Local Project is
import
Generate API for NEW Table
Create a New Java Project add the created ST_Customernew.jar
EB.API & Version
Results:
Existing Customer
Displaying the Override as per the programe
Create a check record routine for the local application should display
mail id by default
Add the Check Record routine using EB.TABLE.PROCEDURES
EB.API & PGM.FILE
Results
Session
Scenario :- 1
By Using session variable print the userId of the user who have logged in.
© 2010 Capgemini - All rights reserved 164
Code for session variable
© 2010 Capgemini - All rights reserved 165
EB.API
© 2010 Capgemini - All rights reserved 166
Version
© 2010 Capgemini - All rights reserved 167
Result
© 2010 Capgemini - All rights reserved 168
Session
Scenario :- 2
By Using session variable print the userDispoOfficer of the user who have logged in.
© 2010 Capgemini - All rights reserved 169
Code
© 2010 Capgemini - All rights reserved 170
EB.API
© 2010 Capgemini - All rights reserved 171
Version
© 2010 Capgemini - All rights reserved 172
Result
© 2010 Capgemini - All rights reserved 173