Dynamics 365 SearchByTitleKbArticleRequest returns 没有记录
Dynamics 365 SearchByTitleKbArticleRequest returns no records
我正在尝试从 Dynamics 365 在线实例中检索 kbarticle。我使用 SDK 示例提供的一个非常简单的查询,但它从来没有 returns 任何 kbarticle。
代码如下:
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 );
- 新版SDK中,kbarticle更名为knowledgearticle。我试过使用 knowledgearticle 但没有成功。
- 与 CRM Online 实例的连接也是正确的,我能够 运行 使用 RetrieveMultiple 服务进行其他查询。
- 文章已发布,我也有访问文章的权限。
- 我能够使用 REST 和 RetrieveMultiple 检索同一篇文章,因此我在文章或我的连接中没有发现任何问题。
任何人都可以指出正确的方向来使这条消息生效吗?
这个要看你用的是什么实体,下面我以知识文章为例。
根据Search knowledge articles using full-text search,知识文章是全文索引的,支持SQL服务器全文搜索。
您可以使用 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);
请注意,在 SQL 上索引数据似乎需要一些时间,这可能不是 return 使用 FullTextSearchKnowledgeArticleRequest 新创建的文章。
我正在尝试从 Dynamics 365 在线实例中检索 kbarticle。我使用 SDK 示例提供的一个非常简单的查询,但它从来没有 returns 任何 kbarticle。
代码如下:
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 );
- 新版SDK中,kbarticle更名为knowledgearticle。我试过使用 knowledgearticle 但没有成功。
- 与 CRM Online 实例的连接也是正确的,我能够 运行 使用 RetrieveMultiple 服务进行其他查询。
- 文章已发布,我也有访问文章的权限。
- 我能够使用 REST 和 RetrieveMultiple 检索同一篇文章,因此我在文章或我的连接中没有发现任何问题。
任何人都可以指出正确的方向来使这条消息生效吗?
这个要看你用的是什么实体,下面我以知识文章为例。
根据Search knowledge articles using full-text search,知识文章是全文索引的,支持SQL服务器全文搜索。
您可以使用 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);
请注意,在 SQL 上索引数据似乎需要一些时间,这可能不是 return 使用 FullTextSearchKnowledgeArticleRequest 新创建的文章。