Unify and manage your data

Troubleshooting RDM

Learn how to troubleshoot RDM errors.

This topic covers troubleshooting scenarios, such as the lookup types not being available in the MDM tenant or lookup types are available in the MDM tenant but not appearing in the Hub.

Environments

Note: Before applying the configuration or executing any request, replace the variables as explained in the following tables:
Table 1. MDM Environment Variables
MDM environment variableDescriptionExample
{MDM_ENVIRONMENT}

Set MDM environment url instead of variable {MDM_ENVIRONMENT}

In the case of MDM environment pilot.reltio.com, replace on https://pilot.reltio.com/
{MDM_TENANT}Set MDM tenant instead of variable {MDM_TENANT}For example jtZIWpvnklZfrox
Table 2. RDM Environment Variables
RDM environment variableDescriptionExample
{RDM_AUTH_SERVICE}

Set Auth service that used by RDM service

In the case of RDM production service, replace {RDM_AUTH_SERVICE} on https://auth.reltio.com/
{RDM_ENVIRONMENT}

Set RDM service url instead of variable {RDM_ENVIRONMENT}

In the case of RDM production service, replace {RDM_ENVIRONMENT} on https://api-dot-prod-155422.appspot.com/
{RDM_TENANT}Set RDM tenant instead of variable {RDM_TENANT}For example AbcRdmDev
{RDM_LOOKUP_TYPE}

Set RDM lookup type instead of variable {RDM_LOOKUP_TYPE}

Note: RDM lookup always starts with rdm/lookupTypes/

For example rdm/lookupTypes/HCA_TYP_CD

Case 1: MDM UI. Dependency between attributes does not work

Problem: MDM tenant has RDM lookups, but Hub does not show the dependency between attributes.

Check 1.1. Make sure that Hub uses Read/Edit Mode (dependents between attributes is supported only by Read/Edit mode)

  1. Open Tenant UI configuration (e.g. reltio-ui-configuration / pre-01 / plugins / ABCOneDemo_z3HmdwMqJLHKjH1 / com.reltio.plugins.organization.json)
  2. Check that "Attribute View" uses the correct class.

    UI configuration for Profile view must be similar to the following:

    ..."id": "com.reltio.plugins.entity.org.AttributeView","class":
                    "com.reltio.plugins.entity.attributes.AttributesView"...

Check 1.2 Make sure that dependence between attributes is configured in MDM Tenant L3.

  1. Open MDM tenant business configuration.
  2. Make sure that the "parent" attribute has the "dependentLookupAttributes" section and this section is linked to "children" attribute.

If parent attribute is "Customer type", children attribute is "Customer Sub Type, in this case, configuration must be as follows:

MDM tenant business configuration (dependents between attribute)
...
{
       "label": "Customer Type",
       "name": "TypeCode",
       "type": "String",
       "URI": "configuration/entityTypes/HCA/attributes/TypeCode",
       "lookupCode": "rdm/lookupTypes/HCA_TYP_CD",
       "dependentLookupAttributes": [
              "configuration/entityTypes/HCA/attributes/SubTypeCode"
       ]
},
{
       "label": "Customer Sub Type",
       "name": "SubTypeCode",
       "URI": "configuration/entityTypes/HCA/attributes/SubTypeCode",
       "lookupCode": "rdm/lookupTypes/HCA_SUBTYP_CD"
},
...

Case 2: Hub/API doesn't have RDM lookups

Problem: MDM tenant has no RDM lookups or list of RDM lookups on Hub is empty

Check 2.1. Make sure that MDM API has RDM lookups
  1. Get RDM lookup type on Data-load node (send to balancer with header: xxx-client: false)

    Get lookup codes by lookup type

    POST: {MDM_ENVIRONMENT}/reltio/api/{MDM_TENANT}/lookups/list HEADER: xxx-client: false BODY: 
    { "type": "{RDM_LOOKUP_TYPE}" }
  2. Get RDM lookup type on UI node (send to balancer with header: xxx-client: true)

    Get lookup codes by lookup type (UI node)

    POST: {MDM_ENVIRONMENT}/reltio/api/{MDM_TENANT}/lookups/list HEADER: xxx-client: true BODY: 
    { "type": "{RDM_LOOKUP_TYPE}" }
Check 2.2. Make sure that MDM physical tenant configuration has RDM environment and Auth service (in the rdmConfig section)

Note: If you do not know which RDM environment and Auth service to be used, contact Reltio Customer Support.

GET: {MDM_ENVIRONMENT}/reltio/tenants/{MDM_TENANT}
Example of "rdmConfig" section
...
   "rdmConfig": {
     "serviceUri": "{RDM_ENVIRONMENT}",
     "oauthInstance": "{RDM_AUTH_SERVICE}/oauth/token"
   },
...
Check 2.3. Make sure that the MDM business tenant configuration contains a link to the RDM tenant

GET: {MDM_ENVIRONMENT}/reltio/api/{MDM_TENANT}/configuration

check "rdmTenantId" key-must contain the ID of the correct RDM tenant

Link on RDM tenant in the MDM business configuration

..."rdmTenantId": "{RDM_TENANT}",...

Check 2.4. Make sure that the MDM business tenant configuration contains a link to the RDM lookups

GET: {MDM_ENVIRONMENT}/reltio/api/{MDM_TENANT}/configuration

Check lookupCode field for entity attributes that must use RDM lookups. All of them must be linked to RDM lookup types.

Note: RDM lookup always starts with rdm/lookupTypes/.
Table 3. Attributes Linked with Lookup
DescriptionExample
Attribute linked to old lookup

MDM Entity attribute uses old lookup

