如何通过JavaScript或API在Dynamics CRM中通过文本搜索从多个实体获取记录?

时间:2019-06-28 10:05:20

标签: dynamics-crm

我想通过匹配文本从多个实体检索记录。是否可以使用fetchxml或Web API?我想通过javascript使用它。

2 个答案:

答案 0 :(得分:0)

尽管不受支持,但似乎可以通过以下API访问相关性搜索:https://bguidinger.com/blog/relevance-search-api

答案 1 :(得分:0)

使用FetchXML当然可以实现。具体来说,您想使用 like 运算符。例如,以下“提取查询”会在联系人姓名和电子邮件中搜索给定值:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="contact">
    <attribute name="fullname" />
    <attribute name="contactid" />
    <filter type="and">
      <filter type="or">
        <condition attribute="fullname" operator="like" value="%[Insert Dynamic Value]%" />
        <condition attribute="emailaddress1" operator="like" value="%[Insert Dynamic Value]%" />
      </filter>
    </filter>
  </entity>
</fetch>

为您要搜索的每个表写一个类似的提取查询。

是否可以将所有实体组合在一起,而不是使用fetchXml单独请求?
否,从设计上讲FetchXML不支持查询多个不相关的记录。尽管您可以在单个访存表达式中查询相关记录,但是您无法在多个表中强制执行OR条件。例如,您不能编写与以下SQL类似的FetchXML查询:

SELECT *
FROM contact
JOIN account on contact.accountid = account.accountid
WHERE contact.fullname like '%foo%'
OR account.name like '%foo%'