Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved


Data Mapping : WorkOrder Data Mapping

WorkOrder Data Mapping
WO Data mapping transforms datasets or/and WorkOrder name to fit cartridge needs.
WorkOrder translation
Work order translation consists of transforming a work order into a cartridge work order, which can then be used by the cartridge framework.
This translation can be performed once the routing is resolved and the work order cartridge instance name is known.
In the following table, the four work orders have to be renamed depending on HLR instance type. For HLR_Alcatel type, no translation is needed as cartridge work order names match work order names.
The above table is defined using TRANS sections in the data mapping configuration file (extension dm), with the following format:
TRANS:<element type>.<wo commandname>/<factory name>:<cartridge instance type>.<cwo commandname>
For example:
TRANS:HLR.createSubscriber/PoolFactory:HLR_R8.createSub
[
// mapping definition
]

TRANS:HLR.createSubscriber/PoolFactory:HLR_Ericsson.creSub
[
// mapping definition
]

TRANS:HLR.createSubscriber/PoolFactory:HLR_x345.cSub
[
// mapping definition
]

TRANS:HLR.createSubscriber/PoolFactory:HLR_x345b.cSub
[
// mapping definition
]

...
DataMapping
There are three ways to implement datamapping:
confdm: configurable datamapping, based on data mapping configuration files
provdm: custom code to define datamappers
backcompdm: package that allows the use of "pre KPSA27" datamappers
WO_MAPPER entries define generic mapping. They are defined within the data mapping configuration file using the following format:
WO_MAPPER:<element type>.<wo commandname>
For example:
WO_MAPPER:HLR.activateProfile
[
// mapping definition
]

WO_MAPPER:VMS.deleteSubscriber
[
// mapping definition
]
...
Packages
This section describes about the packages and different functions they perform.
backcompdm Package
This package provides a way to use older data mappers in the current architecture with no changes to the code. Only recompilation is needed.
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:
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:
// 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
]
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.
2.
DataMapperMgr is an interface that allows you to clean confdm datamapper and to reload DM files.
provdm Package
You can use custom code to define data mapping, using the provdm package. This package offers WODataMapper and CWODataMapper interfaces. You can derive new interfaces from these to create custom data mappers. Custom code must inherit from provdm::WODataMapper and provdm::CWODataMapper and provide an implementation for each operation of AbstractDataMapper:
forwardMapping() and backwardMapping() operations correspond to the operations implementing the mapping.
showFwdInfo() and showBwdInfo() operations should give information about the mappings methods. By default, they return an empty string. This information is displayed in the management screen of the administration tools.
Figure 46. Data mapper Interfaces provided
WODataMapper is designed for generic DataMapping, which does not depend on cartridge instance type.
CWODataMapper is designed for specific DataMapping, which depends on the type of cartridge instance. It also allows the modification of WorkOrder name to CartridgeWorkOrder name.
Samples
 
Ex01 - Data mapping with provdm
The example ex01, when used with the configpath "provdm", demonstrates data mapping using idlos files. The sample code is located in the dmsrc directory, and demonstrates data mapping using the soc/act files.
The files from ex00 are first copied to the $NODE/conf directory and then the ex01files are copied and may overwrite some files from the following directory:
kpsasample/ex01/generic/provdm
 
Ex01 - Data mapping with confdm
The example ex01, when used with configpath "confdm", demonstrates the datamapping configuration compatibility. In this example data mapping configuration is demonstrated using the file mapping.dm, in which both forward and backward mapping are defined (rather than using the idlos files).
The files from ex00 are first copied to the $NODE/conf directory and then the ex01 files are copied and may overwrite some files from the following directory:
kpsasample/ex01/generic/confdm
 
Ex01 - Data mapping with backdm
The example ex01, when used with configpath "backdm", demonstrates the reverse backward datamapping compatibility. In this example a component is added to demonstrate the backward datamapping compatibility. You can see the sample code in the directory called backdmsrc. Included dmbacktester.kab in the Fulfillment Provisioning.kds.
The files from ex00 are first copied to the $NODE/conf directory and then the ex01 files are copied and may overwrite some files from the following directory:
kpsasample/ex01/generic/backdm
 
Ex07 - Work Order translation
This example demonstrates the translation of work orders to cartridge work orders. The routing will route the work order to different cartridge instances of different cartridge types. In the data mapping configuration, the work order translation is set to execute different cartridge work orders on different cartridge types. See the mapping.dm file for more information.
The files from ex00 are first copied to the $NODE/conf directory and then the ex07 files are copied and may overwrite some files from the following directory:
kpsasample/ex07/generic/conf

Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved