Hi Mark,
Survivorship within a nest can get a little tricky. Let's start with handling Address Types.
If I understand your requirements correctly. You can only have one Address of each type, but you can have multiple types of addresses.
In this scenario you want to set a MatchFieldURI at the nest level to collapse all addresses of the same type. If there is more than on Address of the same type our survivorship will sort it out. That would look something like this
{
"label": "Address",
"name": "Addresses",
"type": "Nested",
"hidden": false,
"important": false,
"system": false,
"faceted": true,
"searchable": true,
"attributeOrdering": {
"fieldURI": "configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressType",
"orderType": "ASC",
"orderingStrategy": "FieldBased"
},
"uri": "configuration/entityTypes/Organization/attributes/Addresses",
"dataLabelPattern": "{Country}",
"matchFieldURIs": [
"configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressType"
],
Now that you have collapsed duplicate types, we need to use survivorship to choose the best crosswalk for our winner. It sounds like you would like to choose the most recent value. I would recommend setting the Address.AddressLine1 to Regency, but setting the value of all other Address attributes to OtherAttributeWinnerCrosswalk with primaryAttributeUri=Address.AddressLine1. This will ensure you never take one part of the Address from one source and one part from a completely different Address, as that would result in an invalid value. Here is an example of how OtherAttributeWinnerCrosswalk works
{
"attribute": "configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressLine1",
"sourcesUriOrder": [
"configuration/sources/ReltioCleanser",
"configuration/sources/Reltio"
],
"fallbackStrategies": [
{
"attribute": "configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressLine1",
"survivorshipStrategy": "LUD"
}
],
"fallbackUsingCriteria": "ZERO_OR_MORE_THAN_ONE",
"survivorshipStrategy": "SRC_SYS"
},
{
"attribute": "configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressLine2",
"primaryAttributeUri": "configuration/entityTypes/Organization/attributes/Addresses/attributes/AddressLine1",
"survivorshipStrategy": "OtherAttributeWinnerCrosswalk"
},
I'm not sure what you mean in your question on filtering on the existence of a value, as only non null fields are considered by survivorship. Could you elaborate more on this?
------------------------------
Joel Snipes
------------------------------