Event Framework
R24 AMR | Min(s) read

Inflow Acknowledgement

For Non-ESB XML messages, Inflow Acknowledgement is the process of providing an acknowledgement to the queue whether the request provided (Process based, Application based and Generic OFS) is staged to the staging table (IF_INFLOW_MESSAGE). The below configuration is available in the latest UTP standalone-utp.xml to send an acknowledgement to the queue.

<jms-queue name="inflowAcknowledgement” entries="queue/inflowAcknowledgement java:jboss/exported/inflowAcknowledgement"/>

Also, queue configuration readily available in InflowMDB ejb-jar.xml and jboss-ejb3.xml.

By default, for Non-ESB XML requests, we provide the acknowledgement as the entry for enableInflowAcknowledgement is set to true.

ejb-jar.xml

jboss-ejb3.xml

When the application server starts, the below configuration is available in UI.

  • For any valid failure-acknowledgement, the acknowledgement to the queue is sent till the message available in Inflow Queue.
  • To provide a failure acknowledgement, there should not be any container level exceptions. For any container-level exceptions, such as, MessageParse exceptions, INVALID (empty) messageId or null messageID, does not provide any acknowledgement for the failure, instead failure logs are updated properly in inflow.log.

Success Acknowledgement

The sample success acknowledgment scenarios are mentioned below:

Scenario 1: Single Process Based Request Available in a Container

When a request is produced to INFLOW Queue through NON-ESB-XML message, the corresponding acknowledgement is sent for the process-based request. In this scenario, since only one message is available in a container named CONTAINER01, the single acknowledgment is sent when the request is loaded to the staging table.

<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer xmlns:container="http://www.temenos.com/T24/inflow/InflowAcknowledgement/ContainerTestAck" xmlns:p="http://www.temenos.com/T24/inflow/InflowAcknowledgement/TestAck" 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/InflowAcknowledgement/ContainerTestAck InflowAcknowledgement-ContainerTestAck.xsd ">
  <container:containerId>CONTAINER01</container:containerId>
  <container:containerTimestamp></container:containerTimestamp>
  <container:containerDataSource></container:containerDataSource>
  <container:bulkIndicator></container:bulkIndicator>
  <container:tenantId></container:tenantId>
  <container:inflowRequest>
   <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1008</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1008</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
  </container:inflowRequest>
  <container:containerCustomCommon name=""></container:containerCustomCommon>
</container:inflowContainer>

Now, start consuming the message available in inflowAcknowledgement queue.

Scenario 2: Multiple Process Based Requests Available in a Container

For example, if five process based requests are available in a container named CONTAINER01, each of these five process based requests are staged to the IF_INFLOW_MESSAGE, which results in receiving five acknowledgement messages in a container.

<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer xmlns:container="http://www.temenos.com/T24/inflow/InflowAcknowledgement/ContainerTestAck" xmlns:p="http://www.temenos.com/T24/inflow/InflowAcknowledgement/TestAck" 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/InflowAcknowledgement/ContainerTestAck InflowAcknowledgement-ContainerTestAck.xsd ">
  <container:containerId>CONTAINER01</container:containerId>
  <container:containerTimestamp></container:containerTimestamp>
  <container:containerDataSource></container:containerDataSource>
  <container:bulkIndicator></container:bulkIndicator>
  <container:tenantId></container:tenantId>
  <container:inflowRequest>
   <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1009</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1009</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
     <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1010</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1010</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
     <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1011</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1011</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
     <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1012</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1012</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
     <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1013</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1013</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
  </container:inflowRequest>
  <container:containerCustomCommon name=""></container:containerCustomCommon>
</container:inflowContainer>

Now, start consuming the messages available in inflowAcknowledgement queue.

Scenario 3: BULK Process Based Request Available in a Container

For example, if three process based requests are available in a container named BULKCONTAINER, with bulkIndicator set as yes, then these three process based requests are staged as a single bulk message with messageId as bulkMessageId. It results in receiving a single bulk acknowledgement message in any container.

