How to run the example

This mx-mt translation will use the sample files to demonstrate the generation of SWIFT MT940 message output from a CBPR+ camt.053.001.08 XML message.

The cbprJnodesConfigIBM.tar.gz file is available either in IBM_financialpaymentsplus_vn.n.n.n.zip or in UIProjectImports directory.

Extract from cbprJnodesConfigIBM.tar.gz file.
  • jnodes0.jar
The following jars needs to be copied from <TX_install_dir>/jars:
  • jackson-core-n.n.n.jar
  • jackson-annotations-n.n.n.jar
  • jackson-databind-n.n.n.jar
Or visit https://repo1.maven.org/maven2/com/fasterxml/jackson/core/ for download.
Note: Recommend using latest version.
For the non Docker environments:
  • Copy jars to <TX_install_dir>/extjar.
For the Docker environments
  • Docker cp jnodes0.jar tx-server:/opt/ibm/wsdtx/libs/.
  • Restart the design server, i.e., docker restart <brand>-server.

This example may generate stopTranslation.json log file to report the translation failure due to the pre-conversion checks:

<ElctrncSeqNb> must be present in <BkToCstmrStmt><Stmt><ElctrncSeqNb> and its length must be less than or equal to 5.

OR

<LglSeqNb> must be present in <BkToCstmrStmt><Stmt><LglSeqNb> and its length must be less than or equal to 5.

If <PgNb> in <BkToCstmrStmt><Stmt><StmtPgntn><PgNb> is equal to 1 then there must be only 1 occurrence of <Cd> with value OPBD in

<BkToCstmrStmt><Stmt><Bal><Tp><CdOrPrtry><Cd> and if <Cd> is present in <BkToCstmrStmt><Stmt><Bal><Tp><SubTp><Cd>, then value must be different from INTM.

If <PgNb> in <BkToCstmrStmt><Stmt><StmtPgntn><PgNb> is greater than 1 then there must be only 1 occurrence of <Cd> with value OPBD in

<BkToCstmrStmt><Stmt><Bal><Tp><CdOrPrtry><Cd> and <Cd> must be present in <BkToCstmrStmt><Stmt><Bal><Tp><SubTp><Cd>, value must be INTM.

If <LastPgInd> in <BkToCstmrStmt><Stmt><StmtPgntn><LastPgInd> is equal to true then there must be only 1 occurrence of <Cd> with value CLBD in

<BkToCstmrStmt><Stmt><Bal><Tp><CdOrPrtry><Cd> and if <Cd> is present in <BkToCstmrStmt><Stmt><Bal><Tp><SubTp><Cd>, then value must be different from INTM.

If <LastPgInd> in <BkToCstmrStmt><Stmt><StmtPgntn><LastPgInd> is equal to false then there must be only 1 occurrence of <Cd> with value CLBD in

<BkToCstmrStmt><Stmt><Bal><Tp><CdOrPrtry><Cd> and <Cd> must be present in <BkToCstmrStmt><Stmt><Bal><Tp><SubTp><Cd>, value must be INTM.

There must be only 1 occurrence of <Cd> with value CLAV in <BkToCstmrStmt><Stmt><Bal><Tp><CdOrPrtry><Cd>.

There must be maximum 190 occurrence of <Ntry> in <BkToCstmrStmt><Stmt><Ntry>.

For all occurrence of <BkToCstmrStmt><Stmt><Ntry>, value of <Ccy> in @<BkToCstmrStmt><Stmt><Ntry><Amt><Ccy> must be equal to value of <Ccy> in <BkToCstmrStmt><Stmt><Acct><Ccy>, TotalNumberOfDigits <BkToCstmrStmt><Stmt><Ntry><Amt> must be less than or equal to 14.

For the occurrence of <BkToCstmrStmt><Stmt><Bal>, if <Cd> is present with value OPBD in

<BkToCstmrStmt><Stmt><Bal><Tp><CdOrPrtry><Cd> then first two char of currency code must be the same for other occurrence of <BkToCstmrStmt><Stmt><Bal> in <BkToCstmrStmt><Stmt><Bal><Tp><CdOrPrtry><Cd> with value CLBD OR CLAV.

  1. Import the cbpr_translation.zip project into the Design Server.
  2. Open the cbpr_translation project in Design Server and view the flow cbpr_camt053_mt940. It utilizes the following nodes:
    1. Map Nodes:
      • MX deenvelope

        Runs map cbpr2724_deenvelope which sets the flow variable mxMsgId to 'camt.053.001.08' based on the input. Also, distribute the input data into two: Application header and document.

      • set BAH

        Runs map cbpr2536_bah_camt053_set which set up the flow variables for the Application Header.

      • serialize data

        Runs map cbpr2535_camt053_serialize which set flow variable mxMsgId to '940' based on input and the flow variable stopTranslation if required.

      • set mt940

        Runs map cbpr2537_camt53_mt940_jexit, invokes JEXIT call to java class located in jnodes0.jar and returns with flow variables.

      • trx_log

        Runs map cbpr2501_mxmt_setvarl, process the flow variables by extracting log as key.

      • build mt940

        Runs map cbpr2534_camt053_mt940 which builds the output MT940 message fields based on the values set in flow variables.

    2. Decision Nodes:
      • pre-conv chk

        This check the flow variable stopTranslation to decide if further translation is not required.

    3. Log Nodes:
      • FAILURE

        It creates stopTranslation.json log file in case of failure during translation.

      • MT 940

        Archive the mt940.out message generated from translation.

      • audit_log

        It creates the audit.log.json output file in case of success translation to MT940.

  3. In Design Server, create a package that contains the input files and one flow. The maps will automatically be included during deployment of the package onto the runtime server.