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

soc*_*pet 1 api rest microsoft-dynamics dynamics-crm dynamics-crm-webapi

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

一直关注这个链接:

https://learn.microsoft.com/en-us/dynamics365/customer-engagement/developer/webapi/query-data-web-api#retrieve-lated-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
Run Code Online (Sandbox Code Playgroud)

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

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

所以:

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

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

soc*_*pet 5

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

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

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

仍然需要一点时间来生成,但可以工作。