How to run the example

This CHAPS L4L MX Validation will use the sample files to demonstrate the generation of validation report as output from a CHAPS L4L XML message.

The stopValidation.json file will report the validation failure due to the pre-conversion checks:

If input file is other than any of the supported CHAPS L4L messages as per schema list indicated above.
  1. Import the chaps_l4l.zip project into the Design Server.
  2. Open the chaps_l4l project in Design Server and view the flow chaps_l4l_validation_flow.
    1. The Flow Description points to all the maps to be executed during the flow process, which will be called from within some of the map nodes in the flow. The following is a list of maps invoked using RUN built-in function during the flow process:
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8056_head112_camt052
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8006_camt_052_001_08
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8055_head112_camt053
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8005_camt_053_001_08
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8051_head112_camt054_ca
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8001_camt_054_001_08_ca
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8052_head112_camt054_cld
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8002_camt_054_001_08_cld
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8053_head112_camt054_cli @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8003_camt_054_001_08_cli
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8054_head112_camt054_lpa
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8004_camt_054_001_08_lpa
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8060_head112_camt060
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_camt_validation_enh/chlf8009_camt_060_001_05
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8057_head112_pacs_002
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8007_pacs_002_001_10
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8058_head112_pacs_008
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8008_pacs_008_001_08
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8059_head112_pacs_004
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8010_pacs_004_001_09
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8061_head112_pacs_009_core
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8011_pacs_009_001_08_core
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8062_head112_pacs_009_cov
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_pacs_validation_enh/chlf8012_pacs_009_001_08_cov
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_mirs_validation_enh/chlf8401_head112_mirs095
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_mirs_validation_enh/chlf8301_mirs_095_001_01
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_admi_validation_enh/chlf8601_head112_admi004_fqsm
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_admi_validation_enh/chlf8501_admi_004_001_02_fqsm
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_admi_validation_enh/chlf8602_head112_admi004_rsr
      • @packagemap=chaps_l4l/validation/mx_extended/maps/chaps_l4l_mx_admi_validation_enh/chlf8502_admi_004_001_02_rsr
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8201_camt_054_001_08_ca
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8202_camt_054_001_08_cld
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8203_camt_054_001_08_cli
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8204_camt_054_001_08_lpa
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8205_camt_053_001_08
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8206_camt_052_001_08
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8207_pacs_002_001_10
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8208_pacs_008_001_08
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8209_camt_060_001_05
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8210_pacs_004_001_09
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8211_pacs_009_001_08_core
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8212_pacs_009_001_08_cov
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8213_mirs_095_001_01
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8214_admi_004_001_02_fqsm
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8215_admi_004_001_02_rsr
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8251_head112_camt054_ca
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8252_head112_camt054_cld
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8253_head112_camt054_cli
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8254_head112_camt054_lpa
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8255_head112_camt053
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8256_head112_camt052
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8257_head112_pacs_002_001_10
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8258_head112_pacs_008_001_08
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8259_head112_camt060
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8260_head112_pacs004
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8261_head112_pacs009_core
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8262_head112_pacs009_cov
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8263_head112_mirs095
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8264_head112_admi004_fqsm
      • @packagemap=chaps_l4l/validation/schema_only/maps/chaps_l4l_mx_schema_validation_xsd/chlf8265_head112_admi004_rsr
    1. It utilizes the following nodes:
      1. Source Nodes:
        • mx_input

          This node identifies the input data to be validated in the flow. It uses the INPUT_FILE variable to set the location of the data.

      2. Map Nodes:
        • MX pre-check

          Runs map mxut1002_bizsvc_chaps which sets flow variables, checks pre-validation conditions and creates infoset.json for validation.

        • EXT_VAL

          Runs map chlf8100_val which calls the appropriate map to perform extended validation of a CHAPS L4L message.

        • XSD_VAL

          Runs map chlf8200_val which calls the appropriate map to perform schema validation of a CHAPS L4L message.

        Note: The maps chlf8100_val and chlf8200_val internally call all the other maps identified in the above Flow Description step.
      3. Decision Nodes:
        • pre-valid chk

          This node checks the flow variable stopValidation to decide if further validation/processing is not required.

        • EXT_RESULT_FORMAT

          This node checks the value of the flow variable REPORT_FORMAT to determine if the resulting report for extended validation should be generated in XML (default) or JSON.

        • XSD_RESULT_FORMAT

          This node checks the value of the flow variable REPORT_FORMAT to determine if the resulting report for schema-only validation should be generated in XML (default) or JSON.

      4. Route Nodes:
        • VAL_TYPE

          This node checks the variable VALIDATION_TYPE to determine if the process will do extended validation or schema-only validation on the data.

      5. Log Nodes:
        • FAILURE

          In case of no validation due to precondition check failures, this node creates a log file specified by the flow variable FAILURE_LOG.

      6. Fail Node:
        • STOP

          It generates error message setup in the node in case of no validation performed.

      7. Passthrough Nodes:
        • EXT_XML_CONVERT

          This node receives an extended validation report in XML format and does not modify the content, thus passing it as is to the appropriate target node.

        • XSD_XML_CONVERT

          This node receives a schema-only validation report in XML format and does not modify the content, thus passing it as is to the appropriate target node.

      8. Format Converter Nodes:
        • EXT_JSON_CONVERT

          This node receives an extended validation report in XML format and converts it to JSON before passing it to the appropriate target node.

        • XSD_JSON_CONVERT

          This node receives a schema-only validation report in XML format and converts it to JSON before passing it to the appropriate target node.

      9. Target Nodes:
        • ext_xml

          This node contains the resulting extended validation report in XML format and creates the output as defined by the variable OUTPUT_RESULT_XML.

        • ext_json

          This node contains the resulting extended validation report in JSON format and creates the output as defined by the variable OUTPUT_RESULT_JSON.

        • xsd_xml

          This node contains the resulting schema-only validation report in XML format and creates the output as defined by the variable OUTPUT_RESULT_XML.

        • xsd_json

          This node contains the resulting schema-only validation report in JSON format and creates the output as defined by the variable OUTPUT_RESULT_JSON.

    2. It utilizes the following variables:
      Flow variables:
      • VALIDATION_TYPE

        The default value is extended.

        For schema-only validation, it can be changed to schema. This is used in Route node VAL_TYPE.

      • REPORT_FORMAT

        The default value is xml.

        It can be changed to json. This is used in Decision nodes EXT_RESULT_FORMAT and XSD_RESULT_FORMAT.

      • INPUT_FILE

        The default value is ../tools/mx_service/data/chlf_pacs_009_cov.xml.

        This is the data file to be used for validation and can be customized. This is used in Source node mx_input.

      • BIC_FILE

        The default value is ../data/bic.xml.

        This is the location of the bic cross-reference file that is used in all the maps executed by the map in node EXT_VAL. It can be customized.

      • CCY_FILE

        The default value is ../data/currencycodedecimals.xml.

        This is the location of the country code cross-reference file that is used in all the maps executed by the map in node EXT_VAL. It can be customized.

      • MXCONFIG_FILE

        The default value is ../data/mxconfig.xml.

        This is the location of the file containing the rule validation settings that is used in all the maps executed by the map in node EXT_VAL. It can be customized.

      • OUTPUT_RESULT_XML

        The default value is validation_result.xml.

        This is the location of the validation report file in xml format. It is used in Target nodes ext_xml and xsd_xml. It can be customized.

      • OUTPUT_RESULT_JSON

        The default value is validation_result.json.

        This is the location of the validation report file in json format. It is used in Target nodes ext_json and xsd_json. It can be customized.

      • FAILURE_LOG

        The default value is stopMXValidation.json.

        This is the location of the failure log. It is used in Log node FAILURE. It can be customized.

      • bizSvc

        For internal use in the Map node MX pre-check to determine the type of data being read in the input file.

      • stopValidation

        For internal use in the Map node MX pre-check and is checked in Decision node pre-valid chk to cause a Failure log in case a data file was not recognized as a valid CHAPS L4L message.

  3. Open the main flow chaps_l4l_validation_flow in the Design Server. It utilizes above one source node, three map nodes, three decision nodes, one route node, one log node, one fail node, two passthrough nodes, two format converter nodes and four target nodes
  4. In Design Server, create a package chaps_l4l_mx_validation that contains the input files and one flow chaps_l4l_validation_flow. The maps will automatically be included during deployment of the package onto the runtime server.
    Note: Not required for running flows on Design Server user interface directly.