在Dynamics 365 CRM v9.0 Web API中获取帐户实体的所有相关联系人

时间:2019-02-04 18:45:38

标签: rest api dynamics-crm microsoft-dynamics dynamics-crm-webapi

基本上,我正在查询D365 Web API,并且试图获取帐户的所有相关联系人。

跟随此链接:

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

尝试使用$expand,但这只会带来_primarycontactid_value。因此,只有一个主要联系人,而不是与该帐户相关的所有人。

类似于以下内容:

/api/data/v9.0/accounts&?select=name&$expand=Contacts(fullname, email)

帐户中仅有“联系人”的字段是:

preferredcontactmethodcode
_primarycontactid_value
address2_primarycontactname
address1_primarycontactname
_tcc_primaryinvoicecontactid_value
_tcc_consultingcontact_value
_tcc_contactlist_value //some custom field that doesn't apparently do anything
_new_foundationcontact_value
_tcc_primaryapcontactid_value

所以没有一个可以用来查找我所知道的所有联系人。

另一种方法是先从联系人开始,然后在$expand=上依次_parentcustomerid_value。但是我需要筛选“帐户”以指定我想要的某些帐户...这只会覆盖每个帐户,而且速度非常慢。我不确定是否可以通过$filter=值来$expand=

所以:

  1. 如何查询该帐户以及与该帐户的联系人相关的所有信息?
  2. 如果没有办法,是否可以在$filter=上使用$expand=和值?

尝试将查询量保持在最低水平。这可以通过执行多个迭代查询来解决,但这只会使其变得异常缓慢。或者只是查询所有内容并将其拼凑在一起,但这同样会很慢。

1 个答案:

答案 0 :(得分:0)

好吧,偶然发现了答案:contact_customer_accounts

查询最终如下所示:/api/data/v9.0/accounts&?select=name&$expand=contact_customer_accounts($select=fullname)

据我所知,尽管我只用1:N类型进行了测试,但是也可以使用自定义关系。

仍然需要一段时间才能生成,但是可以正常工作。