...
{
       "label": "Customer Type",
       "name": "TypeCode",
       "type": "String",
       "URI": "configuration/entityTypes/HCA/attributes/TypeCode",
       "lookupCode": "HCA_TYP_CD"
}
...
Attribute linked to RDM lookup

MDM Entity attribute uses RDM lookup

...

{
       "label": "Customer Type",
       "name": "TypeCode",
       "type": "String",
       "URI": "configuration/entityTypes/HCA/attributes/TypeCode",
       "lookupCode": "rdm/lookupTypes/HCA_TYP_CD"
}
...
Check 2.5. Make sure that MDM Uploads RDM Lookups from RDM

Get MDM-RDM Connection Statistics

GET: {MDM_ENVIRONMENT}/reltio/status/rdmStats

Consider the following points :

  • "Update"- time-stamp of last synchronization
  • "Transcode request"- number of lookup transcode operations on MDM side
  • "Transcode errors"- number of transcoding operations that failed
  • "Values"- number of RDM lookup values upload to MDM

If all the checks pass and the issue persists, then raise the issue with us, see topic Get help in Support Portal.

Example of MDM-RDM connection statistics

{ "http://api-dot-tst-01-144618.appspot.com/": { "Client statistics": { "Status":
          "OK", "RDM service": "http://api-dot-tst-01-144618.appspot.com/", "OAuth service":
          "https://auth-stg.reltio.com/oauth/token", "RDM tenants": { "rdm": 1490706311256,
         ... } }, "Transcode statistics": { "rdm": { "Transcode requests": 98, "Transcode
          errors": 0, "Update": 1492168553421, "Values": 3133, "Code cache size": 12536,
          "Value cache size": 9402, "Approximate size": "1 MB" },.... } } }

Case 3: Hub/API has RDM Lookups, Transcode process returns error

Problem: In Hub, the list of lookups are correct, but when you try to apply changes, attribute in the saved entity contains error messages.

Table 4. Error Messages
Error MessagePossible Reason
"1003: RDM canonical value mapping not found in tenant"RDM Lookup does not contain mapping for source that you use in the entity (see case 3.2), RDM Lookup Type is disabled (see case 3.4.), or RDM Lookup Code (or lookup code mapping) is disabled (see case 3.3)
"1000: Tenant [AbcRdmDev] not found in RDM service"MDM cannot connect to RDM (see case 2.4)

Attribute country is linked with lookup type rdm/lookupTypes/Country

Entity has the value AS that came from source MUI and has a lookupError.

MDM Tenant Configuration

... "attributes": [ { "label": "Country", "name": "TestCountry",
          "description": "Test country for RDM", "type": "String", "URI":
          "configuration/entityTypes/ForRDM/attributes/TestCountry", "lookupCode":
          "rdm/lookupTypes/Country" },...

Entity JSON Contains "LookupError"

{noformat}... "TestCountry": [ { "type":
          "configuration/entityTypes/ForRDM/attributes/TestCountry", "ov": true, "value":
          "AS", "lookupError": "1003: RDM canonical value mapping not found in tenant [rdm]",
          "URI": "entities/aqP7mvu/attributes/TestCountry/utzQaz4I" } ] }, "crosswalks": [ {
          "URI": "entities/aqP7mvu/crosswalks/10qQxT644", "type":
          "configuration/sources/MUI", "value": "MUI.abcbcbcbcsdsds", "attributes": [
          "entities/aqP7mvu/attributes/TestCountry/utzQaz4I" ] }...

Check 3.1. Make sure that you get the same error when you transcode lookup directly on RDM.

Transcode lookup value directly on RDM:

POST: {RDM_ENVIRONMENT}/transcode/{RDM_TENANT}/value BODY: { "type":
          "rdm/lookupTypes/Country", "value": "AS", "source": "MUI" }

Check 3.2. Make sure that RDM the lookup code has the required mappings

Get RDM Lookup Code

GET: {RDM_ENVIRONMENT}/lookups/{RDM_TENANT}/Country/AS

Make sure that the lookup has the mapping for source MUI and code AS.

RDM lookup code has a mapping section:

{... "type": "rdm/lookupTypes/Country", "code": "AS", "enabled": true,
          "sourceMappings": [... { "source": "MUI", "values": [ { "code": "AS",
          "value": "American Samoa", "enabled": true, "canonicalValue": false,
          "downStreamDefaultValue": true } ] },... }
Check 3.3. Make sure that RDM lookup code and source mapping is enabled

Get RDM Lookup Code

GET: {RDM_ENVIRONMENT}/lookups/{RDM_TENANT}/Country/AS

Make sure that the lookup code and mapping are enabled:

{... "type": "rdm/lookupTypes/Country", "code": "AS", "enabled": true,
          "sourceMappings": [... { "source": "MUI", "values": [ { "code": "AS",
          "value": "American Samoa", "enabled": true, "canonicalValue": false,
          "downStreamDefaultValue": true } ] },... }
Check 3.4. Make sure that RDM Lookup Type is Enabled

Get RDM Tenant Configuration

GET: {RDM_ENVIRONMENT}/configuration/{RDM_TENANT}

Lookup type must be enabled:

{ "tenantId": "rdm",... "lookupTypes": [ { "URI": "rdm/lookupTypes/Country",
          "label": "Country", "enabled": true }..

Case 4: Sub-nested attribute has lookup parent in another sub-nested attribute

This scenario is not supported, a sub-nested attribute can't have another sub-nested attribute (from a different nested attribute) as a parent. For example, if you try to create an entity with a lookup sub-nested attribute in Nested1 and a lookup parent sub-nested in Nested2.

Supported scenarios:

  • A sub-nested attribute may have a simple attribute as the parent.

  • A simple attribute may have a sub-nested attribute as parent.