【问题标题】:Dynamics 365 OData getting 1:N linked entitiesDynamics 365 OData 获取 1:N 链接实体
【发布时间】:2020-08-18 07:45:07
【问题描述】:

我有 account 类型的实体,当我在 Dyn365 中查看它时,它有一个包含相关实体列表视图的部分。如何从 OData API 获取这些相关实体?

我可以查询api/data/v9.1/account,但相关实体不会出现在生成的 json 中的任何位置。

如果我对相关实体执行相同操作,则帐户不会出现在任何地方。我如何获得这两种实体之间的联系?使用 OData API。

我尝试过/accounts?$expand=contact($select=foo) 之类的方法,但它只是说帐户实体上不存在联系人属性,这是正确的。但是联系不是一个实体类型的属性。

【问题讨论】:

    标签: dynamics-crm odata dynamics-crm-365 dynamics-crm-webapi


    【解决方案1】:

    很可能,这就是您要寻找的。账号与联系人的1:N关系为contact_customer_accounts

    所有帐户及其相关联系人:

    https://crmdev.crm.dynamics.com/api/data/v9.1/accounts?$select=name&$expand=contact_customer_accounts($select=fullname)
    

    具有相关联系人的特定帐户:

    https://crmdev.crm.dynamics.com/api/data/v9.1/accounts(73C84814-729B-EA11-A811-000D3A370DB6)?$select=name&$expand=contact_customer_accounts($select=fullname)
    

    【讨论】:

    • 这背后的逻辑是什么?如果我有两个实体AaaBbb 是它们之间的链接实体然后命名为aaa_bbb 怎么办?
    • @CodeMonkey 这完全取决于您如何建立关系以及您提供的名称。这个客户/联系人实体有一些复杂的关系。您可以使用 XRMToolbox 中的元数据浏览器进行浏览
    【解决方案2】:

    解决方法是使用如下url获取所有关系的名称。

    https://<company>.crm.dynamics.com/api/data/v9.1/RelationshipDefinitions?$select=SchemaName
    

    结果是每个关系的以下行的数组。

    {"@odata.type":"#Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata","SchemaName":"aaa_bbb","MetadataId":"<guid>"},
    

    然后使用这些名称,特别是 $expand 查询参数中的 SchemaName 属性。

    https://crmdev.crm.dynamics.com/api/data/v9.1/accounts?
    $select=<whatever>&
    $expand=aaa_bbb($select=<properties from linked entity>)
    

    要弄清楚什么关系实际上可以满足您的需要,如果您无法猜测是什么,您需要阅读的不仅仅是 SchemaName,或者如果您知道如何并有权访问,则通过 GUI 在 Dynamics 中查找它.我没有。

    RelationshipDefinition 包含其他属性,例如 ReferencedEntity ReferencingEntity,可用于确定您是否获得了正确的关系。

    【讨论】:

    • 好的,所以您正在寻找元数据 API 来动态提取名称。很高兴知道
    • @ArunVinoth 不是动态的,但我不知道如何在 Dynamics 中查找不同实体的关系名称,我不确定我是否可以访问。所以我只是硬编码代码中的关系名称来导航实体图。
    猜你喜欢
    • 2019-09-03
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    相关资源
    最近更新 更多