Inflow User Guide
Inflow User Guide
Table of Contents
................................................................................................................................................................ 1
Table of Contents .................................................................................................................................... 2
Document History .................................................................................................................................... 5
Inflow – An Introduction ........................................................................................................................ 6
Overview ................................................................................................................................................ 7
Assumptions .......................................................................................................................................... 9
System Requirements.............................................................................................................................. 9
Environment Configuration....................................................................................................................... 9
Pre-Configuration..................................................................................................................................... 9
Types of Inflow Request........................................................................................................................... 9
Inflow with PW.................................................................................................................................... 10
Define number of PW.ACTIVITY ..................................................................................................... 10
Define PWD (Process Workflow Definition) on how to execute the request ...................................... 11
Create Inflow definition using Inflow Designer ................................................................................. 12
Supported Inflow Scenarios for Inflow with PW ................................................................................ 12
Single request ................................................................................................................................. 12
Bulk request ................................................................................................................................... 12
Composite request with related application calls ............................................................................. 16
Composite request with related application calls - intertwined.......................................................... 16
Loop ............................................................................................................................................... 16
Conditional request (branching) ...................................................................................................... 17
Sequence Repair in Inflow .............................................................................................................. 18
Full Sequence Repair ..................................................................................................................... 18
Parital Sequence Repair ................................................................................................................. 20
Inflow without PW ............................................................................................................................... 21
Generic OFS ...................................................................................................................................... 21
Inflow Designer ...................................................................................................................................... 21
Creating Inflow Designer Project:........................................................................................................ 22
Designing Inflow with PW ................................................................................................................... 24
Publishing Inflows to T24 .................................................................................................................... 29
Designing Inflow without PW .............................................................................................................. 30
Publishing Inflows to T24 .................................................................................................................... 33
Generic OFS Request ........................................................................................................................ 34
Deleting Inflow Records in T24 using Inflow Designer ......................................................................... 35
Deleting Inflows using Utility................................................................................................................... 41
Packaging and Deployment of inflows .................................................................................................... 44
2 Satish Murali/Technology
Inflow User Guide
3 Satish Murali/Technology
Inflow User Guide
4 Satish Murali/Technology
Inflow User Guide
Document History
Comments: Added contents for Bulk Request, Conditional Branching and Sequence Repair in Inflow
5 Satish Murali/Technology
Inflow User Guide
Inflow – An Introduction
Inflow comes as a final brick completing the T24 Integration framework and allows inward messages sent
to T24, allowing high throughput for inward messages, implementation of business transactions, allow
enrichment of incoming data with elements already known to T24 or with elements belonging to the same
inward data set.
Inflow processing will allow a clear separation between the messages (data change requests) being
received and the actual processes that are triggered in T24 by this incoming data.
Inflow will also allow the execution of stateless workflows inside T24 managing a sequence of
interdependent calls in order to complete a set of business operations in a transactional manner.
Inward messages will be accepted (two-phase commit) in a staging area (queue or table).
The definition of the processing steps, sequence of operations, rules of enrichment will be flexible and
codeless, based only on configuration.
A designer will be provided in order to help build these definitions and manage the Inflow configuration.
Example
• Originator sends one composite message to T24 inflow queue using 2PC.
• Inflow workflow process will process a message by calling multiple operations and enrichments in
T24
• Originator sending a known business message to T24. ESB implementation is simpler.
• Due to only one round trip between ESB and T24, overall performance of interface will be higher.
Business
Route Transform Inflow Outflow
transaction
6 Satish Murali/Technology
Inflow User Guide
Overview
A new project as T24 Inflow Designer Project is been added under the Integration Studio plugin which is
used to fetch the schemas from t24 to construct the XML request for the Inflow runtime to process. Under
Inflow Designer section the detailed explanation on how to create an inflow design is been discussed.
Inflow Runtime:
The above diagram depicts the different components involved in the typical message flow of the
inflow request. The request can either be send from an ESB (currently IIB is supported) or directly
7 Satish Murali/Technology
Inflow User Guide
inserted to JMS queue (Non-ESB). Default queue to which inflow MDB listens is queue/inflow which
is a JMS queue configured in ejb-jar.xml. Refer configuration Files section to know more details about
the configurations.
Inflow_EE.ear has the following components:
Inflow _EJB.jar – This module is responsible for actual transaction happening in T24
Inflow _MDB.jar – This module is responsible for inserting messages into the Database in case of
Non-ESB solution.
Inflow_REST.war – This module is responsible for inserting message into the Database and fetch
the required schema for runtime validation of the request message from the ESB (IIB).
Typical message flow through inflow runtime (according to the Figure 3) follows the below step:
1. The request XML Message is either inserted into the inflow queue (Non-ESB solution) or it is
send to Inflow REST API from an ESB (IIB).
2. In case of Non-ESB solution steps 2a and 2b comes into place where InflowMDB listens to the
JMS queue and transforms the XML to OFS and inserts into the database table respectively. In
case of an ESB solution the process of transforming the XML message to OFS and inserting into
the Database table is done by the Inflow REST API.
3. Listener EJB and Failure Recovery EJB are two timer EJB’s that are responsible for polling the
Inflow Database table for the inflow id. The former EJB picks the list of record id’s (inflow id’s)
from the staging table. The later EJB comes into picture whenever there is a failure and is
responsible for moving the failed records from Failure table to staging table
4. The picked inflow id list from the Listener EJB is sent to Dispatcher EJB one by one based on the
Dispatcher count in parallel as in multithreading.
5. Dispatcher EJB fetches the data for the received inflow id from the listener.
6. After receiving the data for the inflow id it sends the input request to the T24 API by starting the
global Transaction (T1)
7. On receiving the request the corresponding T24 API starts another transaction (T2) and send
the request to OFS Bulk Manager (OBM).
8. OBM process the request and sends a response back to the T24 API where the API ends the
transaction (T2).
9. Same response from the OBM is sent back to the Dispatcher EJB from the T24 API which waits
for the transaction (T1) to end
10. Dispatcher updates the data to the corresponding DB table (Success/failure) based on the
response received from the T24 API and ends the Transaction (T1). If the response is success
the transaction is committed, record is moved from staging table to success table and if it’s a
8 Satish Murali/Technology
Inflow User Guide
failure the transaction is rolled back, a new transaction is begun to move the record to failure
table. Once the record is committed in the failure table this transaction ends.
Assumptions
This document describes the concepts that require the basic knowledge of Eclipse and application server.
System Requirements
T24 – R19 with the below products for inflow to work:
1. PW for inflow designed using process definition
Environment Configuration
Start the database and the application server when using TAFJ. Also ensure axis2.war with landscape
service, flow service and inflow service is up and running.
Pre-Configuration
To work with inflow with a Process Definition need to be defined using PW module of T24 with the below
limitations:
1. Zero authoriser versions to be used
Inflow with PW
9 Satish Murali/Technology
Inflow User Guide
Inflow without PW
Generic OFS
The samples for all types of requests is been attached in the Inflow Designer section for reference.
Inflow with PW
In this type of request we need to define process workflow (PW) and then use that to accomplish the
processing of the request. Following configurations needed to be done in order to send an inflow request
of this type. Consider the example of create a new customer and an account for that customer
1. Define number of PW.ACTIVITY
2. Define PWD (Process Workflow Definition) on how to execute the request
3. Create Inflow definition using Inflow Designer
Note: For all PW related configurations kindly refer process workflow user guide. Only a sample is shown
in the below section with brief overview.
10 Satish Murali/Technology
Inflow User Guide
The target for the activity changes according to scenario. As we create a new customer we provide the
function “I F3”. Since inflow supports versions we create the customer with a comma version. In the
account activity we use the same function as customer and we provide a mapping that makes sure that
the account created is mapped to that new customer that has been created before.
11 Satish Murali/Technology
Inflow User Guide
Single request
An inflow request container holds a single inflow request with a single T24 application or version
concerned. This basic request is ensuring that inflow will be covering the area currently dealt with via the
single requests via the outbound adapter.
The response expected is:
1. Technical acknowledgement as soon as the request is accepted in the inflow staging.
2. Business (T24) response via an integration event, which can be defined at the end of the inflow
process.
E.g. create new security.
Bulk request
An inflow request contains a set of identical single inflow requests each with a single (and same) T24
application or version concerned.
This mirrors the BatchOFS or BatchOFML area covered with via the outbound adapter
12 Satish Murali/Technology
Inflow User Guide
1. Technical acknowledgement as soon as the request is accepted in the inflow staging. This
response will signal the successful load of the inflow container into staging. As specified above,
the response will also set, in case of errors an error status per individual request. This status
may be:
a. Could have been successfully loaded. Note that these requests are actually committed if
and only if the container is successful. In case of errors the container is aborted and
rolled back.
b. Problem when loading
c. Not processed (the container load has been aborted before this individual request has
been reached)
2. Business (T24) response via an integration event, which can be defined at the end of the inflow
process for each of the inflow individual requests.
E.g. load prices, we have containers of e.g. 1000 prices. All are requests independent and concern a single and same
application.
Inflow receives multiple requests in a single inflow container, where each request is executed and
committed or rolled backed individually. Bulk Inflow is a type of inflow request in which all the requests in
a single inflow container are processed in one transaction rather than separate transactions.
Each bulk inflow request is indicated with a tag “bulkIndicator” with the value “yes” in the container section
of the bulk inflow request.
<container:bulkIndicator>yes</container:bulkIndicator>
Each bulk inflow request has a separate message id indicated in the containerCustomCommon with the
name “bulkMessageId”
<container:containerCustomCommon
name="bulkMessageId"><MessageId></container:containerCustomCommon>
In the case of Bulk Inflow, all the individual requests contained in a single inflow container is processed as
one request (i.e) one transaction.
Success/ Failure of the transaction depends on the Success/Failure of all the individual requests in that
particular transaction
The request gets processed/succeeded only if all the individual requests within the inflow container gets
processed/succeeded. If any of the request within the inflow container fails, the complete request gets
failed.
Note:
Setting the attribute BATCH.OFS in OFS.SOURCE in the case of Bulk Inflow is not allowed.
Bulk Inflow support is not provided for AA request.
13 Satish Murali/Technology
Inflow User Guide
<container:containerTimestamp></container:containerTimestamp>
<container:containerDataSource></container:containerDataSource>
<container:bulkIndicator>yes</container:bulkIndicator>
<container:tenantId></container:tenantId>
<container:inflowRequest>
<p:updateAccountList>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>desTest1</p1:messageId>
<p1:timestamp></p1:timestamp>
<p1:transactionMode></p1:transactionMode>
<p1:replace></p1:replace>
<p1:replaceFieldIndicator></p1:replaceFieldIndicator>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
</p:requestCommonDetails>
<p:receiveaccountlist_ral id="200100" index="">
<p:customerId>123121</p:customerId>
<p:bankCode>12111</p:bankCode>
<p:subStatus>AWAITINGUSERACTION</p:subStatus>
</p:receiveaccountlist_ral>
</p:updateAccountList>
<p:updateAccountList>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>desTest2</p1:messageId>
<p1:timestamp></p1:timestamp>
<p1:transactionMode></p1:transactionMode>
<p1:replace></p1:replace>
<p1:replaceFieldIndicator></p1:replaceFieldIndicator>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
14 Satish Murali/Technology
Inflow User Guide
</p:requestCommonDetails>
<p:receiveaccountlist_ral id="200100" index="">
<p:customerId>123121</p:customerId>
<p:bankCode>12111</p:bankCode>
<p:subStatus>AWAITINGUSERACTION</p:subStatus>
</p:receiveaccountlist_ral>
</p:updateAccountList>
<p:updateAccountList>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>desTest3</p1:messageId>
<p1:timestamp></p1:timestamp>
<p1:transactionMode></p1:transactionMode>
<p1:replace></p1:replace>
<p1:replaceFieldIndicator></p1:replaceFieldIndicator>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
</p:requestCommonDetails>
<p:receiveaccountlist_ral id="200100" index="">
<p:customerId>123121</p:customerId>
<p:bankCode>12111</p:bankCode>
<p:subStatus>AWAITINGUSERACTION</p:subStatus>
</p:receiveaccountlist_ral>
</p:updateAccountList>
</container:inflowRequest>
<container:containerCustomCommon
name="bulkMessageId">desTest1</container:containerCustomCommon>
</container:inflowContainer>
Sample Output:
15 Satish Murali/Technology
Inflow User Guide
Loop
An inflow is used to perform a set or calls to one or several T24 applications or versions. The inflow is
guided by a condition e.g. do .. .while or for … do.
e.g. spread a funds transfer over all accounts of a given customer.
16 Satish Murali/Technology
Conditional request (branching)
An inflow is performed differently according to some criteria from the request arguments.
E.g. create a customer and, if it is a US resident, update FATCA.
Let us consider the following PWD :
17 Madhioli Duraisamy/Technology
Inflow User Guide
The first activity is CREATE.CUSTOMER and the completion of that activity will outlet to check a
certain condition defined in “SWCOND” (Where we check the customer residence). Based on the
condition, the case activity “CREATE.FATCA” may or may not execute. If the condition for the CASE
activity does not suffice, then the default activity will execute.
For the above PWD, a subroutine is written and attached to the application EB.API.
The sequence repair is a functionality in inflow in which all the arriving inflow requests are staged and
then based on information already known in T24, the request can be executed immediately or delayed is
decided.
18 Madhioli Duraisamy/Technology
Inflow User Guide
xmlns:p="http://www.temenos.com/T24/inflow/AcctAgg/updateAccountList"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/30011/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/AcctAgg/ContainerupdateAccountList
AcctAgg-ContainerupdateAccountList.xsd ">
<container:containerId></container:containerId>
<container:containerTimestamp></container:containerTimestamp>
<container:containerDataSource></container:containerDataSource>
<container:bulkIndicator></container:bulkIndicator>
<container:tenantId></container:tenantId>
<container:inflowRequest>
<p:updateAccountList>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>sequencerepair</p1:messageId>
<p1:timestamp></p1:timestamp>
<p1:transactionMode></p1:transactionMode>
<p1:replace></p1:replace>
<p1:replaceFieldIndicator></p1:replaceFieldIndicator>
<p1:sequenceStart>5</p1:sequenceStart>
<p1:sequencePace>5</p1:sequencePace>
<p1:currentSequence>5</p1:currentSequence>
<p1:sequenceCheckType>FULL</p1:sequenceCheckType>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
</p:requestCommonDetails>
<p:receiveaccountlist_ral id="" index="">
<p:customerId>1</p:customerId>
<p:bankCode>12111</p:bankCode>
<p:subStatus>AWAITINGUSERACTION</p:subStatus>
19 Madhioli Duraisamy/Technology
Inflow User Guide
</p:receiveaccountlist_ral>
</p:updateAccountList>
</container:inflowRequest>
<container:containerCustomCommon name=""></container:containerCustomCommon>
</container:inflowContainer>
20 Madhioli Duraisamy/Technology
Inflow User Guide
<p1:transactionMode></p1:transactionMode>
<p1:replace></p1:replace>
<p1:replaceFieldIndicator></p1:replaceFieldIndicator>
<p1:sequenceStart>5</p1:sequenceStart>
<p1:sequencePace>5</p1:sequencePace>
<p1:currentSequence>5</p1:currentSequence>
<p1:sequenceCheckType>PARTIAL</p1:sequenceCheckType>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
</p:requestCommonDetails>
<p:receiveaccountlist_ral id="" index="">
<p:customerId>1</p:customerId>
<p:bankCode>12111</p:bankCode>
<p:subStatus>AWAITINGUSERACTION</p:subStatus>
</p:receiveaccountlist_ral>
</p:updateAccountList>
</container:inflowRequest>
<container:containerCustomCommon name=""></container:containerCustomCommon>
</container:inflowContainer>
Inflow without PW
This type of request can be used to send request to only one application (say create customer) through
inflow. For this request type to work we don’t need to create Process Workflow Definitions as it is
independent of it. Refer inflow designer section to design so that request can be posted for this request
type
Generic OFS
This type of request can be used when we need to pass an OFS request through inflow. Inflow supports
all OFS requests other than enquiries. This is similar to single OFS only that the OFS is defined inside the
XML.
Inflow Designer
Inflow Designer used to publish inflows to T24. The inflow designer and the event designer are now
available as a single product, but with different product codes in T24 to enable the functionality of the
specific designer.
This plugin is available as a part of design studio and as a standalone plugin that can be installed in
Eclipse.
Note: For the schema files of various request types refer Appendix section.
21 Madhioli Duraisamy/Technology
Inflow User Guide
Figure 7: Selecting T24 Inflow Designer project from T24 Integration Studio
4. Specify the project name, axis2 URL and the login credentials in the next screen:
22 Madhioli Duraisamy/Technology
Inflow User Guide
23 Madhioli Duraisamy/Technology
Inflow User Guide
Figure 9: Inflow Designer Project with designs, log and schemas folder
2. Specify a name for the inflow and select finish to get the designer opened.
24 Madhioli Duraisamy/Technology
Inflow User Guide
Figure 11: Naming the new Inflow Design (Inflow with PW)
3. The inflow design page gets opened. Now select “Use PW” check box.
4. Selecting Use PW check box will enable the process name, activity and target version combo
boxes.
25 Madhioli Duraisamy/Technology
Inflow User Guide
5. Select the required process name from the process name combo box.
6. Once a process name is selected the activities available in the particular process will be listed in
the activity combo box.
7. Select the required activity. Once an activity is selected the version available in the target field of
the activity will be displayed in the target version text box.
8. The fields from the underlying T24 Object will be listed in the Field List Box.
9. Select the fields to be added to the inflow and click add to add it to inflow. This list would have
only the editable fields in T24 based on STANDARD.SELECTION definition.
26 Madhioli Duraisamy/Technology
Inflow User Guide
10. Follow above steps for adding all the required activities.
27 Madhioli Duraisamy/Technology
Inflow User Guide
When a field is selected from the fileds list the read only text box below “Field” table will show any
enrichment (or mapping) defined for the field. Please refer to PW user guide to understand the mapping
definition. For example the above screenshot show the mapping as “C,&&SOURCE.KEY&& ==> A,C,ID
==> A,C,GK ==> A,C,KL ==> A,C,JU ==> A,C,LO ==> NR,ACCOUNT,CUSTOMER”. This says that the
@ID of CUSTOMER to be mapped to CUSTOMER field of ACCOUNT.
The enrichment is provided with the pattern:
ExtractionConversionPlacement
Adding Mapping field to the “Field Enrichments” table, the warning will appear saying that the selected
fields is having mapping. PW allows the user to pass values in the request though the filed has a
mapping. In that case the value passed will take precendence over the mapping.
28 Madhioli Duraisamy/Technology
Inflow User Guide
While adding fields, the user could observe few new data types:
1. t24Currency – This type is used for currency fields to restrict the input to 3 alphabetic characters.
This field accepts - and |-| to support T24 data removal identifier.
2. t24Date – This type of field is used for IN2D fields. This field accepts XML Date, - and |-| to
support a valid XML data and T24 data removal identifier
3. t24Decimal – This type of field is used for IN2 fields. This field accepts decimal values, - and |-| to
support a valid XML data and T24 data removal identifier
Each field added to the flow is marked mandatory to Y or N, to indicate whether the field requires
a value in T24 based on the STANDARD.SELECTION definition. The users can change this
value and this information is used when preparing T24 requests. Inflow requires value for all the
mandatory fields to be provided. Incase a field that is a mandatory field in T24 is marked as
optional in inflow, it is the responsibility of the inflow designer to make sure that the value of this
field if somehow passed to T24, if not the inflow request would fail.
29 Madhioli Duraisamy/Technology
Inflow User Guide
2. This publishes inflow to T24 and the log is written to Inflow folder:
If the user invokes the publish option at the project level, then all the inflows would be published to T24.
30 Madhioli Duraisamy/Technology
Inflow User Guide
2. In the design page we can view the application, version and function combo boxes enabled
allowing user to create an inflow without PW.
3. Select the application or the version for which the request has to be sent to T24.
4. Function drop down box lists the functions like I,A,R,D and S. To input fields select the function
“I”.
5. Once the application or the version is selected the fields from the underlying T24 Object would be
listed in the Field List Box.
6. Select the fields to be added to the inflow and click add to add it to inflow. This list would have
only the editable fields in T24 based on STANDARD.SELECTION definition.
31 Madhioli Duraisamy/Technology
Inflow User Guide
7. When functions other than “I” is selected the fields from the underlying T24 Object would not be
listed in the Field List Box thus enabling the user to input fields only when the function “I” is
selected.
32 Madhioli Duraisamy/Technology
Inflow User Guide
While adding fields, the user could observe few new data types:
1. t24Currency – This type is used for currency fields to restrict the input to 3 alphabetic characters.
This field accepts - and |-| to support T24 data removal identifier.
2. t24Date – This type of field is used for IN2D fields. This field accepts XML Date, - and |-| to
support a valid XML data and T24 data removal identifier
3. t24Decimal – This type of field is used for IN2 fields. This field accepts decimal values, - and |-| to
support a valid XML data and T24 data removal identifier
Each field added to the flow is marked mandatory to Y or N, to indicate whether the field requires
a value in T24 based on the STANDARD.SELECTION definition. The users can change this
value and this information is used when preparing T24 requests. Inflow requires value for all the
mandatory fields to be provided. Incase a field that is a mandatory field in T24 is marked as
optional in inflow, it is the responsibility of the inflow designer to make sure that the value of this
field if somehow passed to T24, if not the inflow request would fail.
33 Madhioli Duraisamy/Technology
Inflow User Guide
2. This publishes inflow to T24 and the log is written to Inflow folder:
If the user invokes the publish option at the project level, then all the inflows would be published to T24.
34 Madhioli Duraisamy/Technology
Inflow User Guide
Examples for the type of Inflow request mentioned in the document above:
2. Now right click on the design and select Inflow Designer Delete Inflow
35 Madhioli Duraisamy/Technology
Inflow User Guide
3. On selecting “Delete Inflow” user is prompted with a Deletion Box with Yes or No options.
36 Madhioli Duraisamy/Technology
Inflow User Guide
4. Selecting option “Yes” would delete .design and schema created under designs and schemas
folders respectively. Delete log can be viewed under log folder.
5. Selecting option “No” would delete only the schema created under schemas folder.
37 Madhioli Duraisamy/Technology
Inflow User Guide
38 Madhioli Duraisamy/Technology
Inflow User Guide
3. Selecting this option would prompt the user with a Deletion box with Yes or No options.
39 Madhioli Duraisamy/Technology
Inflow User Guide
4. Selecting option “Yes” would delete .design and schema created under designs and schemas
folders respectively. Delete log can be viewed under log folder.
5. Selecting option “No” would delete only the schema created under schemas folder.
40 Madhioli Duraisamy/Technology
Inflow User Guide
41 Madhioli Duraisamy/Technology
Inflow User Guide
2. To delete a particular design under a project run the following command from the command line.
42 Madhioli Duraisamy/Technology
Inflow User Guide
4. To delete all the designs under a project run the following command from the command line.
tRun IF.UninstallInflowPackage IFPA -ui:project=InflowProject
43 Madhioli Duraisamy/Technology
Figure 46: Successful deletion of all inflow records
44 Madhioli Duraisamy/Technology
Inflow User Guide
3. Here,
assembly.xml – A file added to new directory maven under the root of the project. This file contains
how the inflow project artefact .design is copied into the package.
pom.xml – A file added directly under the root of the project which contains the information about the
properties and configuration of the project and used by maven when building the project.
4. Create few inflow designs.
In the pop-up window, select Maven Build and create a new Maven Build Configuration for
this project. Ensure that the Goal is set to “clean package” and Parameter Name as
“t24Version” and Value can be any version (for eg:R19) as shown below. After the build
configuration is done, select Run in the pop-up window.
7. Once the maven build is successful, the build artefacts gets stored under target folder. Later
these build artefacts can be used for deploying the package.
Figure 55: Successful message after running T24 Package Installer command
4. Run the package data installer command to deploy all the designs.
7. Successful deployment can also be verified using T24.MODEL.PACKAGES. Data Released field
changes to ‘Y’ after deployment.
Figure 66: Successful message after running T24 Package Installer command
4. Run the package data installer command for installing only specific designs.
7. Successful deployment can also be verified using T24.MODEL.PACKAGES. Data Released field
changes to ‘Y’ after deployment.
2. Choose ‘Import Existing Inflow Designs From T24’ under Import Integration Project category in
the Import menu.
Figure 73: Choosing 'Import Existing Inflow Designs From T24' option
3. Clicking on Next opens a wizard page which has got connection properties and user credentials.
4. Give the connection URL of the environment from where we need to import the designs and the
user credentials of that particular environment. On giving these values the Next button is enabled.
5. Clicking on Next opens another wizard page which has got two lists. Projects and its
corresponding inflow dsigns.
6. Select a required project and select the required designs from the list. The user can use Select
All button to select all the designs or individual designs can be selected by checking the check
box. The Deselect All button is used to deselect all the selected designs at once. Once the
required designs are selected the Finish button is enabled.
8. Now do some modifications, add or remove the required fields in each design.
10. Successful publish will regenerate the schemas and update the inflow design records. The
regenerated schemas can be viewed in the appendix section.
11. When the user tries to import a project which is of the same name in the workspace a
confirmation box pops up whether to override the project in the workspace or not. Selecting ‘Ok’
will override the existing project in the workspace and selecting ‘Cancel’ just cancels the process.
13. The user can also connect to a different environment by giving the appropriate connection URL
and user credentials.
14. The below screenshot displays the project and its corresponding designs which are available in
that particular environment. Select the required project and design, do the required modifications
and publish them back to T24.
Figure 90: Projects and designs which are available in the particular environment is listed
5. Open and view the schemas folder. Additonal .xsd files are added as shown in the screenshot.
Master and child schemas are generated.
<ProjectName>-<DesignName> is the master .xsd file, which has the details of all activities and
reference to AA activities.
<DesignName>-<ActivityName_UniqueName> is the child .xsd files for AA activities, which has
references to the child versions.
<ActivityName_UniqueName>-<ApplicationName> is the master application, which has the field
details.
5. Open and view the schemas folder. Additonal .xsd files are added as shown in the screenshot.
Inflow Runtime
Runtime Artefacts and its setup
Inflow Runtime artefacts is distributed as a zip file with the naming convention Inflow-Runtime-<Release
Version>.zip (i.e. Inflow-Runtime-DEV.0.0-SNAPSHOT.zip)
The Zip file contains the following folders
1. scripts- This folder contains SQLScripts.zip
2. artefact- This folder contains the deployable artefact Inflow_EE.ear
3. manual- This folder contains the user guide for the inflows
SQLScripts.zip
The SQLScripts.zip in turn contains database scripts that are required to create the database table for
inflow to work.
These database tables are to be created in the T24 database and not controlled by T24.
The SQL scripts are named with the pattern <Database_name>Script.sql (i.e. H2Script.sql) and must be
executed only once.
The below table are created by these scripts:
IF_INFLOW_MESSAGE – The inflow request that need to be processed will be saved to this table.
IF_INFLOW_MESSAGE_PROCESSED – This table hold the processed messages and can be purged
based on the requirement. This table makes sure the IF_INFLOW_MESSAGE table holds less data
IF_INFLOW_MESSAGE_FAILED – This table holds the failed messages. These messages can be
retried. It is advised to check this table and purge the messages that cannot be retried
IF_INFLOW_DUPLICATE_CHECK – This table is used in a retry scenario and ensures that the same
message is not posted to IF_INFLOW_MESSAGE for processing
When using H2 Database run this script- H2Script.sql
When using Oracle Database run this script- OracleScript.sql
When using Microsoft SQL Server Database run this script-SQLServerScript.sql
When using IBM DB2 Database run the following scripts:
1)DB2_IF_INFLOW_MESSAGE.sql
2)DB2_IF_INFLOW_MESSAGE_PROCESSED.sql
3)DB2_IF_INFLOW_DUPLICATE_CHECK.sql
4)DB2_IF_INFLOW_MESSAGE_FAILED
The script are named with the pattern <Release_number>_Database_nameScript.sql (eg.
R20.0.0.5_H2Script) and must be run according to the sequence number of the release.
Inflow_EE.ear
This is the archive that has the components that executes the inflow request. This archive has:
Inflow_REST.war – This is a rest based web service responsible to get the inflow metadata from T24 to
execute the request
Inflow _EJB.jar – This EJB sends the request to T24 for execution.
Inflow _MDB.jar – This MDB is used to send the request to INFLOW_EJB to execute inflow request when
using non-ESB solution.
This Inflow_EE.ear need to be deployed in application server. The currently supported application server
is jBoss EAP 7, WebLogic 12 C and WAS 9.
Configuration files in this jar is explained in the configuration files section
Configuration Files
Before deploying Inflow_EE.ear, make sure the connection factory, queue connection factory and the
queues are created in the application server and the required configurations are done in the below
configuration files.
<description>User ID</description>
<env-entry-name>userId</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>SSOUSER1</env-entry-value>
</env-entry>
transactionMode – This is used to set the transaction mode for inflow and this is container by default.
<env-entry>
<description>Provide the Transaction Mode [BEAN or CONTAINER]</description>
<env-entry-name>transactionMode</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>CONTAINER</env-entry-value>
</env-entry>
Inflow-EJB.jar:
This is the component of inflow that listens for the incoming requests, dispatches to T24 for execution,
retries the failed request; in short performs all the operations related to executing the inflow request.
The application server specific configuration file need to be edited to provide the jndi name or the binding
name for queue, queue connection factory, data source and the locking data source.
The application server configuration files has 3 bean definition namely DispatcherEjb,
InflowListenerEjbTimer and InflowFailureRecoveryEjbTimer.
ejb-jar.xml
The ejb bean definition with the name DispatcherEjb is to set the environment entries to execute the
inflow request.
The jndi names for the resources are provided in the application server configuration file
All the below env-entry are configurable:
runtimeProperties – This variable is use to set the comma separated Runtime Properties for TAFJ
Session. The mandatory property is the OFS.SOURCE and defined as:
<env-entry>
<description>Comma Separated Runtime Properties for TAFJ Session</description>
<env-entry-name>runtimeProperties</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>OFS_SOURCE=IFPAOFS</env-entry-value>
</env-entry>
superTransaction – This property is used to configure the transaction boundary. For Inflow this property
need to be set to be true:
<env-entry>
<description>Enable/Disable TAFJ Super Transaction, Disable
[false : For Container managed] / Enable [true : For Bean managed] transactions
</description>
<env-entry-name>superTransaction</env-entry-name>
<env-entry-type>java.lang.Boolean</env-entry-type>
<env-entry-value>true</env-entry-value>
</env-entry>
healthCheckMode – This is to set whether the MDB is running in health check mode and to run the inflow
request this should be set to false:
<env-entry>
<description>Health check mode</description>
<env-entry-name>healthCheckMode</env-entry-name>
<env-entry-type>java.lang.Boolean</env-entry-type>
<env-entry-value>false</env-entry-value>
</env-entry>
userId – This property is used to set the T24 user ID used to authenticate in application server and in
T24. This user should have the PREAUTHENTICATED attribute set and should have all the necessary
permission to run the required inflow in T24
<env-entry>
<description>User ID</description>
<env-entry-name>userId</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>SSOUSER1</env-entry-value>
</env-entry>
transactionMode – This is used to set the transaction mode for inflow and this is container by default.
<env-entry>
<description>Provide the Transaction Mode [BEAN or CONTAINER]</description>
<env-entry-name>transactionMode</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>CONTAINER</env-entry-value>
</env-entry>
The bean with the name InflowListenerEjbTimer is to configure the listener which listens for the incoming
message.
This has the timer schedule to poll for incoming message. By default, Listener listens to the incoming
message once in 30 seconds:
The bean with the name InflowFailureRecoveryEjbTimer is used to configure the options that are used to
retry the failed messages:
This has a timer configuration to poll for failed messages. By default, InflowFailureRecoveryEjbTimer
retries message once in 30 seconds:
Note: The users are requested to configure the jndi-names and environment entries other that
superTransaction, transactionMode and healthCheckMode. Inflow Package has preconfigured
configuration files.
Deploying Inflow_EE.ear
JBoss
Copy the Inflow_EE.ear to the deployments folder
WebSphere
Installation of New Application in webSphere(JAR,WAR,EAR,SAR)
Go to step 4 directly to add shared libraries to the application that we are about to install. Select one
checkbox and click on reference shared libraries to add the configured T24 libraries in WebSphere.
Similarly do the same for other module.
Click on next till you reach Step 10 where resource references must be mapped to the each of the
modules available in the application that is been installed (in this case Inflow_EE contains a EJB, MDB,
WAR)
Then click on next option till you reach the summary and then the Inflow_EE would be installed in
WebSphere 9
Under the application tab select Websphere enterprise application to see the installed application. Select
the Inflow_EE and click on Start. Check the logs for deployment status.
WebLogic:
Go to weblogic admin console and select the Deployment tab to install new application in Weblogic.
Pre Requisite: All the queue configurations, jms connection factories, database configurations must be
done according to the configuration file of the application that has to be installed.
Click upload your file option to select the required file (in this case Inflow_EE.ear), in next window click on
Choose File under the Deployment Archive option.
Select Install as application option under the installation type and scope as global
Click on Next option till the last window to apply the default settings and click on finish to install the
application.
Under the summary of deployment check the state and health of the deployed application.
ESB Solution:
When performing metadata discovery, select outbound adapter to get the screen below :
Select Inflow as the outbound type and configure Web Service connection parameters to use ESB
Solution for Inflow.
When the user selects next, the list of inflows available in T24 would be listed. From the list select the
inflow for which the request to be sent:
Rest of the steps in the metadata discovery is the same as for Service XML metadata discovery.
When configuring the message flow, make sure the inflow is selected as Request Type to configure the
T24 custom outbound adapter with the inflow type:
The rest of the steps remains same as how the T24 customer outbound adapter of IIB and hence follow
T24 customer outbound adapter of IIB user guide.
Non-ESB Solution:
The user has to post the message to the inflow queue (inflow) using any tool that can post message to
this queue or can write a simple java program as below. A sample java programs are given below. These
programs has few dependencies, where org.apache.commons.io.jar and javaee-api-7.0.jar are common
dependencies for all the supported application servers. Also the file path to the sample xml must be
changed
jBoss:
This sample for jBoss requires jboss-client.jar. This jar is available in jBoss\bin\client
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Date;
import java.util.Properties;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import org.apache.commons.io.FileUtils;
import java.util.logging.Logger;
import javax.jms.BytesMessage;
import javax.jms.Connection;
WebSphere:
This program requires the below dependent jars:
1. com.ibm.ws.ejb.thinclient_9.0.jar
2. com.ibm.ws.orb_9.0.jar
3. com.ibm.ws.sib.client.thin.jms_9.0.jar
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.commons.io.FileUtils;
import com.ibm.websphere.sib.api.jms.JmsConnectionFactory;
import com.ibm.websphere.sib.api.jms.JmsFactoryFactory;
import com.ibm.websphere.sib.api.jms.JmsQueue;
import com.ibm.websphere.sib.api.jms.JmsTopic;
Destination dest;
JmsFactoryFactory jmsFact = JmsFactoryFactory.getInstance();
JmsQueue queue = jmsFact.createQueue(destUrl);
dest = queue;
JmsConnectionFactory connFact = jmsFact.createConnectionFactory();
connFact.setBusName(busName);
connFact.setProviderEndpoints(providerEndpoints);
Connection conn = connFact.createConnection();
Session session = null;
MessageProducer producer = null;
session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
producer = session.createProducer(dest);
System.out.println("Ready to send to " + dest + " on bus " + busName);
FileUtils utils=new FileUtils();
@SuppressWarnings("static-access")
String newinput = utils.readFileToString(new
File("C:\\Inflow\\testing\\newInput\\inflowrequest\\in - Copy.txt"));
TextMessage message = session.createTextMessage(newinput);
((javax.jms.MessageProducer) producer).send(message,
Message.DEFAULT_DELIVERY_MODE,
Message.DEFAULT_PRIORITY,
Message.DEFAULT_TIME_TO_LIVE);
}
}
WebLogic:
This sample for WebLogic requires wlclient.jar
import java.io.BufferedReader;
import java.io.File;
import java.util.Hashtable;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import org.apache.commons.io.FileUtils;
Inflow Response
Inflow is asynchronous and hence posting an inflow request would provide a success or failure response
to the processed inflow table. If a user need the details about the inflow, then the user can define an exit
point for inflow using event designer. On successful inflow process, an integration event would be
generated.
When defining an IF event, a new exit point type inflow is introduced and this type of exit point is for the
inflows defined based on process workflows. For the inflow based on direct application or version without
using PW process definition, the application or version exit point can be used. This option provides the list
of inflows available in T24:
After selecting the Inflow, the user can navigate to the Flow tab to define the flow:
Figure 117: Designing flow for the selected inflow exit point
The flow tab allows the user to select the PW Activity name. Once the Activity is selected, flow designer
gets the underlying application or version name and the fields from the application. This allows the user to
add any fields and also joins.
Note: For more details about defining flows, please refer to the Event Designer User guide. Currently
custom fields are not supported.
Once the flow is published, the relevant records in T24 gets created:
Figure 118: Output XML message delivered to the queue on execution of successful inflow message.
Here is a sample event XML that gets generated when the event is generated:
<?xml version="1.0" encoding="UTF-8"?>
<tns:flow51 xmlns:tns="http://www.temenos.com/T24/event/MyProject1/flow51"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/event/MyProject1/flow51 MyProject1-flow51.xsd"
xmlns:ns0="http://www.temenos.com/T24/event/Common/EventCommon">
<tns:eventCommonDetails>
<tns:eventCommon>
<ns0:application>test-flow1</ns0:application>
<ns0:companyId>GB0010001</ns0:companyId>
<ns0:operator>AUTHORISER</ns0:operator>
<ns0:today>2017-04-17</ns0:today>
<ns0:transactionStage>INFLOW.PROCESS</ns0:transactionStage>
<ns0:eventId>b70ed813-92f0-4fc6-8672-3601ca68bd0a</ns0:eventId>
<ns0:creationTime>2018-08-11T16:31:48.841Z</ns0:creationTime>
<ns0:customCommon name="InflowName">test-flow1</ns0:customCommon>
<ns0:customCommon name="ProcessDefinitionName">COMPLAINT.PROCESS</ns0:customCommon>
<ns0:customCommon name="InflowUniqueRef">INF123456</ns0:customCommon>
<ns0:customCommon name="PWProcessID">PW1234567</ns0:customCommon>
</tns:eventCommon>
</tns:eventCommonDetails>
<tns:createcrcontactlog_cccl_customerDetails>
<tns:customerId>100113</tns:customerId>
<tns:street>TEST</tns:street>
<tns:addressList>
<tns:address language="GB" index="1">address1</tns:address>
<tns:address language="FR" index="1">FR address1</tns:address>
<tns:address language="GB" index="2">address2</tns:address>
</tns:addressList>
<tns:otherOfficerList>
<tns:otherOfficer index="1">1</tns:otherOfficer>
<tns:otherOfficer index="2">2</tns:otherOfficer>
<tns:otherOfficer index="3">3</tns:otherOfficer>
</tns:otherOfficerList>
<tns:visTypeGroup index="1">
<tns:visType>1</tns:visType>
<tns:visInternalReviewList>
<tns:visInternalReview index="1">1</tns:visInternalReview>
</tns:visInternalReviewList>
</tns:visTypeGroup>
<tns:visTypeGroup index="2">
<tns:visType>2</tns:visType>
<tns:visInternalReviewList>
<tns:visInternalReview index="1">2</tns:visInternalReview>
</tns:visInternalReviewList>
</tns:visTypeGroup>
<tns:relationCodeGroup index="1">
<tns:relationCode>1</tns:relationCode>
<tns:relCustomer>100112</tns:relCustomer>
<tns:roleSubGroup index="1">
<tns:role>10</tns:role>
<tns:roleNotes>FWEFWE</tns:roleNotes>
</tns:roleSubGroup>
<tns:roleSubGroup index="2">
<tns:role>20</tns:role>
<tns:roleNotes>DFDSFSD</tns:roleNotes>
</tns:roleSubGroup>
</tns:relationCodeGroup>
<tns:relationCodeGroup index="2">
<tns:relationCode>2</tns:relationCode>
<tns:relCustomer>100115</tns:relCustomer>
<tns:roleSubGroup index="1">
<tns:role>20</tns:role>
<tns:roleNotes>CDDDCD</tns:roleNotes>
</tns:roleSubGroup>
</tns:relationCodeGroup>
</tns:createcrcontactlog_cccl_customerDetails>
<tns:createcrcontactlog_cccl_customerDetails>
<tns:customerId>100112</tns:customerId>
<tns:street>TEST1</tns:street>
<tns:addressList>
<tns:address language="GB" index="1">address1</tns:address>
<tns:address language="FR" index="1">FR address1</tns:address>
<tns:address language="GB" index="2">address2</tns:address>
</tns:addressList>
<tns:relationCodeGroup index="1">
<tns:relationCode>1</tns:relationCode>
<tns:relCustomer>100112</tns:relCustomer>
<tns:roleSubGroup index="1">
<tns:role>10</tns:role>
<tns:roleNotes>FWEFWE</tns:roleNotes>
</tns:roleSubGroup>
<tns:roleSubGroup index="2">
<tns:role>20</tns:role>
<tns:roleNotes>DFDSFSD</tns:roleNotes>
</tns:roleSubGroup>
</tns:relationCodeGroup>
<tns:relationCodeGroup index="2">
<tns:relationCode>2</tns:relationCode>
<tns:relCustomer>100115</tns:relCustomer>
<tns:roleSubGroup index="1">
<tns:role>20</tns:role>
<tns:roleNotes>CDDDCD</tns:roleNotes>
</tns:roleSubGroup>
</tns:relationCodeGroup>
</tns:createcrcontactlog_cccl_customerDetails>
<tns:amendcrcontactlog_accountafinputDetails>
<tns:accountID>11001</tns:accountID>
<tns:category>Td Waterhouse Uk</tns:category>
<tns:customer>100113</tns:customer>
<tns:otherOfficerList>
<tns:otherOfficer index="1">1</tns:otherOfficer>
<tns:otherOfficer index="2">2</tns:otherOfficer>
<tns:otherOfficer index="3">3</tns:otherOfficer>
</tns:otherOfficerList>
<tns:relationCodeGroup index="1">
<tns:relationCode>1</tns:relationCode>
<tns:relCustomer>100112</tns:relCustomer>
<tns:roleSubGroup index="1">
<tns:role>10</tns:role>
<tns:roleNotes>TEST1</tns:roleNotes>
</tns:roleSubGroup>
<tns:roleSubGroup index="2">
<tns:role>20</tns:role>
<tns:roleNotes>RTWRERWE</tns:roleNotes>
</tns:roleSubGroup>
</tns:relationCodeGroup>
<tns:relationCodeGroup index="2">
<tns:relationCode>2</tns:relationCode>
<tns:relCustomer>100115</tns:relCustomer>
<tns:roleSubGroup index="1">
<tns:role>30</tns:role>
<tns:roleNotes>EWTEWREW</tns:roleNotes>
</tns:roleSubGroup>
</tns:relationCodeGroup>
</tns:amendcrcontactlog_accountafinputDetails>
</tns:flow51>
Inflow xml is generated from the schemas which are obtained after successful publication of Inflow
project. One inflow message will contain a prent request and corresponding child requests.
For the above Deign time project the sample record generated is as shown below:
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/UpdateAccount/ContainerNewInflowDesign"
xmlns:p="http://www.temenos.com/T24/inflow/UpdateAccount/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:p10="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarragentcommissionaa_rewards.poi
nts"
xmlns:p11="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrbalancemaintenanceaa_balance.
maintenance"
xmlns:p12="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchangeproductaa_renewal"
xmlns:p13="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchargeaa_withdrawalfees"
xmlns:p14="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchargeoverrideaa_charge.overrid
e" xmlns:p15="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrclosureaa_closure"
xmlns:p16="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrcustomeraadeposit_customer"
xmlns:p17="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrinterestaa_depositint"
xmlns:p18="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrofficersaa_officers"
xmlns:p19="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrpaymentrulesaa_pr.deposit"
xmlns:p2="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrangementactivity"
xmlns:p20="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrpaymentscheduleaatd_schedule"
xmlns:p21="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrreportingaa_reporting"
xmlns:p22="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrsettlementaabasicsad_settlement
" xmlns:p23="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrtermamountaa_commitment"
xmlns:p24="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrtaxaa_tax"
xmlns:p3="http://www.temenos.com/T24/inflow/Common/dataTypes"
xmlns:p4="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchargeaafixed_redemptionfee"
xmlns:p5="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchargeaaroutine_withdrawalfee"
xmlns:p6="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarraccountaa_account"
xmlns:p7="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarractivitymessagingaa_messaging"
xmlns:p8="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarractivityrestrictionaa_arrangement.r
ules"
xmlns:p9="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarragentcommissionaa_agent.commi
ssion" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/UpdateAccount/ContainerNewInflowDesign
UpdateAccount-ContainerNewInflowDesign.xsd ">
<container:containerId/>
<container:containerTimestamp/>
<container:containerDataSource/>
<container:bulkIndicator/>
<container:tenantId/>
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>no pw</p1:requestType>
<p1:companyCode/>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>AATEST1</p1:messageId>
<p1:timestamp/>
<p1:transactionMode/>
<p1:replace/>
<p1:replaceFieldIndicator/>
<p1:sequenceNumber/>
<p1:customCommon name=""/>
</p:requestCommon>
</p:requestCommonDetails>
<p:aaarrangementactivityupdateaccountDetails id="" index="">
<p:aaarrangementactivity>
<p2:aaArrangementActivityarrangement>AA19107QLBL1</p2:aaArrangementActivityarrangement
>
<p2:aaArrangementActivitycustomerGroupParent>
<p2:aaArrangementActivitycustomerGroup index="1">
<p2:aaArrangementActivitycustomer>100285</p2:aaArrangementActivitycustomer>
</p2:aaArrangementActivitycustomerGroup>
</p2:aaArrangementActivitycustomerGroupParent>
<p2:aaArrangementActivitycurrency>USD</p2:aaArrangementActivitycurrency>
</p:aaarrangementactivity>
<p:aaarrsettlementaabasicsad_settlement>
<p22:aaArrSettlementaaBasicsAdpayinSettlementGroupParent>
<p22:aaArrSettlementaaBasicsAdpayinSettlementGroup
index="0">
<p22:aaArrSettlementaaBasicsAdddMandateRefSubGroupParent>
<p22:aaArrSettlementaaBasicsAdddMandateRefSubGroup index="0">
<p22:aaArrSettlementaaBasicsAdpayinAccount>87588</p22:aaArrSettlementaaBasicsAdpayinAcc
ount>
</p22:aaArrSettlementaaBasicsAdddMandateRefSubGroup>
</p22:aaArrSettlementaaBasicsAdddMandateRefSubGroupParent>
</p22:aaArrSettlementaaBasicsAdpayinSettlementGroup>
</p22:aaArrSettlementaaBasicsAdpayinSettlementGroupParent>
<p22:aaArrSettlementaaBasicsAdpayoutSettlementGroupParent>
<p22:aaArrSettlementaaBasicsAdpayoutSettlementGroup
index="1">
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroupParent>
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup index="1">
<p22:aaArrSettlementaaBasicsAdpayoutAccount>87588</p22:aaArrSettlementaaBasicsAdpayout
Account>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroupParent>
</p22:aaArrSettlementaaBasicsAdpayoutSettlementGroup>
</p22:aaArrSettlementaaBasicsAdpayoutSettlementGroupParent>
</p:aaarrsettlementaabasicsad_settlement>
</p:aaarrangementactivityupdateaccountDetails>
</p:NewInflowDesign>
</container:inflowRequest>
<container:containerCustomCommon name=""/>
</container:inflowContainer>
Appendix
Schemas and T24 data records for inflow with PW
The schemas folder holds the request schema for the published inflow. By default there would be 3
schemas:
1. One in the name of the <project Name>-<inflow design>. This schema holds the definition of all
the fields that need to be passed to T24
<xsd:complexType>
<xsd:sequence>
<xsd:element name="mnemonic" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="name1List" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name1" minOccurs="0"
maxOccurs="unbounded" nillable="true">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="name1Type">
<xsd:attribute type="xsd:string"
use="optional" name="language" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="shortNameList" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="shortName" minOccurs="0"
maxOccurs="unbounded" nillable="true">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="shortNameType">
<xsd:attribute type="xsd:string"
use="optional" name="language" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="sector" type="ns0:t24Decimal" minOccurs="0"
nillable="true" />
<xsd:element name="language" type="ns0:t24Decimal" minOccurs="0"
nillable="true" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="optional" />
<xsd:attribute name="index" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
<xsd:element name="amendcrcontactlog">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="category" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="6" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="currency" type="ns0:t24Currency" minOccurs="0"
nillable="true" />
<xsd:element name="customer" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="optional" />
<xsd:attribute name="index" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
2. Request Common schema holds the common schema definition fields
<xsd:simpleType name="t24Decimal">
<xsd:union memberTypes="t24DataRemovalPattern xsd:decimal" />
</xsd:simpleType>
<xsd:simpleType name="t24Date">
<xsd:union memberTypes="t24DataRemovalPattern xsd:date" />
</xsd:simpleType>
<xsd:simpleType name="t24Currency">
<xsd:union memberTypes="t24DataRemovalPattern t24CurrencyType" />
</xsd:simpleType>
</xsd:schema>
3. Container schema holds the schema to represent multiple inflow of same type.
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="inflowRequestType">
<xsd:sequence>
<xsd:element ref="ns1:OnboardCustomer" minOccurs="1" maxOccurs="unbounded"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<xsd:sequence>
<xsd:element ref="requestCommonDetails" minOccurs="1" maxOccurs="1" />
<xsd:element ref="accountcaopenlcy" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="requestCommonDetails">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestCommon" type="ns0:RequestCommon" minOccurs="0"
nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="accountcaopenlcy">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="category" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="6" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="currency" type="ns0:t24Currency" minOccurs="0"
nillable="true" />
<xsd:element name="customer" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="optional" />
<xsd:attribute name="index" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24Decimal">
<xsd:union memberTypes="t24DataRemovalPattern xsd:decimal" />
</xsd:simpleType>
<xsd:simpleType name="t24Date">
<xsd:union memberTypes="t24DataRemovalPattern xsd:date" />
</xsd:simpleType>
<xsd:simpleType name="t24Currency">
<xsd:union memberTypes="t24DataRemovalPattern t24CurrencyType" />
</xsd:simpleType>
</xsd:schema>
3. Container schema holds the schema to represent multiple inflow of same type.
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="inflowRequestType">
<xsd:sequence>
<xsd:element ref="ns1:CreateCustomer" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Figure 73: Inflow record in IF.INFLOW.CATALOG table (when function “I” is used)
3. Container schema holds the schema to represent multiple inflow of same type.
Figure 74: Inflow record in IF.INFLOW.CATALOG table (when functions other than “I” is used)
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/Common/RequestCommon"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/Common/RequestCommon">
<xsd:complexType name="RequestCommon">
<xsd:sequence>
<xsd:element name="requestType" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="companyCode" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="userName" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="messageId" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="timestamp" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="transactionMode" type="xsd:string" minOccurs="0" maxOccurs="1"
/>
<xsd:element name="customCommon" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="name" type="xsd:string" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="t24CurrencyType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z]{3}" />
<xsd:maxLength value="3" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24DataRemovalPattern">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="-" />
<xsd:enumeration value="|-|" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24Decimal">
<xsd:union memberTypes="t24DataRemovalPattern xsd:decimal" />
</xsd:simpleType>
<xsd:simpleType name="t24Date">
<xsd:union memberTypes="t24DataRemovalPattern xsd:date" />
</xsd:simpleType>
<xsd:simpleType name="t24Currency">
<xsd:union memberTypes="t24DataRemovalPattern t24CurrencyType" />
</xsd:simpleType>
</xsd:schema>
3. Generic-ContainerOFS.xsd
</xsd:element>
<xsd:complexType name="inflowRequestType">
<xsd:sequence>
<xsd:element ref="ns1:OFS" minOccurs="1" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestCommon" type="ns0:RequestCommon"
minOccurs="0" nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="createcrcontactlog_cccl">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="mnemonic" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="name1List" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name1" minOccurs="0"
maxOccurs="unbounded" nillable="true">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="name1Type">
<xsd:attribute type="xsd:string"
use="optional" name="language" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="sector" type="ns0:t24Decimal" minOccurs="0"
nillable="true" />
<xsd:element name="shortNameList" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="shortName" minOccurs="0"
maxOccurs="unbounded" nillable="true">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="shortNameType">
<xsd:attribute type="xsd:string"
use="optional" name="language" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="language" type="ns0:t24Decimal" minOccurs="0"
nillable="true" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="optional" />
AATest-createarrangement_ca.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca"
xmlns:ns1="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrangem
entactivity"
xmlns:ns2="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrchargeaa_d
ormancyfees"
xmlns:ns3="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrcharg
eaa_withdrawalfees"
xmlns:ns4="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrdormancyaa
_dormancy">
<xsd:import
namespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrangementac
tivity"
schemaLocation="createarrangement_ca-aaarrangementactivity.xsd" />
<xsd:import
namespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrchargeaa_d
ormancyfees"
schemaLocation="createarrangement_ca-aaarrchargeaa_dormancyfees.xsd" />
<xsd:import
namespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrchargeaa_w
ithdrawalfees"
schemaLocation="createarrangement_ca-aaarrchargeaa_withdrawalfees.xsd" />
<xsd:import
namespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrdormancyaa
_dormancy"
schemaLocation="createarrangement_ca-aaarrdormancyaa_dormancy.xsd" />
<xsd:complexType name="createarrangement_ca">
<xsd:sequence>
<xsd:element name="aaarrangementactivity"
type="ns1:aaarrangementactivity" minOccurs="0" nillable="true" />
<xsd:element name="aaarrchargeaa_dormancyfees"
type="ns2:aaarrchargeaa_dormancyfees" minOccurs="0"
nillable="true" />
<xsd:element name="aaarrchargeaa_withdrawalfees"
type="ns3:aaarrchargeaa_withdrawalfees" minOccurs="0"
nillable="true" />
<xsd:element name="aaarrdormancyaa_dormancy"
type="ns4:aaarrdormancyaa_dormancy" minOccurs="0" nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
createarrangement_ca-aaarrangementactivity.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrangementactivi
ty"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrange
mentactivity"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:complexType name="aaarrangementactivity">
<xsd:sequence>
<xsd:element name="aaArrangementActivityactivity" minOccurs="0"
nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="80" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="aaArrangementActivityadjustment" minOccurs="0"
nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="55" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
createarrangement_ca-aaarrchargeaa_dormancyfees.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrchargeaa_
dormancyfees" elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaar
rchargeaa_dormancyfees" xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:complexType name="aaarrchargeaa_dormancyfees">
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinChargeGroupParent" minOccurs="0"
maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinChargeGroup"
minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="aaArrChargeaatierMinCharge" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction
base="xsd:string">
<xsd:maxLength value="19"
/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element
name="aaArrChargeaatierMaxCharge" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction
base="xsd:string">
<xsd:maxLength value="19"
/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute type="xsd:integer"
use="optional" name="index" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
createarrangement_ca-aaarrchargeaa_withdrawalfees.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrchargeaa_
withdrawalfees" elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaar
rchargeaa_withdrawalfees"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:complexType name="aaarrchargeaa_withdrawalfees">
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinChargeGroupParent" minOccurs="0"
maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinChargeGroup"
minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="aaArrChargeaatierMinCharge" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction
base="xsd:string">
<xsd:maxLength value="19"
/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element
name="aaArrChargeaatierMaxCharge" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction
base="xsd:string">
<xsd:maxLength value="19"
/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute type="xsd:integer"
use="optional" name="index" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
createarrangement_ca-aaarrdormancyaa_dormancy.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaarrdormancya
a_dormancy" elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/AATest/createarrangement_ca/aaar
rdormancyaa_dormancy" xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:complexType name="aaarrdormancyaa_dormancy">
<xsd:sequence>
<xsd:element name="aaArrDormancyaastatusGroupParent" minOccurs="0"
maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrDormancyaastatusGroup"
minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrDormancyaastatus"
minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction
base="xsd:string">
<xsd:maxLength value="10"
/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="aaArrDormancyaaperiod"
minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction
base="xsd:string">
<xsd:maxLength value="4" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute type="xsd:integer"
use="optional" name="index" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Common-dataTypes.xsd
<xsd:schema targetNamespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:simpleType name="t24CurrencyType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z]{3}" />
<xsd:maxLength value="3" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24DataRemovalPattern">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="-" />
<xsd:enumeration value="|-|" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24Decimal">
<xsd:union memberTypes="t24DataRemovalPattern xsd:decimal" />
</xsd:simpleType>
<xsd:simpleType name="t24Date">
<xsd:union memberTypes="t24DataRemovalPattern xsd:date" />
</xsd:simpleType>
<xsd:simpleType name="t24Currency">
<xsd:union memberTypes="t24DataRemovalPattern t24CurrencyType" />
</xsd:simpleType>
</xsd:schema>
Common-RequestCommon.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/Common/RequestCommon"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/Common/RequestCommon">
<xsd:complexType name="RequestCommon">
<xsd:sequence>
<xsd:element name="requestType" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="companyCode" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="userName" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="messageId" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="timestamp" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="transactionMode" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="replace" type="xsd:string" minOccurs="0" maxOccurs="1"
/>
<xsd:element name="replaceFieldIndicator" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="sequenceNumber" type="xsd:string" minOccurs="0"
maxOccurs="1" />
AATest-ContainerNewInflowDesign.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/AATest/ContainerNewInflowDesign"
xmlns:ns1="http://www.temenos.com/T24/inflow/AATest/NewInflowDesign"
xmlns:container="http://www.temenos.com/T24/inflow/AATest/ContainerNewInflowDesign"
>
<xsd:import namespace="http://www.temenos.com/T24/inflow/AATest/NewInflowDesign"
schemaLocation="AATest-NewInflowDesign.xsd" />
<xsd:element name="inflowContainer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="containerId" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="containerTimestamp" type="xsd:string"
minOccurs="0" maxOccurs="1" />
<xsd:element name="containerDataSource" type="xsd:string"
minOccurs="0" maxOccurs="1" />
Inflow without PW
AATest-NewInflowDesign1.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/AATest/NewInflowDesign1"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/AATest/NewInflowDesign1"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:ns1="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrangementactivity"
xmlns:ns2="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrchargeaa_dormancyfees"
xmlns:ns3="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrchargeaa_withdrawalfees"
xmlns:ns4="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrdormancyaa_dormancy"
xmlns:ns5="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrtaxaa_tax">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/RequestCommon"
schemaLocation="Common-RequestCommon.xsd" />
<xsd:import namespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrangementactivity"
schemaLocation="NewInflowDesign1-aaarrangementactivity.xsd" />
<xsd:import
namespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrchargeaa_dormancyfees"
schemaLocation="NewInflowDesign1-aaarrchargeaa_dormancyfees.xsd" />
<xsd:import
namespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrchargeaa_withdrawalfees"
schemaLocation="NewInflowDesign1-aaarrchargeaa_withdrawalfees.xsd" />
<xsd:import
namespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrdormancyaa_dormancy"
schemaLocation="NewInflowDesign1-aaarrdormancyaa_dormancy.xsd" />
<xsd:import namespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrtaxaa_tax"
schemaLocation="NewInflowDesign1-aaarrtaxaa_tax.xsd" />
<xsd:element name="NewInflowDesign1">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="requestCommonDetails" minOccurs="1" maxOccurs="1" />
<xsd:element ref="aaarrangementactivitytestDetails" minOccurs="1"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="requestCommonDetails">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="requestCommon" type="ns0:RequestCommon" minOccurs="0"
nillable="true" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="aaarrangementactivitytestDetails">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaarrangementactivity" type="ns1:aaarrangementactivity"
minOccurs="0" nillable="true" />
<xsd:element name="aaarrchargeaa_dormancyfees"
type="ns2:aaarrchargeaa_dormancyfees" minOccurs="0"
nillable="true" />
<xsd:element name="aaarrchargeaa_withdrawalfees"
type="ns3:aaarrchargeaa_withdrawalfees" minOccurs="0"
nillable="true" />
<xsd:element name="aaarrdormancyaa_dormancy" type="ns4:aaarrdormancyaa_dormancy"
minOccurs="0" nillable="true" />
<xsd:element name="aaarrtaxaa_tax" type="ns5:aaarrtaxaa_tax" minOccurs="0"
nillable="true" />
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="optional" />
<xsd:attribute name="index" type="xsd:string" use="optional" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
NewInflowDesign1-aaarrangementactivity.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrangementactivity"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrangementactivity"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:complexType name="aaarrangementactivity">
<xsd:sequence>
<xsd:element name="aaArrangementActivityactivity" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="80" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="aaArrangementActivityadjustment" minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="55" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
NewInflowDesign1-aaarrchargeaa_dormancyfees.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrchargeaa_dormancyfees"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrchargeaa_dormancyfees"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:complexType name="aaarrchargeaa_dormancyfees">
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinChargeGroupParent" minOccurs="0"
maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinChargeGroup" minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinCharge"
minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="19" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="aaArrChargeaatierMaxCharge"
minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="19" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute type="xsd:integer" use="optional"
name="index" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
NewInflowDesign1-aaarrchargeaa_withdrawalfees.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrchargeaa_withdrawalfees"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrchargeaa_withdrawalfees"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:complexType name="aaarrchargeaa_withdrawalfees">
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinChargeGroupParent" minOccurs="0"
maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinChargeGroup" minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrChargeaatierMinCharge"
minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="19" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="aaArrChargeaatierMaxCharge"
minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="19" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute type="xsd:integer" use="optional"
name="index" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
NewInflowDesign1-aaarrdormancyaa_dormancy.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrdormancyaa_dormancy"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrdormancyaa_dormancy"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:complexType name="aaarrdormancyaa_dormancy">
<xsd:sequence>
<xsd:element name="aaArrDormancyaastatusGroupParent" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrDormancyaastatusGroup" minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrDormancyaastatus"
minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="aaArrDormancyaaperiod"
minOccurs="0" nillable="true">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="4" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
<xsd:attribute type="xsd:integer" use="optional"
name="index" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
NewInflowDesign1-aaarrtaxaa_tax.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrtaxaa_tax"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/NewInflowDesign1/aaarrtaxaa_tax"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:import namespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
schemaLocation="Common-dataTypes.xsd" />
<xsd:simpleType name="aaArrTaxaataxConditionType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="16" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="aaarrtaxaa_tax">
<xsd:sequence>
<xsd:element name="aaArrTaxaataxCodeGroupParent" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrTaxaataxCodeGroup" minOccurs="0"
maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrTaxaataxCodeList"
minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="aaArrTaxaataxCode"
minOccurs="0" maxOccurs="unbounded" nillable="true">
<xsd:simpleType>
<xsd:restriction base="">
<xsd:maxLength value=""
/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="aaArrTaxaataxConditionList"
minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="aaArrTaxaataxCondition" minOccurs="0" maxOccurs="unbounded" nillable="true">
<xsd:simpleType>
<xsd:restriction
base="aaArrTaxaataxConditionType">
<xsd:maxLength
value="16" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute type="xsd:integer" use="optional"
name="index" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Common-RequestCommon.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/Common/RequestCommon"
elementFormDefault="qualified"
targetNamespace="http://www.temenos.com/T24/inflow/Common/RequestCommon">
<xsd:complexType name="RequestCommon">
<xsd:sequence>
<xsd:element name="requestType" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="companyCode" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="userName" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="messageId" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="timestamp" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="transactionMode" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="replace" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="replaceFieldIndicator" type="xsd:string" minOccurs="0"
maxOccurs="1" />
<xsd:element name="sequenceNumber" type="xsd:string" minOccurs="0" maxOccurs="1" />
<xsd:element name="sequenceCheckType" type="xsd:string" minOccurs="0" maxOccurs="1"
/>
<xsd:element name="customCommon" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="name" type="xsd:string" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="t24CurrencyType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z]{3}" />
<xsd:maxLength value="3" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24DataRemovalPattern">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="-" />
<xsd:enumeration value="|-|" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24Decimal">
<xsd:union memberTypes="t24DataRemovalPattern xsd:decimal" />
</xsd:simpleType>
<xsd:simpleType name="t24Date">
<xsd:union memberTypes="t24DataRemovalPattern xsd:date" />
</xsd:simpleType>
<xsd:simpleType name="t24Currency">
<xsd:union memberTypes="t24DataRemovalPattern t24CurrencyType" />
</xsd:simpleType>
</xsd:schema>
Common-dataTypes.xsd
<xsd:schema targetNamespace="http://www.temenos.com/T24/inflow/Common/dataTypes"
elementFormDefault="qualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.temenos.com/T24/inflow/Common/dataTypes">
<xsd:simpleType name="t24CurrencyType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z]{3}" />
<xsd:maxLength value="3" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24DataRemovalPattern">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="-" />
<xsd:enumeration value="|-|" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="t24Decimal">
<xsd:union memberTypes="t24DataRemovalPattern xsd:decimal" />
</xsd:simpleType>
<xsd:simpleType name="t24Date">
<xsd:union memberTypes="t24DataRemovalPattern xsd:date" />
</xsd:simpleType>
<xsd:simpleType name="t24Currency">
<xsd:union memberTypes="t24DataRemovalPattern t24CurrencyType" />
</xsd:simpleType>
</xsd:schema>
Inflow with PW
Below attached is a sample Request.xml
<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/testInflow/ContainerwithPwFinal"
xmlns:p="http://www.temenos.com/T24/inflow/testInflow/withPwFinal"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/testInflow/ContainerwithPwFinal
testInflow-ContainerwithPwFinal.xsd ">
<container:containerId></container:containerId>
<container:containerTimestamp></container:containerTimestamp>
<container:containerDataSource></container:containerDataSource>
<container:inflowRequest>
<p:withPwFinal>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>With Pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>9191</p1:messageId>
<p1:timestamp></p1:timestamp>
<p1:transactionMode></p1:transactionMode>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
</p:requestCommonDetails>
<p:createcrcontactlog_cccl id="" index="">
<p:mnemonic>KALAI</p:mnemonic>
<p:name1List>
<p:name1 language="">ROCKSON</p:name1>
</p:name1List>
<p:shortNameList>
<p:shortName language="">KALAIROC</p:shortName>
</p:shortNameList>
<p:sector>1001</p:sector>
<p:language>1</p:language>
</p:createcrcontactlog_cccl>
<p:amendcrcontactlog id="" index="">
<p:customer>100100</p:customer>
<p:currency>USD</p:currency>
<p:category>1001</p:category>
</p:amendcrcontactlog>
</p:withPwFinal>
</container:inflowRequest>
<container:containerCustomCommon name=""></container:containerCustomCommon>
</container:inflowContainer>
Inflow without PW
Below attached is a sample Request.xml
<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/testFinal/ContainerInflowNoPwFinal
" xmlns:p="http://www.temenos.com/T24/inflow/testFinal/InflowNoPwFinal"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/testFinal/ContainerInflowNoPwFi
nal testFinal-ContainerInflowNoPwFinal.xsd ">
<container:containerId></container:containerId>
<container:containerTimestamp></container:containerTimestamp>
<container:containerDataSource></container:containerDataSource>
<container:inflowRequest>
<p:InflowNoPwFinal>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>No pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>45433</p1:messageId>
<p1:timestamp></p1:timestamp>
<p1:transactionMode></p1:transactionMode>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
</p:requestCommonDetails>
<p:accountafinput id="" index="">
<p:customer>100100</p:customer>
<p:category>1001</p:category>
<p:currency>USD</p:currency>
</p:accountafinput>
</p:InflowNoPwFinal>
</container:inflowRequest>
<container:containerCustomCommon name=""></container:containerCustomCommon>
</container:inflowContainer>
Generic-OFS
Below attached is a sample Request.xml
<?xml version="1.0" encoding="utf-8"?>
<inflowContainer
xmlns="http://www.temenos.com/T24/inflow/Generic/ContainerOFS"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/RequestCommon">
<containerId>12</containerId>
<containerTimestamp>12</containerTimestamp>
<containerDataSource>testGenericOFS</containerDataSource>
<inflowRequest>
<OFS xmlns="http://www.temenos.com/T24/inflow/Generic/OFS">
<requestCommonDetails>
<requestCommon>
<ns0:companyCode>GB0010001</ns0:companyCode>
<ns0:userName>SSOUSER1</ns0:userName>
<ns0:messageId>00201</ns0:messageId>
<ns0:requestType>generic-ofs</ns0:requestType>
<ns0:timestamp/>
<ns0:transactionMode/>
<ns0:customCommon name="TEST"/>
</requestCommon>
</requestCommonDetails>
<ofsRequestsDetails>
<ofsRequests>ACCOUNT,/I/PROCESS//,SSOUSER1//GB0010001///,,CUSTOMER:1:1=100113,C
URRENCY:1:1=USD,CATEGORY:1:1=1001</ofsRequests>
</ofsRequestsDetails>
</OFS>
</inflowRequest>
<containerCustomCommon/>
</inflowContainer>
Multi-Value Field:
Delete first value in a multi-value field
<container:inflowContainer xmlns:container="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign"
xmlns:p="http://www.temenos.com/T24/inflow/InFlowEnhTest2/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign
../../../InFlowEnhTest2/schemas/NewInflowDesign/InFlowEnhTest2-ContainerNewInflowDesign.xsd ">
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM00</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140100" index="">
<p:postingRestrictList>
<p:postingRestrict index="1">-</p:postingRestrict>
<p:postingRestrict index="2">2</p:postingRestrict>
<p:postingRestrict index="3">3</p:postingRestrict>
<p:postingRestrict index="4">4</p:postingRestrict>
<p:postingRestrict index="5">5</p:postingRestrict>
<p:postingRestrict index="6">6</p:postingRestrict>
</p:postingRestrictList>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<p1:messageId>ZMULREM00</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140100" index="">
<p:postingRestrictList>
<p:postingRestrict index="1" xsi:nil=”true/>
<p:postingRestrict index="2">-</p:postingRestrict>
<p:postingRestrict index="3">-</p:postingRestrict>
<p:postingRestrict index="4">-</p:postingRestrict>
<p:postingRestrict index="5">-</p:postingRestrict>
<p:postingRestrict index="6">-</p:postingRestrict>
</p:postingRestrictList>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM07</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140100" index="">
<p:phone1GroupParent>
<p:phone1Group index="1">
<p:phone1 xsi:nil="true"/>
<p:email1 xsi:nil="true"/>
</p:phone1Group>
</p:phone1GroupParent>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<p:email1>[email protected]</p:email1>
<p:addrLocation>PRIMARY</p:addrLocation>
</p:phone1Group>
<p:phone1Group index="2">
<p:phone1>-</p:phone1>
</p:phone1Group>
<p:phone1Group index="3">
<p:phone1>3333</p:phone1>
<p:sms1>333-SMS</p:sms1>
<p:email1>[email protected]</p:email1>
<p:addrLocation>SECONDARY</p:addrLocation>
</p:phone1Group>
</p:phone1GroupParent>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign"
xmlns:p="http://www.temenos.com/T24/inflow/InFlowEnhTest2/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xsi:schemaLocation="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign
../../../InFlowEnhTest2/schemas/NewInflowDesign/InFlowEnhTest2-ContainerNewInflowDesign.xsd ">
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM12</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140103" index="">
<p:phone1GroupParent>
<p:phone1Group index="1">
<p:phone1 xsi:nil="true"/>
<p:sms1 xsi:nil="true"/>
<p:email1 xsi:nil="true"/>
<p:addrLocation xsi:nil="true"/>
</p:phone1Group>
<p:phone1Group index="2">
<p:phone1>-</p:phone1>
</p:phone1Group>
<p:phone1Group index="3">
<p:phone1>-</p:phone1>
</p:phone1Group>
</p:phone1GroupParent>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
Multi-Language Field:
To delete all the values:
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign"
xmlns:p="http://www.temenos.com/T24/inflow/InFlowEnhTest2/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign
../../../InFlowEnhTest2/schemas/NewInflowDesign/InFlowEnhTest2-ContainerNewInflowDesign.xsd ">
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM23</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140101" index="">
<p:shortNameList>
<p:shortName language="GB" xsi:nil="true" />
<p:shortName language="FR">-</p:shortName>
<p:shortName language="DE">-</p:shortName>
<p:shortName language="ES">-</p:shortName>
</p:shortNameList>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM23</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140101" index="">
<p:shortNameList>
<p:shortName language="GB">GB Name</p:shortName>
<p:shortName language="FR">-</p:shortName>
<p:shortName language="DE">DE Name</p:shortName>
<p:shortName language="ES">ES Name</p:shortName>
</p:shortNameList>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
</p:addressGroup>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
</container:inflowContainer>
</p:addressList>
</p:addressGroup>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<container:inflowContainer xmlns:container="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign"
xmlns:p="http://www.temenos.com/T24/inflow/InFlowEnhTest2/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign
../../../InFlowEnhTest2/schemas/NewInflowDesign/InFlowEnhTest2-ContainerNewInflowDesign.xsd ">
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM14</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140100" index="">
<p:employmentStatusGroupParent>
<p:employmentStatusGroup index="1">
<p:employmentStatus>EMPLOYED</p:employmentStatus>
<p:occupation>Occupation1</p:occupation>
<p:jobTitle>CONSULTANT</p:jobTitle>
<p:employersName>EMPNAME1</p:employersName>
<p:employersAddList>
<p:employersAdd>-</p:employersAdd>
<p:employersAdd>EMPADDRESS12</p:employersAdd>
<p:employersAdd>-</p:employersAdd>
<p:employersAdd>EMPADDRESS14</p:employersAdd>
</p:employersAddList>
<p:employersBuss>EMPBUSS1</p:employersBuss>
<p:employmentStart>17 APR 2018</p:employmentStart>
<p:customerCurrency>AED</p:customerCurrency>
<p:salary>10000</p:salary>
<p:annualBonus>1000</p:annualBonus>
<p:salaryDateFreq>20190417DAILY</p:salaryDateFreq>
</p:employmentStatusGroup>
<p:employmentStatusGroup index="2">
<p:employmentStatus>EMPLOYED</p:employmentStatus>
<p:occupation>Occupation2</p:occupation>
<p:jobTitle>CONSULTANT</p:jobTitle>
<p:employersName>EMPNAME2</p:employersName>
<p:employersAddList>
<p:employersAdd>EMPADDRESS21</p:employersAdd>
<p:employersAdd>EMPADDRESS22</p:employersAdd>
<p:employersAdd>EMPADDRESS23</p:employersAdd>
<p:employersAdd>EMPADDRESS24</p:employersAdd>
</p:employersAddList>
<p:employersBuss>EMPBUSS2</p:employersBuss>
<p:employmentStart>17 APR 2018</p:employmentStart>
<p:customerCurrency>AED</p:customerCurrency>
<p:salary>20000</p:salary>
<p:annualBonus>2000</p:annualBonus>
<p:salaryDateFreq>20190417DAILY</p:salaryDateFreq>
</p:employmentStatusGroup>
<p:employmentStatusGroup index="3">
<p:employmentStatus>EMPLOYED</p:employmentStatus>
<p:occupation>Occupation3</p:occupation>
<p:jobTitle>CONSULTANT</p:jobTitle>
<p:employersName>EMPNAME3</p:employersName>
<p:employersAddList>
<p:employersAdd>EMPADDRESS31</p:employersAdd>
<p:employersAdd>EMPADDRESS32</p:employersAdd>
<p:employersAdd>EMPADDRESS33</p:employersAdd>
<p:employersAdd>EMPADDRESS34</p:employersAdd>
</p:employersAddList>
<p:employersBuss>EMPBUSS3</p:employersBuss>
<p:employmentStart>17 APR 2018</p:employmentStart>
<p:customerCurrency>AED</p:customerCurrency>
<p:salary>30000</p:salary>
<p:annualBonus>3000</p:annualBonus>
<p:salaryDateFreq>20190417DAILY</p:salaryDateFreq>
</p:employmentStatusGroup>
</p:employmentStatusGroupParent>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
To remove all values from a list field under associated multi value set:
<container:inflowContainer xmlns:container="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign"
xmlns:p="http://www.temenos.com/T24/inflow/InFlowEnhTest2/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign
../../../InFlowEnhTest2/schemas/NewInflowDesign/InFlowEnhTest2-ContainerNewInflowDesign.xsd ">
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM14</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140100" index="">
<p:employmentStatusGroupParent>
<p:employmentStatusGroup index="1">
<p:employmentStatus>EMPLOYED</p:employmentStatus>
<p:occupation>Occupation1</p:occupation>
<p:jobTitle>CONSULTANT</p:jobTitle>
<p:employersName>EMPNAME1</p:employersName>
<p:employersAddList>
<p:employersAdd>EMPADDRESS11</p:employersAdd>
<p:employersAdd>EMPADDRESS12</p:employersAdd>
<p:employersAdd>EMPADDRESS13</p:employersAdd>
<p:employersAdd>EMPADDRESS14</p:employersAdd>
</p:employersAddList>
<p:employersBuss>EMPBUSS1</p:employersBuss>
<p:employmentStart>17 APR 2018</p:employmentStart>
<p:customerCurrency>AED</p:customerCurrency>
<p:salary>10000</p:salary>
<p:annualBonus>1000</p:annualBonus>
<p:salaryDateFreq>20190417DAILY</p:salaryDateFreq>
</p:employmentStatusGroup>
<p:employmentStatusGroup index="2">
<p:employmentStatus>EMPLOYED</p:employmentStatus>
<p:occupation>Occupation2</p:occupation>
<p:jobTitle>CONSULTANT</p:jobTitle>
<p:employersName>EMPNAME2</p:employersName>
<p:employersAddList>
<p:employersAdd xsi:nil="true"/>
<p:employersAdd>-</p:employersAdd>
<p:employersAdd>-</p:employersAdd>
<p:employersAdd>-</p:employersAdd>
</p:employersAddList>
<p:employersBuss>EMPBUSS2</p:employersBuss>
<p:employmentStart>17 APR 2018</p:employmentStart>
<p:customerCurrency>AED</p:customerCurrency>
<p:salary>20000</p:salary>
<p:annualBonus>2000</p:annualBonus>
<p:salaryDateFreq>20190417DAILY</p:salaryDateFreq>
</p:employmentStatusGroup>
<p:employmentStatusGroup index="3">
<p:employmentStatus>EMPLOYED</p:employmentStatus>
<p:occupation>Occupation3</p:occupation>
<p:jobTitle>CONSULTANT</p:jobTitle>
<p:employersName>EMPNAME3</p:employersName>
<p:employersAddList>
<p:employersAdd>EMPADDRESS31</p:employersAdd>
<p:employersAdd>EMPADDRESS32</p:employersAdd>
<p:employersAdd>EMPADDRESS33</p:employersAdd>
<p:employersAdd>EMPADDRESS34</p:employersAdd>
</p:employersAddList>
<p:employersBuss>EMPBUSS3</p:employersBuss>
<p:employmentStart>17 APR 2018</p:employmentStart>
<p:customerCurrency>AED</p:customerCurrency>
<p:salary>30000</p:salary>
<p:annualBonus>3000</p:annualBonus>
<p:salaryDateFreq>20190417DAILY</p:salaryDateFreq>
</p:employmentStatusGroup>
</p:employmentStatusGroupParent>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign"
xmlns:p="http://www.temenos.com/T24/inflow/InFlowEnhTest2/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflowDesign
../../../InFlowEnhTest2/schemas/NewInflowDesign/InFlowEnhTest2-ContainerNewInflowDesign.xsd ">
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM21</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140103" index="">
<p:relationCodeGroupParent>
<p:relationCodeGroup index="1">
<p:relDelivOptSubGroupParent>
<p:relDelivOptSubGroup index="2">
<p:role xsi:nil="true" />
</p:relDelivOptSubGroup>
</p:relDelivOptSubGroupParent>
</p:relationCodeGroup>
</p:relationCodeGroupParent>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflow
Design" xmlns:p="http://www.temenos.com/T24/inflow/InFlowEnhTest2/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInf
lowDesign ../../../InFlowEnhTest2/schemas/NewInflowDesign/InFlowEnhTest2-
ContainerNewInflowDesign.xsd ">
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM19</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140101" index="">
<p:relationCodeGroupParent>
<p:relationCodeGroup index="1">
<p:relationCode>1</p:relationCode>
<p:relCustomer>190185</p:relCustomer>
<p:relDelivOptSubGroupParent>
<p:relDelivOptSubGroup index="1">
<p:relDelivOpt>-</p:relDelivOpt>
</p:relDelivOptSubGroup>
<p:relDelivOptSubGroup index="2">
<p:relDelivOpt>A.2</p:relDelivOpt>
<p:role>20</p:role>
<p:roleMoreInfo>Print2</p:roleMoreInfo>
<p:roleNotes>Notes2</p:roleNotes>
</p:relDelivOptSubGroup>
<p:relDelivOptSubGroup index="3">
<p:relDelivOpt>A.3</p:relDelivOpt>
<p:role>30</p:role>
<p:roleMoreInfo>Print3</p:roleMoreInfo>
<p:roleNotes>Notes3</p:roleNotes>
</p:relDelivOptSubGroup>
</p:relDelivOptSubGroupParent>
</p:relationCodeGroup>
</p:relationCodeGroupParent>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
Delete all the subgroup fields from one associated multi value set:
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInflow
Design" xmlns:p="http://www.temenos.com/T24/inflow/InFlowEnhTest2/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/InFlowEnhTest2/ContainerNewInf
lowDesign ../../../InFlowEnhTest2/schemas/NewInflowDesign/InFlowEnhTest2-
ContainerNewInflowDesign.xsd ">
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>with pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>ZMULREM20</p1:messageId>
</p:requestCommon>
</p:requestCommonDetails>
<p:customercreation_cc id="140102" index="">
<p:relationCodeGroupParent>
<p:relationCodeGroup index="1">
<p:relDelivOptSubGroupParent>
<p:relDelivOptSubGroup index="1">
<p:relDelivOpt xsi:nil="true"/>
<p:role xsi:nil="true"/>
<p:roleMoreInfo xsi:nil="true"/>
<p:roleNotes xsi:nil="true"/>
</p:relDelivOptSubGroup>
<p:relDelivOptSubGroup index="2">
<p:relDelivOpt>-</p:relDelivOpt>
</p:relDelivOptSubGroup>
<p:relDelivOptSubGroup index="3">
<p:relDelivOpt>-</p:relDelivOpt>
</p:relDelivOptSubGroup>
</p:relDelivOptSubGroupParent>
</p:relationCodeGroup>
</p:relationCodeGroupParent>
</p:customercreation_cc>
</p:NewInflowDesign>
</container:inflowRequest>
</container:inflowContainer>
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/UpdateAccount/ContainerNewInflowDe
sign" xmlns:p="http://www.temenos.com/T24/inflow/UpdateAccount/NewInflowDesign"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:p10="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarragentcommissionaa_r
ewards.points"
xmlns:p11="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrbalancemaintenancea
a_balance.maintenance"
xmlns:p12="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchangeproductaa_ren
ewal"
xmlns:p13="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchargeaa_withdrawal
fees"
xmlns:p14="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchargeoverrideaa_ch
arge.override"
xmlns:p15="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrclosureaa_closure"
xmlns:p16="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrcustomeraadeposit_c
ustomer"
xmlns:p17="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrinterestaa_depositi
nt"
xmlns:p18="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrofficersaa_officers
"
xmlns:p19="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrpaymentrulesaa_pr.d
eposit"
xmlns:p2="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrangementactivity"
xmlns:p20="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrpaymentscheduleaatd
_schedule"
xmlns:p21="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrreportingaa_reporti
ng"
xmlns:p22="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrsettlementaabasicsa
d_settlement"
xmlns:p23="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrtermamountaa_commit
ment" xmlns:p24="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrtaxaa_tax"
xmlns:p3="http://www.temenos.com/T24/inflow/Common/dataTypes"
xmlns:p4="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchargeaafixed_redemp
tionfee"
xmlns:p5="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarrchargeaaroutine_with
drawalfee"
xmlns:p6="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarraccountaa_account"
xmlns:p7="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarractivitymessagingaa_
messaging"
xmlns:p8="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarractivityrestrictiona
a_arrangement.rules"
xmlns:p9="http://www.temenos.com/T24/inflow/NewInflowDesign/aaarragentcommissionaa_ag
ent.commission" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/UpdateAccount/ContainerNewInflo
wDesign UpdateAccount-ContainerNewInflowDesign.xsd ">
<container:containerId/>
<container:containerTimestamp/>
<container:containerDataSource/>
<container:bulkIndicator/>
<container:tenantId/>
<container:inflowRequest>
<p:NewInflowDesign>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>no pw</p1:requestType>
<p1:companyCode/>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>AA0051</p1:messageId>
<p1:timestamp/>
<p1:transactionMode/>
<p1:replace/>
<p1:replaceFieldIndicator/>
<p1:sequenceNumber/>
<p1:customCommon name=""/>
</p:requestCommon>
</p:requestCommonDetails>
<p:aaarrangementactivityupdateaccountDetails id="" index="">
<p:aaarrangementactivity>
<p2:aaArrangementActivityarrangement>AA19107QLBL1</p2:aaArrangementActivityarra
ngement>
<p2:aaArrangementActivitycustomerGroupParent>
<p2:aaArrangementActivitycustomerGroup index="1">
<p2:aaArrangementActivitycustomer>100285</p2:aaArrangementActivitycustomer>
</p2:aaArrangementActivitycustomerGroup>
</p2:aaArrangementActivitycustomerGroupParent>
<p2:aaArrangementActivitycurrency>USD</p2:aaArrangementActivitycurrency>
</p:aaarrangementactivity>
<p:aaarrsettlementaabasicsad_settlement>
<p22:aaArrSettlementaaBasicsAdpayinSettlementGroupParent>
<p22:aaArrSettlementaaBasicsAdpayinSettlementGroup
index="0">
<p22:aaArrSettlementaaBasicsAdddMandateRefSubGroupParent>
<p22:aaArrSettlementaaBasicsAdddMandateRefSubGroup index="0">
<p22:aaArrSettlementaaBasicsAdpayinAccount>87588</p22:aaArrSettlementaaBasicsAd
payinAccount>
</p22:aaArrSettlementaaBasicsAdddMandateRefSubGroup>
</p22:aaArrSettlementaaBasicsAdddMandateRefSubGroupParent>
</p22:aaArrSettlementaaBasicsAdpayinSettlementGroup>
</p22:aaArrSettlementaaBasicsAdpayinSettlementGroupParent>
<p22:aaArrSettlementaaBasicsAdpayoutSettlementGroupParent>
<p22:aaArrSettlementaaBasicsAdpayoutSettlementGroup
index="1">
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroupParent>
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup index="1">
<p22:aaArrSettlementaaBasicsAdpayoutAccount>87588</p22:aaArrSettlementaaBasicsA
dpayoutAccount>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup>
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup index="2">
<p22:aaArrSettlementaaBasicsAdpayoutAccount>87618</p22:aaArrSettlementaaBasicsA
dpayoutAccount>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup>
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup index="3">
<p22:aaArrSettlementaaBasicsAdpayoutAccount>|-
|</p22:aaArrSettlementaaBasicsAdpayoutAccount>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup>
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup index="4">
<p22:aaArrSettlementaaBasicsAdpayoutAccount>|-
|</p22:aaArrSettlementaaBasicsAdpayoutAccount>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup>
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup index="5">
<p22:aaArrSettlementaaBasicsAdpayoutAccount>|-
|</p22:aaArrSettlementaaBasicsAdpayoutAccount>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup>
<p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup index="6">
<p22:aaArrSettlementaaBasicsAdpayoutAccount>87734</p22:aaArrSettlementaaBasicsA
dpayoutAccount>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroup>
</p22:aaArrSettlementaaBasicsAdpayoutAccountSubGroupParent>
</p22:aaArrSettlementaaBasicsAdpayoutSettlementGroup>
</p22:aaArrSettlementaaBasicsAdpayoutSettlementGroupParent>
</p:aaarrsettlementaabasicsad_settlement>
</p:aaarrangementactivityupdateaccountDetails>
</p:NewInflowDesign>
</container:inflowRequest>
<container:containerCustomCommon name=""/>
</container:inflowContainer>
Multi-Tenant
T24 TRANSACT – TAFJ multitenant architecture allows running multiple tenants within same application
deployment. All participants share same application server resources and T24 / TAFJ code base but use
separated databases and configurations. JMS resources are shared and do not differ from a regular
deployment. A common “master” database is used for T24 TRANSACT – TAFJ configuration. This
database is not used for business purpose.
The multitenant mode must be enabled through specific configuration. For these configurations, refer
TAFJ-Multitenant user guide.
Multi-Tenant in Inflow
In inflow, Multi-tenancy is supported via a Non-ESB solution (through the JMS queue). Certain
configurations are to be done so that the request is routed to the specific tenant. To get an overview of
inflow refer inflow user guide.
Since the concept of Multi tenancy is at the repository (Database) level where each tenant has its own
Database layer, application server specific configurations remains the same as mentioned in Inflow user
guide.
Following section provides the necessary configuration that needs to be done in order to test Multi
tenancy in inflow. With respect to Multi tenancy in Inflow configurations are to be done only at the
deployable artefact (i.e. Inflow_EE.ear)
A sample configuration in ejb-jar.xml has been mentioned below for two tenants and 1 master Database.
<session>
<ejb-name>InflowListenerEjbTimer1</ejb-name>
<ejb-class>com.temenos.technology.Inflow.listener.ejb.InflowListener</ejb-class>
<session-type>Singleton</session-type>
<timer>
<schedule>
<second>0/5</second>
<minute>*</minute>
<hour>*</hour>
</schedule>
<timeout-method>
<method-name>pollForInflowMessage</method-name>
<method-params>
<method-param>javax.ejb.Timer</method-param>
</method-params>
</timeout-method>
<persistent>false</persistent>
</timer>
<transaction-type>Bean</transaction-type>
<env-entry>
<description>Min no of messages to be processed at a time</description>
<env-entry-name>MinInflowPollSize</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
<env-entry>
<description>Max no of messages to be processed at a time</description>
<env-entry-name>MaxInflowPollSize</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>15</env-entry-value>
</env-entry>
<env-entry>
<description>Wait time before processing the same record</description>
<env-entry-name>WaitTime</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>30</env-entry-value>
</env-entry>
<resource-ref>
<description>Used to get connections from T24 jdbc pool</description>
<res-ref-name>jdbc/t24DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
170 Madhioli Duraisamy /Technology
</resource-ref>
</session>
Inflow User Guide
<session>
<ejb-name>InflowListenerEjbTimer2</ejb-name>
<ejb-class>com.temenos.technology.Inflow.listener.ejb.InflowListener</ejb-class>
<session-type>Singleton</session-type>
<timer>
<schedule>
<second>0/5</second>
<minute>*</minute>
<hour>*</hour>
</schedule>
<timeout-method>
<method-name>pollForInflowMessage</method-name>
<method-params>
<method-param>javax.ejb.Timer</method-param>
</method-params>
</timeout-method>
<persistent>false</persistent>
</timer>
<transaction-type>Bean</transaction-type>
<env-entry>
<description>Min no of messages to be processed at a time</description>
<env-entry-name>MinInflowPollSize</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
<env-entry>
<description>Max no of messages to be processed at a time</description>
<env-entry-name>MaxInflowPollSize</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>15</env-entry-value>
</env-entry>
<env-entry>
<description>Wait time before processing the same record</description>
<env-entry-name>WaitTime</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>30</env-entry-value>
</env-entry>
<env-entry>
<description>Tenant Id</description>
<env-entry-name>tenantId</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>t1</env-entry-value>
</env-entry>
171 Madhioli Duraisamy /Technology
</session>
Inflow User Guide
<session>
<ejb-name>InflowListenerEjbTimer3</ejb-name>
<ejb-class>com.temenos.technology.Inflow.listener.ejb.InflowListener</ejb-class>
<session-type>Singleton</session-type>
<timer>
<schedule>
<second>0/5</second>
<minute>*</minute>
<hour>*</hour>
</schedule>
<timeout-method>
<method-name>pollForInflowMessage</method-name>
<method-params>
<method-param>javax.ejb.Timer</method-param>
</method-params>
</timeout-method>
<persistent>false</persistent>
</timer>
<transaction-type>Bean</transaction-type>
<env-entry>
<description>Min no of messages to be processed at a time</description>
<env-entry-name>MinInflowPollSize</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
<env-entry>
<description>Tenant Id</description>
<env-entry-name>tenantId</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>t2</env-entry-value>
</env-entry>
</session>
<session>
<ejb-name>InflowFailureRecoveryEjbTimer1</ejb-name>
<ejb-class>com.temenos.technology.Inflow.failure.recovery.ejb.InflowFailureRecoveryTimer </ejb-
class>
<session-type>Singleton</session-type>
<timer>
<schedule>
<second>0/5</second>
<minute>*</minute>
<hour>*</hour>
</schedule>
<timeout-method>
<method-name>pollForFailedRetriableMessage</method-name>
<method-params>
<method-param>javax.ejb.Timer</method-param>
</method-params>
</timeout-method>
<persistent>false</persistent>
</timer>
<transaction-type>Bean</transaction-type>
<env-entry>
<description>Wait time before processing the same record</description>
<env-entry-name>RetryWaitTime</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>30</env-entry-value>
</env-entry>
<env-entry>
<description>Maximum number of times a failed message is eligible for
processing</description>
<env-entry-name>RetryCount</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>3</env-entry-value>
</env-entry>
<resource-ref>
<description>Used to get connections from T24 jdbc pool</description>
<res-ref-name>jdbc/t24DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
<session>
<ejb-name>InflowFailureRecoveryEjbTimer2</ejb-name>
<ejb-class>com.temenos.technology.Inflow.failure.recovery.ejb.InflowFailureRecoveryTimer </ejb-
class>
<session-type>Singleton</session-type>
<timer>
<schedule>
<second>0/5</second>
<minute>*</minute>
<hour>*</hour>
</schedule>
<timeout-method>
<method-name>pollForFailedRetriableMessage</method-name>
<method-params>
<method-param>javax.ejb.Timer</method-param>
</method-params>
</timeout-method>
<persistent>false</persistent>
</timer>
<transaction-type>Bean</transaction-type>
<env-entry>
<description>Wait time before processing the same record</description>
<env-entry-name>RetryWaitTime</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>30</env-entry-value>
</env-entry>
<env-entry>
<description>Maximum number of times a failed message is eligible for
processing</description>
<env-entry-name>RetryCount</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>3</env-entry-value>
</env-entry>
<env-entry>
<description>Tenant Id</description>
<env-entry-name>tenantId</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>t1</env-entry-value>
</env-entry>
</session>
<session>
<ejb-name>InflowFailureRecoveryEjbTimer3</ejb-name>
<ejb-class>com.temenos.technology.Inflow.failure.recovery.ejb.InflowFailureRecoveryTimer </ejb-
class>
<session-type>Singleton</session-type>
<timer>
<schedule>
<second>0/5</second>
<minute>*</minute>
<hour>*</hour>
</schedule>
<timeout-method>
<method-name>pollForFailedRetriableMessage</method-name>
<method-params>
<method-param>javax.ejb.Timer</method-param>
</method-params>
</timeout-method>
<persistent>false</persistent>
</timer>
<transaction-type>Bean</transaction-type>
<env-entry>
<description>Wait time before processing the same record</description>
<env-entry-name>RetryWaitTime</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>30</env-entry-value>
</env-entry>
<env-entry>
<description>Maximum number of times a failed message is eligible for
processing</description>
<env-entry-name>RetryCount</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>3</env-entry-value>
</env-entry>
<env-entry>
<description>Tenant Id</description>
<env-entry-name>tenantId</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>t2</env-entry-value>
</env-entry>
</session>
<session>
<ejb-name>InflowListenerEjbTimer1</ejb-name>
<resource-ref>
<res-ref-name>jdbc/t24DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/jdbc/t24DS</jndi-name>
</resource-ref>
</session>
<session>
<ejb-name>InflowFailureRecoveryEjbTimer1</ejb-name>
<resource-ref>
<res-ref-name>jdbc/t24DataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/jdbc/t24DS</jndi-name>
</resource-ref>
</session>
For JBoss In the above mentioned configurations we have two tenants (say t1 and t2) and a master
database whose Data Source mapping is been done in ejb-jar.xml and jboss-ejb3.xml .
Inflow with PW
Below attached is a sample Request.xml
<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/testInflow/ContainerwithPwFinal"
xmlns:p="http://www.temenos.com/T24/inflow/testInflow/withPwFinal"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/testInflow/ContainerwithPwFinal
testInflow-ContainerwithPwFinal.xsd ">
<container:containerId></container:containerId>
<container:containerTimestamp></container:containerTimestamp>
<container:containerDataSource></container:containerDataSource>
<container:inflowRequest>
<p:withPwFinal>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>With Pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>9191</p1:messageId>
<p1:tenantId>t1</p1:tenantId>
<p1:timestamp></p1:timestamp>
<p1:transactionMode></p1:transactionMode>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
</p:requestCommonDetails>
<p:createcrcontactlog_cccl id="" index="">
<p:mnemonic>KALAI</p:mnemonic>
<p:name1List>
<p:name1 language="">ROCKSON</p:name1>
</p:name1List>
<p:shortNameList>
<p:shortName language="">KALAIROC</p:shortName>
</p:shortNameList>
<p:sector>1001</p:sector>
<p:language>1</p:language>
</p:createcrcontactlog_cccl>
<p:amendcrcontactlog id="" index="">
<p:customer>100100</p:customer>
<p:currency>USD</p:currency>
<p:category>1001</p:category>
</p:amendcrcontactlog>
</p:withPwFinal>
</container:inflowRequest>
<container:containerCustomCommon name=""></container:containerCustomCommon>
</container:inflowContainer>
Inflow without PW
Below attached is a sample Request.xml
<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer
xmlns:container="http://www.temenos.com/T24/inflow/testFinal/ContainerInflowNoPwFinal
" xmlns:p="http://www.temenos.com/T24/inflow/testFinal/InflowNoPwFinal"
xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.temenos.com/T24/inflow/testFinal/ContainerInflowNoPwFi
nal testFinal-ContainerInflowNoPwFinal.xsd ">
<container:containerId></container:containerId>
<container:containerTimestamp></container:containerTimestamp>
<container:containerDataSource></container:containerDataSource>
<container:inflowRequest>
<p:InflowNoPwFinal>
<p:requestCommonDetails>
<p:requestCommon>
<p1:requestType>No pw</p1:requestType>
<p1:companyCode>GB0010001</p1:companyCode>
<p1:userName>SSOUSER1</p1:userName>
<p1:messageId>45433</p1:messageId>
<p1:tenantId>t1</p1:tenantId>
<p1:timestamp></p1:timestamp>
<p1:transactionMode></p1:transactionMode>
<p1:customCommon name=""></p1:customCommon>
</p:requestCommon>
</p:requestCommonDetails>
<p:accountafinput id="" index="">
<p:customer>100100</p:customer>
<p:category>1001</p:category>
<p:currency>USD</p:currency>
</p:accountafinput>
</p:InflowNoPwFinal>
</container:inflowRequest>
<container:containerCustomCommon name=""></container:containerCustomCommon>
</container:inflowContainer>
Generic-OFS
Below attached is a sample Request.xml
<?xml version="1.0" encoding="utf-8"?>
<inflowContainer
xmlns="http://www.temenos.com/T24/inflow/Generic/ContainerOFS"
xmlns:ns0="http://www.temenos.com/T24/inflow/Common/RequestCommon">
<containerId>12</containerId>
<containerTimestamp>12</containerTimestamp>
<containerDataSource>testGenericOFS</containerDataSource>
<inflowRequest>
<OFS xmlns="http://www.temenos.com/T24/inflow/Generic/OFS">
<requestCommonDetails>
<requestCommon>
<ns0:companyCode>GB0010001</ns0:companyCode>
<ns0:userName>SSOUSER1</ns0:userName>
<ns0:messageId>00201</ns0:messageId>
<ns0:requestType>generic-ofs</ns0:requestType>
<ns0:tenantId>t1</ns0:tenantId>
<ns0:timestamp/>
<ns0:transactionMode/>
<ns0:customCommon name="TEST"/>
</requestCommon>
</requestCommonDetails>
<ofsRequestsDetails>
<ofsRequests>ACCOUNT,/I/PROCESS//,SSOUSER1//GB0010001///,,CUSTOMER:1:1=100113,C
URRENCY:1:1=USD,CATEGORY:1:1=1001</ofsRequests>
</ofsRequestsDetails>
</OFS>
</inflowRequest>
<containerCustomCommon/>
</inflowContainer>
Reference
T24 Custom Outbound Adapter for IIB to know how to configure and use IIB outbound adapter
Event Designer user guide for detailed steps to define and publish events to T24.
Process workflow user guide for detailed steps to design process definition, activities, mapping
fields, state transitions etc.
TAFJ Multitenant user guide for setting up multi tenancy in TAFJ