Question
Using the following setting
- enableNestedAttribute=true,
- partialOveride in POST
- matchFieldURI defined
- aggregation survivorship defined for attribute
"label": "Individual Enrollments",
"name": "IndividualEnrollments",
"description": "Individual Enrollments",
"type": "Nested",
"hidden": false,
"important": false,
"system": false,
"faceted": true,
"searchable": true,
"uri": "configuration/entityTypes/Individual/attributes/IndividualEnrollments",
"dataLabelPattern": "{EnrollmentID}, {Type}, {Status}",
"matchFieldURIs": [
"configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/EnrollmentID"
],
"matchFieldURIsExactOrNull": [
"configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/Type"
],
- Create the entity
API call used:
POST https://<environment>.reltio.com/reltio/api/<tenantId>/entities?options=partialOverride,updateAttributeUpdateDates,ovOnly
Request body
[{
"type": "configuration/entityTypes/Individual",
"crosswalks": [
{
"value": "169081454756029752",
"updateDate": "2023-07-31T14:42:27.560306z",
"sourceTable": "Siebel_Individual",
"type": "configuration/sources/Siebel",
"dataProvider": true,
"contributorProvider": false
}
],
"attributes": {
"FirstName": [
{
"value": "Maliktest2"
}
],
"DQE_FirstName": [
{
"value": "N"
}
],
"DQE_LastName": [
{
"value": "Y"
}
],
"LastName": [
{
"value": "Albeiktest12311"
}
],
"IndividualEnrollments": [
{
"value": {
"Type": [
{
"value": "Spa_Club"
}
],
"Status": [
{
"value": "Active"
}
],
"StatusChangeDate": [
{
"value": "05/10/2023"
}
],
"StartDate": [
{
"value": "05/10/2023"
}
],
"IndividualEnrollmentsCustomFields": [
{
"value": {
"Type": [
{
"value": "pros_id"
}
],
"Value": [
{
"value": "19283409318203"
}
]
}
}
]
}
}
]
}
}
]
Result:
"Status": [
{
"type": "configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/Status",
"ov": true,
"value": "Active",
"lookupCode": "ACTIVE",
"lookupValue": "Active",
"uri": "entities/00005bd/attributes/IndividualEnrollments/1msuH3/Status/1mt2nZ"
}
],
{
"uri": "entities/00005bd/crosswalks/1mtSN7",
"type": "configuration/sources/Siebel",
"sourceTable": "Siebel_Individual",
"value": "169081454756029752",
"reltioLoadDate": "2023-08-01T01:12:43.186Z",
"createDate": "2023-08-01T01:12:43.186Z",
"updateDate": "2023-07-31T14:42:27.560Z",
"attributes": [
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/StatusChangeDate/1mt73p",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/IndividualEnrollmentsCustomFields/1mtFaL/Type/1mtJqb",
"entities/00005bd/attributes/DQE_LastName/1mslkX",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/Status/1mt2nZ",
"entities/00005bd/attributes/DQE_FirstName/1mshUH",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3"
],
"singleAttributeUpdateDates": {}
Update to Cancelled
API call used:
POST https://gus-training.reltio.com/reltio/api/ib0oLwKoe6wqj0P/entities?options=partialOverride,updateAttributeUpdateDates,ovOnly
Request body
[{ "type": "configuration/entityTypes/Individual",
"crosswalks": [
{
"value": "169081454756029752",
"updateDate": "2023-08-01T20:50:22.258074z",
"sourceTable": "Siebel_Individual",
"type": "configuration/sources/Siebel",
"dataProvider": true
}
],
"attributes": {
"IndividualEnrollments": [
{
"value": {
"EnrollmentID": [
{
"value": 6851414
}
],
"Type": [
{
"value": "Spa_Club"
}
],
"Status": [
{
"value": "Cancelled"
}
],
"IndividualEnrollmentsCustomFields": [
{
"value": {
"Type": [
{
"value": "wcs_id"
}
],
"Value": [
{
"value": "1239801283"
}
]
}
}
]
}
}
]
}
}]
Result:
"Status": [
{
"type": "configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/Status",
"ov": true,
"value": "Cancelled",
"lookupCode": "CANCELLED",
"lookupValue": "Cancelled",
"uri": "entities/00005bd/attributes/IndividualEnrollments/1msuH3/Status/4PSbJXy"
},
{
"type": "configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/Status",
"ov": false,
"value": "Active",
"lookupCode": "ACTIVE",
"lookupValue": "Active",
"uri": "entities/00005bd/attributes/IndividualEnrollments/1msuH3/Status/1mt2nZ"
}
]
{
"uri": "entities/00005bd/crosswalks/1mtSN7",
"type": "configuration/sources/Siebel",
"sourceTable": "Siebel_Individual",
"value": "169081454756029752",
"reltioLoadDate": "2023-08-01T01:37:10.133Z",
"createDate": "2023-08-01T01:12:43.186Z",
"updateDate": "2023-07-31T14:42:27.560Z",
"attributes": [
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/IndividualEnrollmentsCustomFields/1mtFaL/Value/1mtO6r",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/Type/1msyXJ",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/Status/4PSbJXy",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/IndividualEnrollmentsCustomFields/4PSaHc6/Type/4PSaLsM"
],
"singleAttributeUpdateDates": {
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/Status/4PSbJXy": "2023-08-01T20:50:22.258Z",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/IndividualEnrollmentsCustomFields/4PSaHc6/Value/4PSaQ8c": "2023-08-01T20:50:22.258Z",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/IndividualEnrollmentsCustomFields/4PSaHc6": "2023-08-02T00:50:22.000Z",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3": "2023-08-02T00:50:22.000Z",
"entities/00005bd/attributes/IndividualEnrollments/1msuH3/IndividualEnrollmentsCustomFields/4PSaHc6/Type/4PSaLsM": "2023-08-01T20:50:22.258Z"
}
Update to back to Active
API call used:
POST https://gus-training.reltio.com/reltio/api/ib0oLwKoe6wqj0P/entities?options=partialOverride,updateAttributeUpdateDates,ovOnly
Request body
[{ "type": "configuration/entityTypes/Individual",
"crosswalks": [
{
"value": "169081454756029752",
"updateDate": "2023-08-02T20:50:22.258074z",
"sourceTable": "Siebel_Individual",
"type": "configuration/sources/Siebel",
"dataProvider": true
}
],
"attributes": {
"IndividualEnrollments": [
{
"value": {
"EnrollmentID": [
{
"value": 6851414
}
],
"Type": [
{
"value": "Spa_Club"
}
],
"Status": [
{
"value": "Active"
}
],
"IndividualEnrollmentsCustomFields": [
{
"value": {
"Type": [
{
"value": "wcs_id"
}
],
"Value": [
{
"value": "1239801283"
}
]
}
}
]
}
}
]
}
}]
Result
"Status": [
{
"type": "configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/Status",
"ov": true,
"value": "Cancelled",
"lookupCode": "CANCELLED",
"lookupValue": "Cancelled",
"uri": "entities/00005bd/attributes/IndividualEnrollments/1msuH3/Status/4PSbJXy"
},
{
"type": "configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/Status",
"ov": false,
"value": "Active",
"lookupCode": "ACTIVE",
"lookupValue": "Active",
"uri": "entities/00005bd/attributes/IndividualEnrollments/1msuH3/Status/1mt2nZ"
}
],
Answer:
This is expected behavior. If you look at the process, you see that Active
is already a value present in the entity when you are trying to change from Cancelled to Active.
According to documentation https://docs.reltio.com/en/model/construct-your-data-model/define-or-refine-your-data-model/define-crosswalks-for-data-sources/update-entity-attributes.
If no entity attributes are changed in the request body. – The updateDate value in the response and singleAttributeUpdateDates values of the attributes do not change.
Possible alternatives
- Use cumulative update rather POST /entities&partialoverride.
- Use keyAttributeURIs and matchFieldsURIs in the L3 for IndividualEnrollment. Then the value will be replaced. However, this will impacted nested within nested attributes as well (deep nested)
{
"label": "Individual Enrollments",
"name": "IndividualEnrollments",
"description": "Individual Enrollments",
"type": "Nested",
"hidden": false,
"important": false,
"system": false,
"faceted": true,
"searchable": true,
"uri": "configuration/entityTypes/Individual/attributes/IndividualEnrollments",
"dataLabelPattern": "{EnrollmentID}, {Type}, {Status}",
"keyAttributeURIs": [
"configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/Type"
],
"matchFieldURIs": [
"configuration/entityTypes/Individual/attributes/IndividualEnrollments/attributes/EnrollmentID"
],
"matchFieldURIsExactOrNull": [
"confi
Comments
Please sign in to leave a comment.