Introduction
One of the three types of data that can be found in Reltio is Reference data.
Reference data is data that can be represented differently throughout the source systems and from a business point of view is data that rarely changes. Reference data is used for lookups/drop-downs in Reltio UI and it is controlled by the Reference Data Management (RDM) application and the RDM API.
The data coming from source systems and written in the Reltio MDM in an RDM attribute is transcoded by the Reltio RDM. The Reltio entity returned via the Reltio Entities API and seen via the Reltio UI contains the transcoded values.
RDM Mappings
In addition to configuring the RDM mappings via an API, Reltio provides a UI in the RDM console which is accessible from the Reltio UI.
The first column holds the Canonical Cells. Each Canonical Cell contains a Canonical Value and Code. The initial Canonical Code is the one that you set when clicking on “ + CANONICAL VALUE ROW”, the initial Canonical Value is drawn from the very first source cell that is created and saved in the Lookup Type.
The Canonical Code can never be changed once established, but the Canonical Value can.
Terms
Canonical Value
- Description
- Each Canonical Row specifies a Canonical value which is then associated with each of the values from the other source systems
- The Canonical Value can be changed at any time. The canonical value is one of the Source Values as indicated in the UI by the blue triangle in the upper left corner of the cell (see Red and Green in the picture above how they have a blue triangle in the upper left corner of their cells)
- To Change the Canonical Value you have to click on the three dots to invoke the Source Value menu and choose “Set as default canonical value”
- In the API the Canonical Value is designated with attribute “downStreamDefaultValue” = true
- When you read a record from Reltio via the API the Canonical Value is returned in both the “value” and “lookupValue” for the attribute
- Purpose
- To survive amongst the source system values
Canonical Code
- Description
- The key for the row in the RDM. Once established the Canonical code can never be changed
- When you read a record from Reltio via the API the Canonical Code is returned in the “lookupCode” for the attribute
- Changing the Default canonical value (the one with the blue triangle in the upper left corner) does not have an effect on the Canonical Code
- Purpose
- To survive and to be referenced as a key to the RDM row
- To provide static machine-friendly value for the drop-down
Reltio Source Mapping
- Description
- The columns after the canonical value column show the mappings per source. You can map multiple values to a single canonical value for a given source
- Value – The value which is provided by the source system. You can push this value in the “value” property of your Reltio attribute when pushing data to Reltio and Reltio will correctly map it to the Canonical Value
- The other purpose of this value is that if it is set as the default canonical value it will be used as the Canonical Value returned when reading the record
- Code – The key which is provided by a source system. You can push this value in the “value” property when pushing data to Reltio and Reltio will correctly map it to Canonical Value
- Purpose
- Value
- You can perform the mapping based on the source system value that is pushed from the source
- One of the source system values is set to be the canonical value
- Code
- You can perform the mapping based on the source system code that is pushed from the source
- Value
Behavior
API
When a consumer reads an entity via the API, the RDM attribute properties the consumer will receive depend on the “resolveLookupCode” physical configuration setting.
If “resolveLookupCode”=true the attributes received will be:
Reltio Entity Payload | RDM Field |
---|---|
value | Canonical Value |
lookupCode | Canonical Code |
lookupValue | Canonical Value |
If “resolveLookupCode”=false the attributes received will be:
Reltio Entity Payload | RDM Field |
---|---|
value | Canonical Value |
lookupCode | Canonical Code |
lookupValue | The “raw” input value that has been submitted |
Check the examples section below to see possible API responses.
Note: If you set resolveLookupCode to false in the Physical configuration in order to retain the lookupRawValue this will have a side effect when using nested attributes in the matchFieldURI.
MDM UI
When a consumer examines the contributions from the Sources view or checks the Profile view, the consumer will see either [ Canonical Value ] or [ Canonical Value (Canonical Code) ].
- If the Canonical Code and Canonical Value are exactly the same – they are displayed as a singular value on all screens of Reltio
- If they are different, they are displayed as [ Canonical Value (Canonical Code) ]
Examples
Let’s return back to our Color RDM. We have mappings as below:
Canonical column | Source system column (Salesforce) |
---|---|
Canonical value: Red Canonical code: 1 | Source system value: Red Source system code: RED_Color |
Canonical value: Green Canonical code: 2 | Source system value: Green Source system code: GREEN_Color |
Review the below table for the results depending on the input when contributing data to Reltio:
Note: As explained earlier, in tenants where resolveLookupCode is set to false, lookupRawValue is displayed in the output. If resolveLookupCode is set to true, lookupValue is displayed in the output.
Contributed Data To Reltio (Input) attributes.color.value | Output (tenant has resolveLookupCode=false) | Output (tenant has resolveLookupCode=true) | Notes |
---|---|---|---|
1 pushed from “Salesforce” crosswalk | "Color": [ | "Color": [ | The mapping is performed based on the canonical code = “1” that exists in the “Color” lookup type |
“Red” pushed from “Salesforce” crosswalk | "Color": [ | "Color": [ | The mapping is performed based on the canonical value = “Red” (set from the source system value) that exists in the “Color” lookup type |
“RED_Color” pushed from “Salesforce” crosswalk | "Color": [ | "Color": [ | The mapping is performed based on the source system code = “RED_Color” that exists in the “Color” lookup type |
“Blue” pushed from “Salesforce” crosswalk | "Color": [ | "Color": [ | A mapping for “Blue” does not exist in the “Color” lookup type so a lookup error is received |
1 pushed from “SAP” crosswalk Note: SAP source is not configured in our “Color” lookup type | "Color": [ | "Color": [ | Values will be mapped if either a canonical value, or a canonical code is pushed, even if the crosswalk’s source is not configured in the lookup type |
“RED_Color” pushed from “SAP” crosswalk Note: SAP source is not configured in our “Color” lookup type | "Color": [ | "Color": [ | Values won’t be mapped if a source system code is pushed and the crosswalk’s source is not configured in the lookup type |
RDM and Survivorship
Survivorship MAX rule
Canonical Value | Canonical Code |
---|---|
Red | 1 |
Green | 2 |
For the Color attribute (that is tied to the Color RDM) we have the following Survivorship Strategy:
Review the below table for ov results:
Both values are mapped values
Color Attribute “value” Crosswalk A | Color Attribute “value” Crosswalk B | OV value |
---|---|---|
Red (1) | Green (2) | Green (2) |
Value of Crosswalk A is mapped and Value of Crosswalk B is unmapped
Color Attribute “value” Crosswalk A | Color Attribute “value” Crosswalk B | OV value |
---|---|---|
Green (2) | Pink123 | Pink123 |
Green (2) | Green123 | Green123 |
Green (2) | B3ZZ | B3ZZ |
Green (2) | 0B3ZZ | Green (2) |
Green (2) | 3 | 3 |
*The Unmapped RDMs have the same lookupValue and lookupCode.
Note: The survivorship uses the lookupCode as a string to determine the winning value. The comparison of the values happens with the ASCII numerical representation of the characters. Even if all of your lookupCodes are numbers they are treated as strings when the MAX value survivorship strategy evaluates them
References
Reference Data Management (Official Documentation)
How are source code/value mapped to canonical code/value? [FAQ]