Как получить однозначные свойства навигации для объекта? - PullRequest
0 голосов
/ 18 марта 2019

Я хочу обновить родительские отношения для указанной сущности.Проблема в том, что когда я запрашиваю ссылки N: 1, я получаю ссылки на атрибуты, которые не всегда являются однозначными свойствами навигации.Я не знаю, как мне отличить атрибут parentcustomerid, относящийся к учетной записи или контактному лицу.Таким образом, вопрос заключается в следующем: как правильно получить однозначное свойство навигации для указанной сущности, чтобы иметь возможность обновить его, используя запрос к PATCH api/data/v9.0/contacts({id}) с телом:

{"однозначная навигацияproperty@odata.bind ":" / {учетные записи или контакты} ({id}) "}

1 Ответ

1 голос
/ 18 марта 2019

При создании HTTP-запроса добавьте Prefer: odata.include-annotations = "*" к заголовкам HTTP-запроса. Таким образом, ответ будет иметь не только поле _ [Имя поля] _value с идентификатором, но также _ [Имя поля] _value@Microsoft.Dynamics.CRM.lookuplogicalname с логическое имя, которое вы ищете.

Это пример ответа на запрос, запрашивающий parentcustomerid определенного контакта без заголовка:

{
"@odata.context": "https://[Organization URI]/api/data/v9.0/$metadata#contacts(_parentcustomerid_value)",
"value": [
    {
        "_parentcustomerid_value": "bdeb86af-7e1c-e811-a837-000d3ac085f9",
        "contactid": "b050f3bb-dbf7-e811-a98a-000d3ac02bae"
    }
]

}

И это пример ответа на тот же запрос с добавленным заголовком:

{
"@odata.context": "https://[Organization URI]/api/data/v9.0/$metadata#contacts(_parentcustomerid_value)",
"value": [
    {
       "_parentcustomerid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "parentcustomerid_account",
        "_parentcustomerid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "account",
        "_parentcustomerid_value": "bdeb86af-7e1c-e811-a837-000d3ac085f9",
        "contactid": "b050f3bb-dbf7-e811-a98a-000d3ac02bae"
    }
]

}

...