More than 10 requests cannot be handled in Bulk Inflow. If more than 10 requests are sent in a bulk inflow, the corresponding request is staged and later moves to failed table. The requests that moves to failed table cannot be retried.
<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer xmlns:container="http://www.temenos.com/T24/inflow/InflowAcknowledgement/ContainerTestAck" xmlns:p="http://www.temenos.com/T24/inflow/InflowAcknowledgement/TestAck" 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/InflowAcknowledgement/ContainerTestAck InflowAcknowledgement-ContainerTestAck.xsd ">
  <container:containerId>BULKCONTAINER</container:containerId>
  <container:containerTimestamp></container:containerTimestamp>
  <container:containerDataSource></container:containerDataSource>
  <container:bulkIndicator>yes</container:bulkIndicator>
  <container:tenantId></container:tenantId>
  <container:inflowRequest>
   <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1014</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1014</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
     <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1015</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1015</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
    <p:TestAck>
      <p:requestCommonDetails>
        <p:requestCommon>
          <p1:requestType>process-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>1016</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:createcustomer_cc id="" index="">
        <p:language>1</p:language>
        <p:mnemonic>TEST1016</p:mnemonic>
        <p:name1List>
          <p:name1 language="">ACKTEST</p:name1>
        </p:name1List>
        <p:sector>1001</p:sector>
        <p:shortNameList>
          <p:shortName language="">ACK</p:shortName>
        </p:shortNameList>
      </p:createcustomer_cc>
      <p:createaccount_ca id="" index="">
        <p:currency>USD</p:currency>
        <p:customer>100100</p:customer>
        <p:category>1004</p:category>
      </p:createaccount_ca>
    </p:TestAck>
  </container:inflowRequest>
  <container:containerCustomCommon name="bulkMessageId">PROCESSBASEDBULKACK01</container:containerCustomCommon>
</container:inflowContainer>

Now, start consuming the message available in inflowAcknowledgement queue.

The above mentioned scenario is applicable for application based and GENERIC OFS based inflows.

Scenario 4: Multiple Application Based Requests Available in a Container

For example, if two application based requests are available in a container named CONTAINER01, each of these two application based requests are staged to IF_INFLOW_MESSAGE, which results in receiving two acknowledgement messages in a container.

<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer xmlns:container="http://www.temenos.com/T24/inflow/AcctAgg/ContainerupdateAccountList" 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/2001/XMLSchema-instance" xsi:schemaLocation="http://www.temenos.com/T24/inflow/AcctAgg/ContainerupdateAccountList AcctAgg-ContainerupdateAccountList.xsd ">
  <container:containerId>CONTAINER01</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>application-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>devTest01</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:receiveaccountlist_ral id="100148" 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>application-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>desTest02</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:receiveaccountlist_ral id="100148" 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=""></container:containerCustomCommon>
</container:inflowContainer>

Now, start consuming the messages available in inflowAcknowledgement queue.

Scenario 5: BULK Application Based Request Available in a Container

For example, if two application based requests are available in a container named BULKCONTAINER with bulkIndicator set as yes, then these two application based requests stages as a single bulk message with messageId as bulkMessageId. It results in receiving a single bulk acknowledgement message in any container.

More than 10 requests cannot be handled in Bulk Inflow. If more than 10 requests are sent in a bulk inflow, the corresponding request is staged and later moves to failed table. The requests that moves to failed table cannot be retried.
<?xml version="1.0" encoding="UTF-8"?>
<container:inflowContainer xmlns:container="http://www.temenos.com/T24/inflow/AcctAgg/ContainerupdateAccountList" 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/2001/XMLSchema-instance" xsi:schemaLocation="http://www.temenos.com/T24/inflow/AcctAgg/ContainerupdateAccountList AcctAgg-ContainerupdateAccountList.xsd ">
  <container:containerId>BULKCONTAINER</container:containerId>
  <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>application-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>devTest03</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:receiveaccountlist_ral id="100148" 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>application-based</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>desTest04</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name=""></p1:customCommon>
        </p:requestCommon>
      </p:requestCommonDetails>
      <p:receiveaccountlist_ral id="100148" 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">APPLICATIONBASEDBULKACK01</container:containerCustomCommon>
</container:inflowContainer>

Now, start consuming the messages available in inflowAcknowledgement queue.

Scenario 6: Multiple GENERIC OFS Requests Available in a Container

For example, if two Generic OFS requests are available in a container named CONTAINER01, then each of these two GENERIC OFS requests are staged to IF_INFLOW_MESSAGE, which results in receiving two acknowledgement message in a container.

<?xml version="1.0" encoding="utf-8"?>
<inflowContainer xmlns="http://www.temenos.com/T24/inflow/Generic/ContainerOFS" xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon">
  <containerId>CONTAINER01</containerId>
  <containerTimestamp></containerTimestamp>
  <containerDataSource>testGenericOFS</containerDataSource>
  <bulkIndicator></bulkIndicator>
  <tenantId></tenantId>
  <inflowRequest>
    <OFS xmlns="http://www.temenos.com/T24/inflow/Generic/OFS">
      <requestCommonDetails>
        <requestCommon>
          <p1:requestType>generic-ofs</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>sample04</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name="TEST"></p1:customCommon>
        </requestCommon>
      </requestCommonDetails>
      <ofsRequestsDetails> <ofsRequests>CUSTOMER,/I/PROCESS,INPUTT/123456,,MNEMONIC:1:1=SOFS4,SHORT.NAME:1:1=FOO1,NAME.1:1:1=FOOTEST1,SECTOR:1:1=1001,LANGUAGE:1:1=1</ofsRequests></ofsRequestsDetails>
      </OFS>
        <OFS xmlns="http://www.temenos.com/T24/inflow/Generic/OFS">
      <requestCommonDetails>
        <requestCommon>
          <p1:requestType>generic-ofs</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>sample05</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name="TEST"></p1:customCommon>
        </requestCommon>
      </requestCommonDetails>
      <ofsRequestsDetails> <ofsRequests>CUSTOMER,/I/PROCESS,INPUTT/123456,,MNEMONIC:1:1=SOFS5,SHORT.NAME:1:1=FOO1,NAME.1:1:1=FOOTEST1,SECTOR:1:1=1001,LANGUAGE:1:1=1</ofsRequests></ofsRequestsDetails>
      </OFS>
  </inflowRequest>
  <containerCustomCommon></containerCustomCommon>
