我正在探索 Dynamics CRM 4,当我搜索记录时 例如,联系人,例如。 Abcd,Dynamics 正在按 Abcd* 搜索, 默认情况下,最后包括通配符。
有没有什么方法可以在默认情况下在开头也包含通配符? 前任。
Abcd --> *Abcd*
您应该能够为 RetrieveMultiple 事件构建预插件并访问输入参数集合的 Query 属性,该属性将包含用户输入的搜索字符串。由于您处于预事件中,因此您可以在前面添加一个在搜索字符串中添加星号,这应该会产生您想要的结果。
抱歉,没有办法做到这一点。 CRM 在运行时将搜索查询转换为 SQL Like,因此甚至没有 hack(例如修改存储过程)。
我通过在自定义 ASPX 页面中集成 IFrame 来完成自定义搜索,以避免使用默认的“搜索引擎”...也许这是您问题的替代解决方案。
您可以使用 RetrieveMultiple 消息的预插件,如下所示。它适用于除业务部门之外的每个实体,我不知道为什么
if (context.InputParameters.Contains("Query"))
{
FetchExpression Q =
(FetchExpression)context.InputParameters["Query"];
string query = Q.Query;
if (query != "" &&
query.Contains("isquickfindfields=\"1\"") && query.Contains("%"))
{
Regex regex = new Regex("([^\"]*%)");
MatchCollection matches = regex.Matches(query);
foreach (Match match in matches)
{
query = query.Replace("\"" + match.Value + "\"", "\"%" + match.Value + "\"");
}
context.InputParameters["Query"] = new FetchExpression() { Query = query };
}
}