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

Getting all related Contact for an Account entity in Dynamics 365 CRM v9.0 web api

基本上,我正在查询 D365 网络 API 并且我正在尝试获取一个帐户的所有相关联系人。

一直在关注这个link:

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)

帐户中唯一包含 "contact" 的字段是:

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

因此 none 可用于查找我知道的所有联系人...。

另一种方法是先从联系人开始,然后是 _parentcustomerid_value 上的 $expand=。但是我需要在帐户上进行过滤以指定我想要的某些帐户......这只会带来每个帐户并且速度非常慢。我不确定是否有办法 $filter= $expand= 值。

所以:

  1. 如何查询帐户以及与帐户联系人相关的所有信息?
  2. 如果没有办法,能不能用$filter=$expand=值?

试图将查询量保持在最低限度。这可以通过多次迭代查询来解决,但这只会使它变得非常慢。或者只是查询所有内容并将其拼凑在一起,但这也会很慢。

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

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

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

生成仍然需要一些时间,但有效。