首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Dynamics 2013中快速查找插件注册

在Dynamics 2013中快速查找插件注册
EN

Stack Overflow用户
提问于 2015-04-12 06:27:19
回答 2查看 655关注 0票数 0

我必须注册一个插件上的快速查找搜索“艺术”实体。当用户在文章实体上的快速查找文本框中输入任何内容时,我的插件执行并返回,根据我们的业务逻辑过滤数据。1.当我们发现使用快速查找时会触发什么事件。2.触发此事件时传递的消息。

我尝试过在RetrieveMultiple消息上注册插件,但是当我们单击“快速查找”中的搜索时,不会触发这个插件。

请帮帮忙。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-18 09:14:35

我们已经向微软提出了解决这一问题的办法。他们提供的解决方案是修改数据库,使插件注册工具中的消息SearchByTitleKbArticleRequest可用。

目前,我不记得我们根据这些消息更新了一个标志的表。

更新表后,我们能够根据消息注册插件。

SearchByTitleKbArticleRequest

然后触发插件,我们修改了从那里返回的实体集合。

票数 0
EN

Stack Overflow用户

发布于 2015-04-13 05:19:08

我们在RetrieveMultiple上注册了一个插件。我们有一个业务要求搜索记录,默认情况下使用WildCard。

插件注册详细信息:

Message: RetrieveMultiple

Primary Entity:None

Secondary Entity:None

Pre-Operation

代码:

代码语言:javascript
复制
public const String QueryLiteral = "Query";
    public const String LIKE = "%";
    public void Execute(IServiceProvider serviceProvider)
    {
        String ParentEntity = String.Empty;
        String OriginalSearch = String.Empty;

        // Obtain the execution context from the service provider. 
        var ContextInstance = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
        // Get a reference to the Organization service. 
        IOrganizationService ServiceInstance =
            ((IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory))).
                CreateOrganizationService(ContextInstance.InitiatingUserId);
        // Critical Point here - NOTICE that the InputParameters Contains the word Query
        if (ContextInstance.Depth < 2 && ContextInstance.InputParameters.Contains(QueryLiteral) &&
               ContextInstance.InputParameters[QueryLiteral] is QueryExpression)
        {
            QueryExpression QueryPointer = (ContextInstance.InputParameters[QueryLiteral] as QueryExpression);
            //Verify the conversion worked as expected - if not, everything else is useless
            if (null != QueryPointer)
            {
                // Check if the request is coming from any Search View 
                // We know this b/c Criteria isn't null and the Filters Count > 1
                if (null != QueryPointer.Criteria && QueryPointer.Criteria.Filters.Count > 1)
                {
                    ParentEntity = ContextInstance.PrimaryEntityName;
                    OriginalSearch = QueryPointer.Criteria.Filters[1].Conditions[0].Values[0].ToString();
                    OriginalSearch = String.Format(CultureInfo.CurrentCulture,
                                     "{0}{1}", LIKE, OriginalSearch);
                }
                ConditionExpression NewCondition = null;
                FilterExpression NewFilter = null;
                if (null != QueryPointer.Criteria)
                {
                    //Change the default 'BeginsWith'Operator to 'Contains/Like' operator in the basic search query
                    foreach (FilterExpression FilterSet in QueryPointer.Criteria.Filters)
                    {
                        foreach (ConditionExpression ConditionSet in FilterSet.Conditions)
                        {
                            if (ConditionSet.Operator == ConditionOperator.Like)
                            {
                                if (OriginalSearch != "")
                                    ConditionSet.Values[0] = OriginalSearch;
                                else
                                {
                                    OriginalSearch = QueryPointer.Criteria.Filters[0].Conditions[0].Values[0].ToString();
                                    OriginalSearch = String.Format(CultureInfo.CurrentCulture,
                                                     "{0}{1}", LIKE, OriginalSearch);
                                    ConditionSet.Values[0] = OriginalSearch;

                                }
                            }
                        }
                    }
                }
            }
            ContextInstance.InputParameters[QueryLiteral] = QueryPointer;
        }
 }

查看此帖子的详细信息:http://www.williamgryan.mobi/?p=596

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29586665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档