【问题标题】:Property 'field' on type 'Microsoft.Dynamics.CRM.entity' is not a navigation property or complex property. Only navigation properties can be expanded类型“Microsoft.Dynamics.CRM.entity”的属性“字段”不是导航属性或复杂属性。只能展开导航属性
【发布时间】:2018-12-13 00:40:22
【问题描述】:

在 Dynamics 365 中遇到这个问题似乎应该可以工作,但给了我:

类型“Microsoft.Dynamics.CRM.biz_productbuyer”的属性“_biz_buyerlookupid_value”不是导航属性或复杂属性。只能展开导航属性。

我可以复制此处提供的示例,它可以找到:

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

基本上尝试阅读相关字段,因此我不必进行其他查询。

所以我在名为Product Buyerbiz_productbuyers 的自定义实体中有一个查找字段,以引入与Product 关联的Contact 名称。

当您查看实体的字段时,该字段称为biz_buyerlookupid

当您使用 Web 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)

那么这里发生了什么?据我所知,它应该从contact 实体中引入contactidfullname

【问题讨论】:

    标签: url odata dynamics-crm microsoft-dynamics dynamics-crm-365


    【解决方案1】:

    我的理解是_[field]_value 项目会立即为您提供关联项目的 GUID。

    要使用$expand,您必须使用架构名称,所以它应该如下所示:

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

    注意biz_buyerlookupid 区分大小写。

    您可以查看 CRM 实例的元数据以获取正确的大小写:https://[org].crm.dynamics.com/api/data/v9.0/$metadata

    【讨论】:

    • 查看$metadata 非常有帮助!从那里我可以查看<Propert Name=>,然后查看与查找关联的<NavigationProperty Name=>。从那里我得到了它使用的实际名称,它似乎是模式名称。现在工作!
    • 奖励:对于将来需要它的任何人,您可以组合多个扩展,例如$expand=schema_name1($select=field),schema_name2($select=field)
    • 这让我发疯了,元数据链接真的让我大开眼界并解释了一些东西(这些东西真的应该在 UI 的某个地方可见)。是时候整合我所有强大的自动化查询并改用 expand 了!
    猜你喜欢
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    相关资源
    最近更新 更多