SCT Inst Report Router (ReportMessageRouter)

Overview

The SCT Inst Report Router is an inbound wrapper mapper, ReportMessageRouterInbound, that acts as mapping router for incoming EBA Report Files. A report file from EBA arrives in the report router, which inspects the message to determine what type of report file has been received. Supported file types are:
  • PSR: Pre-Settlement File
  • RSF: Result of Settlement File (XML)
  • DRR: Daily Reconciliation Report
  • MSR: Monthly Statistics Report
  • RTF: Routing Table File
Then it routes to an appropriate mapper to map the body of the document before returning to the wrapper mapper.

ReportMessageRouterInbound

Incoming messages that use ReportMessageRouterInbound are processed in the following manner. If the message received is of BLOB format, message type is determined by decoding and examining the first four characters of the file with,
  • '<?xm' indicating Result of Settlement Files (RSF) message
  • 'SCI ' indicating Routing Table File (RTF) message
  • 'HPSR' indicating Pre-Settlement Report (PSR) message
  • 'HDRR' indicating Daily Reconciliation Report (DRR) message
  • 'HMSR' indicating Monthly Statistics Report (MSR) message

Alternatively if the message received is XML format, then the message type is determined by examining the <FType> element under the root element.

A config value that is stored as a channel parameter, and the identified message type are used to retrieve a value table configuration entry. This entry indicates the correct mapper to be used to map the received message.

The Report From CSM channel is configured to use the ReportMessageRouterInbound mapper, with a CONFIG=IP_MAP_CFG_REPORT_FROM_CSM parameter. If a Daily Reconciliation Report (DRR) message is sent to the channel, ReportMessageRouterInbound determines a message type value of 'DRR' from the presence of 'HDRR' as the first four characters in the BLOB, and the channel parameters provide the config value IP_MAP_CFG_REPORT_FROM_CSM. The config value table contains an entry with category IP_MAP_CFG_REPORT_FROM_CSM and a <type> value of 'DRR', and this configuration value will also specify the mapper name to be used for this message, LogOnlyMessageToISFMapper. Currently, all EBA reports are mapped by the Log Only Mapper.

If a configuration value with a matching <type> value is not found, an exception with error "Mapper not found" is thrown.

Table 1. Sample configuration value table entries
Category Key Configuration value
IP_MAP_CFG_REPORT_FROM_CSM msgTypeCfg_DRR
<msgTypeCfg>
	<class>DRR</class>
	<subType>IP_FROM_CSM_DRR</subType>
	<extendedCfg>
		<name>MASTER_FLAG</name>
		<value>N</value>
	</extendedCfg>
	<pt>
		<class>DRR</class>
		<subType>IP_FROM_CSM_DRR</subType>
	</pt>
	<mapName>LogOnlyMsgToISFMapper</mapName>
	<type>DRR</type>
</msgTypeCfg>
Note: <type> element matches, with <mapName> element identifying correct mapper.
IP_MAP_CFG_REPORT_FROM_CSM msgTypeCfg_MSR
<msgTypeCfg>
	<class>MSR</class>
	<subType>IP_FROM_CSM_MSR</subType>
	<extendedCfg>
		<name>MASTER_FLAG</name>
		<value>N</value>
	</extendedCfg>
	<pt>
		<class>MSR</class>
		<subType>IP_FROM_CSM_MSR</subType>
	</pt>
	<mapName>LogOnlyMsgToISFMapper</mapName>
	<type>MSR</type>
</msgTypeCfg>
IP_MAP_CFG_REPORT_FROM_CSM msgTypeCfg_PSR
<msgTypeCfg>
	<class>PSR</class>
	<subType>IP_FROM_CSM_PSR</subType>
	<extendedCfg>
		<name>MASTER_FLAG</name>
		<value>N</value>
	</extendedCfg>
	<pt>
		<class>PSR</class>
		<subType>IP_FROM_CSM_PSR</subType>
	</pt>
	<mapName>LogOnlyMsgToISFMapper</mapName>
	<type>PSR</type>
</msgTypeCfg>
IP_MAP_CFG_REPORT_FROM_CSM msgTypeCfg_RSF
<msgTypeCfg>
	<class>RSF</class>
	<subType>IP_FROM_CSM_RSF</subType>
	<extendedCfg>
		<name>MASTER_FLAG</name>
		<value>N</value>
	</extendedCfg>
	<extendedCfg>
		<name>IncludeSourceData</name>
		<value>Y</value>
	</extendedCfg>
	<pt>
		<class>RSF</class>
		<subType>IP_FROM_CSM_RSF</subType>
	</pt>
	<mapName>LogOnlyMsgToISFMapper</mapName>
	<type>RSF</type>
</msgTypeCfg>
IP_MAP_CFG_REPORT_FROM_CSM msgTypeCfg_RTF
<msgTypeCfg>
	<class>RTF</class>
	<subType>IP_FROM_CSM_RTF</subType>
	<extendedCfg>
		<name>MASTER_FLAG</name>
		<value>N</value>
	</extendedCfg>
	<pt>
		<class>RTF</class>
		<subType>IP_FROM_CSM_RTF</subType>
	</pt>
	<mapName>LogOnlyMsgToISFMapper</mapName>
	<type>RTF</type>
</msgTypeCfg>

After the mapper to be used for the body of the incoming message is identified, ReportMessageRouterInbound sets an environment variable containing the value for message type which was determined (so that the upcoming mapper does not also need to decode and examine the message, in the case of a BLOB being received).

The incoming message is then redirected to the appropriate dedicated body mapper from the Route to Label node in ReportMessageRouterInbound, and then redirected back to ReportMessageRouterInbound when the body mapper is finished.

Inbound wrapper mapper:

ReportMessageRouterInbound.subflow diagram

Example inbound ISO mapper:

LogOnlyMsgToISFMapper.subflow diagram