Table Description
Transform: Describes a mapping used to transform from Evidence XML to an XML format that can be used to populate a datastore or a mapping from datastore back to Evidence XML.

This entity is central to the functioning of the DataHub. A Transform stores a mapping in XSLT. There are two types of mappings, mappings for reads and mappings for updates, the type of mapping is identified by the type field. Mappings for reads transform data from Evidence Entities to data store XML. Mappings for updates take a Difference Command and turn it back into a set of requests to change or update Evidence Entities. A Difference Command is built by comparing "before" and "after" snapshots of a datastore. The before snapshot represents the state of a datastore before an IEG script has been run. The after snapshot represents the state of the datastore after a client has executed an IEG script. The Difference Command captures what actions they performed in that script in terms of the changes made to the data store.


The logicalName and type fields taken together for Transform must be unique. The logical name is identified with a particular Data Hub Context. This Data Hub Context collect together a set of entities that share the same Data Hub Context name: A Transform, Filter Evidence Link, a View Processor and Update Processor.

Example

The "Having a Baby" Life Event is linked to the Data Hub Context called HavingABaby. This Life Event allows a client to log in and report that they or someone in their family is going to have a baby. The Life Event is linked to the Data Hub Context "HavingABaby". When the Life Event is launched it is pre-populated with information about the family that has been read from Curam Evidence. This information is read from the Evidence Tables and then the logical name "HavingABaby" is used to retrieve a Transform to convert This evidence into a Data Store. This pre-populated datastore is used for the IEG Script. The Citizen answers all the questions in the IEG Script and submits it. The Life Event engine calculates what has changed in the datastore and submits this to the data hub with the context "HavingABaby". The Data Hub queries for a Transform update script with the logical name of "HavingABaby". This Transform is then used to convert the differences into a set of updates to Evidence.

Model Details
Location in Model: Logical View::MetaModel::Curam::WorkspaceServices::DataHub::Entity::Transform
Controlling File: WorkspaceServices\model\DataHub.efx
Table Options
ALLOW_OPTIMISTIC_LOCKINGyes
Attributes (6)
AttributeStereotypeNullableDescriptionDomain DefinitionCodetableDDL Type
transformIDkeynoUnique reference number of this record.INTERNAL_ID SVR_INT64
logicalNamedetails The logical name of the transformer. This, and the type make a Transform unique. The logical name is a Data Hub Context. @curam.example

The logical name "HavingABaby" defines the transform used to pre-populate scripts for the Having a Baby Life Event.

TRANSFORMER_LOGICAL_NAME SVR_STRING<256>
schemaNamedetails The name of the data store schema to transform evidence to.DATASTORE_SCHEMA_NAME SVR_STRING<40>
functiondetails The XSLT function used to transform Evidence XML to datastore XML.TRANSFORMER_FUNCTION SVR_STRING<250000>
recordStatusdetails Record status of this record i.e. Active, Cancelled.RECORD_STATUSRecordStatusSVR_STRING<10>
typedetails The type of the transform as defined in the TransformType codetable. There are two types of transform, read and update.TRANSFORM_TYPETransformTypeSVR_STRING<10>
Operations (6)
OperationStereotypeOptionsDescriptionSQL
insertinsertAUTO_ID: transformID
Standard Operation 
readread Standard Operation 
modifymodifyOPTIMISTIC_LOCKING: yes
Standard Operation 
searchByRecordStatusreadmulti <p>Read all records by Record Status</p> @curam.example Retrieve all Active records of this type.  
readByLogicalNamensread Read a transform by its unique logical name. 
readByLogicalNameAndTypensread <p>Reads a unique Transform by its logical name and a transform type from the TransformType codetable. </p> 
Related Pages (4)