confdm Package

This package lets you transform parameters using actions written in either command eval language or in custom action language code. This allows you transform parameters in any way required from source dataset to target dataset. The command eval language comes with a code coverage tool that lets you verify that your code is covered by unit tests. For more detail please refer to the component documentation.

There are two types of data mapping:

  • Forward mapping consists of filling the WOD dataset to set parameters as needed, enabling the execution of the CWO command on the target cartridge. This WOD dataset filling may depend on the POD dataset and on the different SOD datasets (including the subscriber context ones). If no forward mapping is provided, nothing is done, and the POD dataset is available via dataset inheritance (see the section called Cascading evaluation).

  • Backward mapping consists of modifying the POD dataset after the execution of the CWO to set parameters as needed for the product order flow guards for example. Backward mapping can also update from the WOD dataset to an SOD dataset. If no backward mapping is provided all parameters found in the WOD dataset are copied into the POD dataset.

Data mapping is defined in configuration files (extension dm) in the MAP_FWD and MAP_BWD sections, using the command eval language. MAP_FWD and MAP_BWD sections (both optional) are set within the TRANS or WO_MAPPER sections.

The example below shows various ways of mapping data in configuration files:

  • Using a MAP_TABLE

  • Using a PROC

  • Defining MAB_FWD and MAP_BWD inline (CPIP=Yes in the POD dataset is transformed in clip=on in the WOD dataset and WorkOrderName is translated into createSub)

// Procedure definition
	PROC:proc_hlrfwd
	  IF:<{pod}MSISDN>defined
	    FORMAT:<{wod}MSISDN>=<{pod}MSISDN>
	  FI:
	  IF:<{pod}IMSI>defined
	    FORMAT:<{wod}IMSI>=<{pod}IMSI>
	  FI:
	ENDPROC:

	// Mapping table
	MAP_TABLE:map_1,1,1
	  MAP:English->French
	ENDMAP:


	// translate workorder name and provide specific
	// mapping for WO 'createSubscriber' on 'HLR_R8'
	TRANS:HLR.createSubscriber/PoolFactory:HLR_R8.createSub
	[
	  MAP_FWD
	  [
	    CALL_PROC:proc_hlrfwd
	    CALL_MAP:map_1:<{wod}Language>-><{wod}Language>

	    IF:(<{pod}CLIP>defined) AND (<{pod}CLIP>==Yes)
	      FORMAT:<{wod}clip>=on
	    ELSE:
	      FORMAT:<{wod}clip>=off
	    FI:
	  ]
	  MAP_BWD
	  [
	    IF:<{wod}ERRORCODE>defined
	      FORMAT:<{pod}ERROR>=<{wod}ERRORCODE>
	    FI:
	  ]
	]

	// provide generic mapping for WO 'createSubscriber'
	WO_MAPPER.HLR:createSubscriber
	[
	  MAP_FWD
	  [
	    CALL_PROC:proc_hlrfwd
	  ]
	  // no specific MAP_BWD
	  ]
Note:

The above example uses {pod} and {wod} to access members of specific datasets. Refer to the Fulfillment Provisioning Advanced User Guide for details of this and other forms of alternate dataset evaluation.

If the WO_MAPPER sections do not exist, only the specific mappings defined in TRANS sections are applied.

At runtime, mappings are applied in the following order:

  1. generic mapping: contained in WO_MAPPER sections

  2. specific mapping: contained in TRANS sections

DataMapperMgr is an interface that allows you to clean confdm datamapper and to reload DM files.