/ by

Reltio RDM

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

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 PayloadRDM Field
valueCanonical Value
lookupCodeCanonical Code
lookupValueCanonical Value

If “resolveLookupCode”=false the attributes received will be:

Reltio Entity PayloadRDM Field
valueCanonical Value
lookupCodeCanonical Code
lookupValueThe “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 columnSource 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": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Red",
        "lookupCode": "1",
        "lookupRawValue": "1",
        "uri": "***"
    }
]
"Color": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Red",
        "lookupCode": "1",
        "lookupValue": "Red",
        "uri": "***"
    }
]
The mapping is performed based on the canonical code = “1” that exists in the “Color” lookup type
“Red”
pushed from “Salesforce” crosswalk
"Color": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Red",
        "lookupCode": "1",
        "lookupRawValue": "Red",
        "uri": "***"
    }
]
"Color": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Red",
        "lookupCode": "1",
        "lookupValue": "Red",
        "uri": "***"
    }
]
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": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Red",
        "lookupCode": "1",
        "lookupRawValue": "RED_Color",
        "uri": "***"
    }
]
"Color": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Red",
        "lookupCode": "1",
        "lookupValue": "Red",
        "uri": "***"
    }
]
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": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Blue",
        "lookupError": "1003: RDM canonical value mapping not found for value [Blue] and source [Salesforce] in tenant [*****]",
        "uri": "***"
    }
]
"Color": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Blue",
        "lookupError": "1003: RDM canonical value mapping not found for value [Blue] and source [Salesforce] in tenant [*****]",
        "uri": "***"
    }
]
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": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Red",
        "lookupCode": "1",
        "lookupRawValue": "1",
        "uri": "***"
    }
]
"Color": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "Red",
        "lookupCode": "1",
        "lookupValue": "Red",
        "uri": "***"
    }
]
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": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "RED_Color",
        "lookupError": "1003: RDM canonical value mapping not found for value [RED_Color] and source [SAP] in tenant [*****]",
        "uri": "***"
    }
]
"Color": [
    {
        "type": "configuration/entityTypes/Individual/attributes/Color",
        "ov": true,
        "value": "RED_Color",
        "lookupError": "1003: RDM canonical value mapping not found for value [Blue] and source [SAP] in tenant [*****]",
        "uri": "***"
    }
]
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 ValueCanonical Code
Red1
Green2

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)Pink123Pink123
Green (2)Green123Green123
Green (2)B3ZZB3ZZ
Green (2)0B3ZZGreen (2)
Green (2)33

*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]

Reltio Academy

Contact us

Get in touch and ask us anything. We're happy to answer every single one of your questions.

  • 6A Maria Luiza Blvd, Plovdiv
    4000, Bulgaria
  • Ulpia Tech LinkedIn Ulpia Tech Twitter


    To top