Troubleshooting RDM

You can perform troubleshooting for errors, such as the lookup types are not 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 variable Description Example
{MDM_ENVIRONMENT}

Set MDM environment url instead of variable {MDM_ENVIRONMENT}

In the case of MDM environment pilot.reltio.com, replace on http://pilot.reltio.com/
{MDM_API_NODE}

Set MDM node URI instead of {MDM_API_NODE}

In the case of Elastic Beanstalk here)
For example one of the pilot.reltio.com node is http://psc-02-dl01.pilot.reltio.com:8081/
{MDM_TENANT} Set MDM tenant instead of variable {MDM_TENANT} For example jtZIWpvnklZfrox
Table 2. RDM Environment Variables
RDM environment variable Description Example
{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.

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 does not 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 stars with "rdm/lookupTypes/
Table 3. Attributes Linked with Lookup
Description Example
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

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" },.... } } }

How to Reset RDM Cache on MDM Node (and fire synchronization process)

If Check 2.4. failed and the MDM is configured correctly (Check 2.2 and Check 2.3. Passed). you can reset RDM cache on the MDM side.

Note: You must send the request directly on the API node and not on the balancer.

Reset RDM Cache

POST: {MDM_API_NODE}/reltio/resetRDMCache

CASE 3. Hub/API has RDM Lookups, Transcode Process Returns Error

Problem: On 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 Message Possible 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 }..