2017-12-14 12 views
1

Dynamics 365オンラインインスタンスからkbarticleを取得しようとしています。 SDKサンプルで提供されている非常に簡単なクエリを使用しますが、kb粒子は返されません。以下は Dynamics 365 SearchByTitleKbArticleRequestはレコードを返しません。

コードです:

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に変更されます。私は運がない知識題を使ってみました。
  2. CRM Onlineインスタンスへの接続も正しく、RetrieveMultipleサービスで他のクエリを実行することができます。
  3. 記事が公開されており、記事にアクセスする権限もあります。
  4. RESTを使用してRetrieveMultipleを使用して同じ記事を取得できるため、記事や接続に問題はありません。

誰でもこのメッセージを正しく動作させるための正しい方向を指摘できますか?

+0

あなたはUseInflection = trueと検索のためにいくつかの記事本文テキストを試しましたか?間違っていない場合、現在のフィルタは正確なタイトルを検索します.. –

+0

こんにちはArun、UseInflection = falseを使用しました。記事には本文にテキストが含まれています。私はSearchByKeywordやFullTextSearchのような他のSDKメッセージを試しました。私はすべての可能な/異なる組み合わせを試しました。 –

答えて

0

これは、使用しているエンティティによって異なります。以下では、KnowledgeArticleの例を挙げています。

Search knowledge articles using full-text searchによれば、ナレッジアーティクルは全文索引付きであり、SQL Server全文検索をサポートします。

FullTextSearchKnowledgeArticleRequestを使用して記事を検索することができます。

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); 

注意、FullTextSearchKnowledgeArticleRequestを使用して、新しく作成された記事を返さない可能性がありますSQLにインデックスを作成するデータのために必要ないくつかの時間があるようです。

+0

私は運がない全文検索を含むすべてのメッセージを試しました。最後に、マイクロソフトのサポートを受けたサービスチケットを開いて、問題の調査を待っていました。 –

+0

あなたは上記を試しましたか?たとえば、QueryInpressionからPageInfoを削除しても、結果は得られません。あなたのシナリオでは、記事、KnowledgeArticleまたはKbArticleを作成するためにどのエンティティを使用していますか? –

+0

上記の例は私が今日それを実行しようとしたときに働いていました。数日前に同じメッセージのカップルを試したことに言及する価値はありますが、結果は0でしたが、今回はうまくいきました。 しかし、まだ他のメッセージは機能していません。 私はQueryExpressionsのさまざまなバリエーションを試しました(単一の列選択、すべての列などで)。私は、親クラスのQueryExpressionsを使ってみました。私は条件とフィルターを使ってみました。 kbarticleとknowledgearticleの両方を同じ結果で使用しました。 –

関連する問題