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.

Extract from <packs_install_dir>/UIProjectImports/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 TX V11.0.0 and up, native based Design Server installation,

Copy jars into the directory pointed to the config.yaml server.persisitence.files, by default, this is set to /opt/txlibs, then restart the running application ./ITX stop and then ./ITX start

For the Docker environments,
  • Docker cp jnodes0.jar tx-server:/opt/ibm/wsdtx/libs/.
  • Restart the design server, i.e., docker restart <brand>-server.
  1. Import the cbpr_translation.zip project into the Design Server.
  2. Open the cbpr_translation project in Design Server and build the following maps:
    • cbpr2530_camt053_framework
    • cbpr2531_camt053_translate
    • cbpr2534_camt053_mt940
    • cbpr2501_mxmt_setvarlog
  3. Run the main map cbpr2530_camt053_framework.
    The following output files will be generated:
    • mt_out.txt

      File contains the translated MT940 from CBPR+ camt_053 message.

    • audit_msg.json

      Reports translation logs, including failure due to the pre-conversion checks as:

      <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.