Overriding a Nested Attribute
When a nested attribute with a value has two crosswalks, it may happen that after a crosswalk is updated it can have two values instead of one.
This is an acceptable behavior and can occur during both full and partial overrides.
For example, you have an entity of SomeEntityType with one value of a
        SomeNestedAttribute attribute, that has two crosswalks:
Examples
{
  "uri": "entities/00005KL",
  "type": "configuration/entityTypes/SomeEntityType",
  "attributes": {
    "SomeNestedAttribute": [
      {
        "value": {
          "SomeSubNestedAttribute001": [
            {
              "uri": "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute001/2",
              "type": "configuration/entityTypes/SomeEntityType/attributes/SomeNestedAttribute/attributes/SomeSubNestedAttribute001",
              "value": "SomeSubNestedAttribute001Value"
            }
          ],
          "SomeSubNestedAttribute002": [
            {
              "uri": "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute002/3",
              "type": "configuration/entityTypes/SomeEntityType/attributes/SomeNestedAttribute/attributes/SomeSubNestedAttribute002",
              "value": "SomeSubNestedAttribute002Value"
            }
          ],
          "SomeSubNestedAttribute003": [
            {
              "uri": "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute003/4",
              "type": "configuration/entityTypes/SomeEntityType/attributes/SomeNestedAttribute/attributes/SomeSubNestedAttribute003",
              "value": "SomeSubNestedAttribute003Value"
            }
          ]
        },
        "uri": "entities/00005KL/attributes/SomeNestedAttribute/1"
      }
    ]
  },
  "crosswalks": [
    {
      "uri": "entities/00005KL/crosswalks/4",
      "type": "configuration/sources/SRC_SYS_001",
      "value": "someEntity001",
      "attributes": [
        "entities/00005KL/attributes/SomeNestedAttribute/1",
        "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute001/2",
        "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute002/3",
        "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute003/4"
      ]
    },
    {
      "uri": "entities/00005KL/crosswalks/5",
      "type": "configuration/sources/SRC_SYS_002",
      "value": "someEntity002",
      "attributes": [
        "entities/00005KL/attributes/SomeNestedAttribute/1",
        "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute001/2",
        "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute002/3",
        "entities/00005KL/attributes/SomeNestedAttribute/1/SomeSubNestedAttribute003/4"
      ]
    }
  ]
}
        Send a request to change the value of
        SomeSubNestedAttribute003 nested sub-attribute for the crosswalk of an
        SRC_SYS_001 type:
  {
  "type": "configuration/entityTypes/SomeEntityType",
  "attributes": {
    "SomeNestedAttribute": [
      {
        "value": {
          "SomeSubNestedAttribute001": [
            {
              "value": "SomeSubNestedAttribute001Value"
            }
          ],
          "SomeSubNestedAttribute002": [
            {
              "value": "SomeSubNestedAttribute002Value"
            }
          ],
          "SomeSubNestedAttribute003": [
            {
              "value": "NewSomeSubNestedAttribute003Value"
            }
          ]
        }
      }
    ]
  },
  "crosswalks": [
    {
      "type": "configuration/sources/SRC_SYS_001",
      "value": "someEntity001"
    }
  ]
}
    matchFieldURIs
      and keyAttributeURIs sections), we will have two values for
        SomeNestedAttribute:- During the full override, the system finds an existing entity and takes a slice of this
          entity for the incoming crosswalk. It removes all the attributes from this slice, and
          inserts incoming attributes into the entity. 
In the example, the system finds an existing entity entities/00005KL, takes a slice of this entity for the incoming crosswalk of an
SRC_SYS_001type. It removes the existing value of a SomeNestedAttribute attribute from the slice, and inserts a new incoming nested attribute into the existing entity. As a result, the entity will have two crosswalks and two values of SomeNestedAttribute attribute. The first attribute belongs to the crosswalk of anSRC_SYS_001type whereas, the other belongs to the crosswalk of anSRC_SYS_002type. - During the partial override, the system does not remove any existing nested attribute.
          It finds an existing entity, takes a slice of this entity for the incoming crosswalk. It
          uses 
keyAttributeURIsto find an existing value that must be updated. In case it is not able to find such a value, it inserts a new one.In the example mentioned above, the system finds an existing entity entities/00005KL and takes a slice of this entity for the incoming crosswalk of an
SRC_SYS_001type. As thekeyAttributeURIsis not set in the configuration, the system is not able to find a value of the nested attribute that must be updated. So, it inserts a new value of SomeNestedAttribute. As a result, the entity will have two crosswalks and two values of a SomeNestedAttribute attribute. The first value is an existing unmodified value which belongs to both existing crosswalks ofSRC_SYS_001andSRC_SYS_002types. The second one is the new incoming value, which belongs only to the crosswalk of anSRC_SYS_001type. 
- For the full override, you must specify 
matchFieldURIsin a configuration, such that it does not contain a modified attribute (SomeSubNestedAttribute003).For example, you can specify
SomeSubNestedAttribute001andSomeSubNestedAttribute002inside thematchFieldURIssection. After the update, two values are collapsed into one as they have the same values forSomeSubNestedAttribute001andSomeSubNestedAttribute002attributes. - For the partial override, you have to specify 
keyAttributeURIsin a configuration, such that it does not contain a modified attribute (SomeSubNestedAttribute003).For example, you can specify
SomeSubNestedAttribute001inside thekeyAttributeURIssection. During the update, the platform finds the existing nested attribute value in the specifiedSomeSubNestedAttribute001and updates it.