在 Common Data Service 中跨多个 Dynamics 实体进行筛选
Filtering across multiple Dynamics entities in Common Data Service
我正在尝试通过 Common Data Service / Microsoft Dataverse 查询我们的 Dynamics 365 CRM。当我只需要过滤我正在搜索的实体类型中存在的字段时,我可以管理它。但我还需要过滤不同的链接实体。
到目前为止,我可以很好地查询联系人实体:
var contacts = svc.Get("contacts?" +
"$select=firstname,lastname,address1_name,address1_line1," +
"address1_postalcode,emailaddress1,statecode,_parentcustomerid_value&" +
$"$filter=contains(firstname,'{firstName}') and " +
$"contains(lastname, '{lastName}')"
, formattedValueHeaders);
而这个 returns 符合过滤器的联系人列表。
但是,我还需要过滤联系人链接到的帐户名称。如果我有 AccountId 值,那么我可以通过向过滤器添加 $"contains(_parentcustomerid_value, '{accountId}')"
来实现。但我不能使用它,因为我收到的要查询的输入数据是帐户名称,而不是 Id 值。
关于如何做到这一点有什么想法吗?
目前,我能看到的唯一方法是使用我现有的查询,然后遍历每个联系人并检查响应中返回的帐户名称,如果这匹配,那么实际上我已经过滤了它。但我更希望能够在单个查询中使用整个过滤器。
您可以使用它根据查找字段名称值进行过滤。
https://devorg.crm.dynamics.com/api/data/v9.1/contacts?$filter=parentcustomerid_account/name eq 'test'
我正在尝试通过 Common Data Service / Microsoft Dataverse 查询我们的 Dynamics 365 CRM。当我只需要过滤我正在搜索的实体类型中存在的字段时,我可以管理它。但我还需要过滤不同的链接实体。
到目前为止,我可以很好地查询联系人实体:
var contacts = svc.Get("contacts?" +
"$select=firstname,lastname,address1_name,address1_line1," +
"address1_postalcode,emailaddress1,statecode,_parentcustomerid_value&" +
$"$filter=contains(firstname,'{firstName}') and " +
$"contains(lastname, '{lastName}')"
, formattedValueHeaders);
而这个 returns 符合过滤器的联系人列表。
但是,我还需要过滤联系人链接到的帐户名称。如果我有 AccountId 值,那么我可以通过向过滤器添加 $"contains(_parentcustomerid_value, '{accountId}')"
来实现。但我不能使用它,因为我收到的要查询的输入数据是帐户名称,而不是 Id 值。
关于如何做到这一点有什么想法吗?
目前,我能看到的唯一方法是使用我现有的查询,然后遍历每个联系人并检查响应中返回的帐户名称,如果这匹配,那么实际上我已经过滤了它。但我更希望能够在单个查询中使用整个过滤器。
您可以使用它根据查找字段名称值进行过滤。
https://devorg.crm.dynamics.com/api/data/v9.1/contacts?$filter=parentcustomerid_account/name eq 'test'