Dynamics 365 SearchByTitleKbArticleRequest не возвращает записей

Я пытаюсь получить статью кб из онлайн-экземпляра Dynamics 365. Я использую очень простой запрос, предоставленный образцом SDK, но он никогда не возвращает никаких статей кб.

Ниже приведен код:

 SearchByTitleKbArticleRequest searchByTitleRequest =
                    new SearchByTitleKbArticleRequest()
                    {
                        SubjectId = subjectId, // I have retrieved subjectid earlier. 
                        UseInflection = false,
                        SearchText = "My Article",
                        QueryExpression = new QueryExpression()
                        {
                            ColumnSet = new ColumnSet(true),
                            EntityName = "kbarticle" // I've tried knowledgearticle as well.
                        }
                    };

var searchByTitleResponse = (SearchByTitleKbArticleResponse)
                    serviceProxy.Execute(searchByTitleRequest);

        // check success
        var retrievedArticles = searchByTitleResponse.EntityCollection.Entities;                      
        Console . WriteLine ( "  Results of search (titles found):" + retrievedArticles.Count ); // It is always 0
        foreach ( var article in retrievedArticles )
            Console . WriteLine ( article .Id );
  1. В новой версии SDK kbarticle переименован в knowledgearticle. Я безуспешно пытался использовать knowledgearticle.
  2. Подключение к экземпляру CRM Online также правильное, и я могу выполнять другие запросы с помощью службы RetrieveMultiple.
  3. Статья опубликована, и у меня также есть доступ к ней.
  4. Я могу получить ту же статью с помощью REST, а также с помощью RetrieveMultiple, поэтому я не вижу никаких проблем в статье или моем подключении.

Может ли кто-нибудь указать мне правильное направление, чтобы это сообщение работало?


person Interface Mirror    schedule 14.12.2017    source источник
comment
Вы пробовали UseInflection = true и текст статьи для поиска? Ваш текущий фильтр будет искать точное название, если я не ошибаюсь ..   -  person Arun Vinoth    schedule 14.12.2017
comment
Привет, Арун, я использовал UseInflection = false. и у статьи есть текст в теле. Я пробовал другие сообщения SDK, такие как SearchByKeyword или FullTextSearch. Я перепробовал все возможные / разные комбинации.   -  person Interface Mirror    schedule 15.12.2017


Ответы (1)


Это зависит от того, какую сущность вы используете, ниже я даю пример для статьи знаний.

Согласно Поиск статей базы знаний с помощью полнотекстового поиска, статья базы знаний являются полнотекстовыми индексами и поддерживают полнотекстовый поиск SQL Server.

Для искать статьи.

var queryExpression = new QueryExpression("knowledgearticle")
{
    ColumnSet = new ColumnSet(true),
    PageInfo = new PagingInfo()
    {
        PageNumber = 1,
        Count = 5,
    }
};

FullTextSearchKnowledgeArticleRequest searchByTitleRequest =
        new FullTextSearchKnowledgeArticleRequest()
        {
            UseInflection = true,
            SearchText = "Error",
            RemoveDuplicates = false,
            StateCode = 0,
            QueryExpression = queryExpression
        };


var fullTextSearchKnowledgeArticleResponse = (FullTextSearchKnowledgeArticleResponse)
                   orgService.Execute(searchByTitleRequest);

// check success
var retrievedArticles = fullTextSearchKnowledgeArticleResponse.EntityCollection.Entities;
Console.WriteLine("Results of search (titles found):" + retrievedArticles.Count);
foreach (var article in retrievedArticles)
    Console.WriteLine(article.Id);

Обратите внимание, что, похоже, требуется некоторое время для индексации данных в SQL, который может не вернуть вновь созданную статью с использованием FullTextSearchKnowledgeArticleRequest.

person jamachad    schedule 29.12.2017
comment
Я безуспешно перепробовал все сообщения, включая полнотекстовый поиск. Наконец, я открыл сервисный тикет со службой поддержки Microsoft и ждал, пока они исследуют проблему. - person Interface Mirror; 30.12.2017
comment
Вы пробовали это? Например, если я удалю PageInfo из QueryExpression, я не получу никаких результатов. В вашем сценарии, какой объект вы используете для создания статей, KnowledgeArticle или KbArticle? - person jamachad; 30.12.2017
comment
Приведенный ниже пример работал у меня, когда я пытался запустить его сегодня. Стоит отметить, что я попробовал то же сообщение пару дней назад, но у меня не было результатов, но на этот раз оно сработало. Однако другие сообщения по-прежнему не работают. Я также пробовал разные варианты QueryExpressions (с выбором одного столбца, ВСЕ столбцы и т. Д.). Я даже пробовал использовать родительские классы QueryExpressions. Я также пробовал использовать условия и фильтры. Я использовал и kbarticle, и knowledgearticle с одинаковыми результатами. - person Interface Mirror; 01.01.2018
comment
Проблема оказалась в том, что эти сообщения работают только с сущностью статьи, а не с kbarticle. - person Interface Mirror; 04.01.2018