Developer Transformation Guide > Generating Web Service SOAP Messages > Keys
  

Keys

A SOAP message hierarchy includes keys. The Data Integration Service requires key values to construct the XML hierarchy in the SOAP message.
You must map input port data to the keys in the SOAP message hierarchy. Map data to the keys in each level that you are providing data. When you have a multiple-occurring node, you need to relate the node to a parent.
The keys appear in the SOAP message without types. Any port that you map to a key must be a string, integer, or bigint datatype. The primary key in the parent group and the foreign key in each child group must have the same datatype, precision, and scale. You can map generated keys to the SOAP message keys.
You can map a port to a node and to a key in the same hierarchy level. For example, you map Employee_ID to a node in the SOAP message and you map it to a key in the Employee level.
If two group nodes in the hierarchy have a parent-child relationship, complete the following tasks:
You can also map primary keys to input ports to remove rows with a primary key of null or with duplicate primary keys.
You can create a composite key in a SOAP message by mapping multiple ports to the same key. Use composite keys when you need to denormalize data and maintain unique keys for some multiple-occurring combinations of values. You can create composite keys that contain strings, bigint, or integer values.
Note: You can include an Expression transformation in the operation mapping to generate key values.

Composite Key Example

Configure a unique division-department key from the following groups of ports:
Company
Company_Num
Company_Name

Division
Company_Num
Divison_Num
Division_Name

Department
Division_Num
Dept_Num
Dept_Name
Location
The Dept_Num is unique within a division, but Dept_Num is not unique for all divisions in the Company.
You might configure a Department group that contains the division and the department information. Configure the division number and the department number as part of the composite key:

Department
Division_Num + Dept_Num (key)
Dept_Name
Location
The order that you map the ports determines the key value.