</inflowContainer>

Now, start consuming the messages available in inflowAcknowledgement queue.

Scenario 7: BULK Generic OFS Request Available in a Container

For example, if two generic-OFS requests are available in a container named BULKCONTAINER with bulkIndicator set as yes, then these two OFS requests are staged as a single bulk message with messageId as bulkMessageId. It results in receiving a single bulk acknowledgement message in any container.

More than 10 requests cannot be handled in Bulk Inflow. If more than 10 requests are sent in a bulk inflow, the corresponding request is staged and later moves to failed table. The requests that moves to failed table cannot be retried.
<?xml version="1.0" encoding="utf-8"?>
<inflowContainer xmlns="http://www.temenos.com/T24/inflow/Generic/ContainerOFS" xmlns:p1="http://www.temenos.com/T24/inflow/Common/RequestCommon">
  <containerId>BULKCONTAINER</containerId>
  <containerTimestamp></containerTimestamp>
  <containerDataSource>testGenericOFS</containerDataSource>
  <bulkIndicator>yes</bulkIndicator>
  <tenantId></tenantId>
  <inflowRequest>
    <OFS xmlns="http://www.temenos.com/T24/inflow/Generic/OFS">
      <requestCommonDetails>
        <requestCommon>
          <p1:requestType>generic-ofs</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>sample06</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name="TEST"></p1:customCommon>
        </requestCommon>
      </requestCommonDetails>
      <ofsRequestsDetails> <ofsRequests>CUSTOMER,/I/PROCESS,INPUTT/123456,,MNEMONIC:1:1=SOFS6,SHORT.NAME:1:1=FOO1,NAME.1:1:1=FOOTEST1,SECTOR:1:1=1001,LANGUAGE:1:1=1</ofsRequests></ofsRequestsDetails>
      </OFS>
        <OFS xmlns="http://www.temenos.com/T24/inflow/Generic/OFS">
      <requestCommonDetails>
        <requestCommon>
          <p1:requestType>generic-ofs</p1:requestType>
          <p1:companyCode>GB0010001</p1:companyCode>
          <p1:userName>SSOUSER1</p1:userName>
          <p1:messageId>sample07</p1:messageId>
          <p1:timestamp></p1:timestamp>
          <p1:transactionMode></p1:transactionMode>
          <p1:replace></p1:replace>
          <p1:replaceFieldIndicator></p1:replaceFieldIndicator>
          <p1:sequenceStart></p1:sequenceStart>
          <p1:sequencePace></p1:sequencePace>
          <p1:currentSequence></p1:currentSequence>
          <p1:sequenceCheckType></p1:sequenceCheckType>
          <p1:customCommon name="TEST"></p1:customCommon>
        </requestCommon>
      </requestCommonDetails>
      <ofsRequestsDetails> <ofsRequests>CUSTOMER,/I/PROCESS,INPUTT/123456,,MNEMONIC:1:1=SOFS7,SHORT.NAME:1:1=FOO1,NAME.1:1:1=FOOTEST1,SECTOR:1:1=1001,LANGUAGE:1:1=1</ofsRequests></ofsRequestsDetails>
      </OFS>
  </inflowRequest>
  <containerCustomCommon name="bulkMessageId">GENERICOFSBULKACK01</containerCustomCommon>
</inflowContainer>

Now, start consuming the messages available in inflowAcknowledgement queue.

Failure Acknowledgement

If messageId exceeds the length of 65 characters, it throws DataIntegrity Exception.

The sample failure acknowledgment scenarios are mentioned below:

Scenario 1: Only One Request Available in a Container

If only one process based request is available in a container and its messageId exceeds the length of 65 characters, the corresponding request is staged and an acknowledgement for the failure is sent to the acknowledgement queue, as shown below.

As long as the request is available in Inflow queue, it retries and an acknowledgment is sent for each retried message.

Scenario 2: Multiple Request Available in a Container

If multiple process based request is available in a container (say 5) and one of the request’s messageId exceeds the length of 65 characters, the entire container cannot be staged (even though the remaining requests parsed successfully) and an acknowledgement for the failure is sent to the acknowledgement queue, as shown below.

Copyright © 2020- Temenos Headquarters SA

Published on :
Monday, May 27, 2024 4:29:33 PM IST