Свойство 'field' для типа 'Microsoft.Dynamics.CRM.entity' не является свойством навигации или сложным свойством.Только свойства навигации могут быть расширены - PullRequest
0 голосов
/ 13 декабря 2018

Обнаружение этой проблемы в Dynamics 365, которая, кажется, должна работать, но дает мне:

Свойство '_biz_buyerlookupid_value' для типа 'Microsoft.Dynamics.CRM.biz_productbuyer' не является навигациейсобственность или комплексная собственность.Только свойства навигации могут быть расширены.

Я могу скопировать приведенный здесь пример, и он работает найти:

https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/webapi/query-data-web-api#retrieve-related-entities-by-expanding-navigation-properties

В основном пытается прочитать в связанных областяхпоэтому мне не нужно делать еще один запрос.

Поэтому у меня есть поле поиска в пользовательском объекте с именем Product Buyer или biz_productbuyers, чтобы ввести имя Contact, связанное с этим Product.

Поле называется biz_buyerlookupid, когда вы просматриваете поля для сущности.

Когда вы используете веб-API, оно говорит, что в этой сущности не существует ничего с именем biz_buyerlookupid.Избавьтесь от $select= и откройте его, чтобы я мог его найти.

Есть поле с именем _biz_buyerlookupid_value.Я помещаю это в $select, и оно возвращает:

{
    @odata.etag: "W/"20636204"",
    _biz_buyerlookupid_value: "906595fd-2a83-dc11-ae20-000feaed3854",
    biz_productbuyerid: "8be67d14-9efb-4335-98c7-000451a50cef",
}

Очевидно, какая-то связь между двумя полями, но звучит так, будто _biz_buyerlookupid_value - это поиск Contacts._biz_buyerlookupid_value соответствует фактическому значению в сущности contact, а именно одному contactid.Я проверил.Перепробовал все следующее и получил предыдущее сообщение:

/api/data/v9.0/biz_productbuyers?$select=_biz_buyerlookupid_value&$expand=_biz_buyerlookupid_value($select=contactid, fullname)

/api/data/v9.0/biz_productbuyers?$select=_biz_buyerlookupid_value&$expand=biz_productbuyerid($select=contactid, fullname)

/api/data/v9.0/biz_productbuyers?$select=biz_productbuyerid&$expand=biz_productbuyerid($select=contactid, fullname)

/api/data/v9.0/biz_productbuyers?$select=biz_productbuyerid&$expand=_biz_buyerlookupid_value($select=contactid, fullname)

Так что же здесь происходит?Насколько я могу судить, он должен приносить contactid и fullname от сущности contact.

1 Ответ

0 голосов
/ 13 декабря 2018

Насколько я понимаю, элемент _[field]_value немедленно выдаст вам GUID связанного элемента.

Чтобы использовать $expand, необходимо использовать имя схемы, поэтому оно должно выглядеть следующим образом:

$expand=biz_buyerlookupid($select=contactid, fullname)

и обратите внимание, что biz_buyerlookupid чувствителен к регистру.

Вы можете посмотреть метаданные для экземпляра CRM, чтобы получить правильный регистр: https://[org].crm.dynamics.com/api/data/v9.0/$metadata

...