Поделиться через


Работа со статьями базы знаний

Новый опыт знаний в Dynamics 365 Customer Service позволяет создавать статьи знаний с богатым контентом наряду с поддержкой версий и перевода. Новый опыт знаний использует сущность KnowledgeArticle для хранения и управления знаниями непосредственно в Dynamics 365 Customer Service.

Заметка

Сущности KBArticle, KBArticleTemplate и KBArticleComment не рекомендуются. Это означает, что мы не ожидаем, что вы будете использовать эти сущности. Необходимо использовать более новую сущность KnowledgeArticle для управления знаниями в Dynamics 365 Customer Service. Дополнительные сведения см. в раздел нерекомендуемые сущности знаний в конце этого раздела.

Создание статьи базы знаний

При создании записи статьи базы знаний Dynamics 365 Customer Service внутренне создает корневую статью для записи. Корневая статья действует как контейнер для основной статьи базы знаний, созданной вами, вместе со всеми версиями статьи и переводами, которые вы можете создать в будущем. Следующая диаграмма изображает модель сущности для сущности KnowledgeArticle.

Модель сущности KnowledgeArticle.

Когда вы создаете запись статьи базы знаний, она создается в состоянии Draft. Используя новую сущность KnowledgeArticle, вы можете создать статью, указав ее содержание и форматирование в формате HTML. Вы можете указать свое значение для KnowledgeArticle. Атрибут ArticlePublicNumber при создании записи статьи базы знаний программно; в противном случае значение генерируется автоматически на основе формата, который вы указали в области настроек Dynamics 365 Customer Service в веб-клиенте. KnowledgeArticle. Атрибут ArticlePublicNumber хранит идентификатор, предоставленный клиентам, партнерам и другим внешним пользователям для ссылки и поиска статей базы знаний, и остается неизменным в версиях и переводах статей базы знаний.

В следующем примере кода показано, как создать запись статьи базы знаний.

KnowledgeArticle newKnowledgeArticle = new KnowledgeArticle  
{  
   Title = "Sample Knowledge Article",  
   Content = "<p>This is the article content.</p>"  
};  
knowledgeArticleId = _serviceProxy.Create(newKnowledgeArticle);  
Console.WriteLine("Created {0}", newKnowledgeArticle.Title);  

Создание основную и младшую версии статьи базы знаний

При создании записи статьи базы знаний для основной версии автоматически устанавливается значение 1, а для младшей версии — 0. Используйте сообщение CreateKnowledgeArticleVersion (действие CreateKnowledgeArticleVersion или CreateKnowledgeArticleVersionRequest), чтобы создать основную или младшую версию статьи базы знаний. В сообщении с запросом установите IsMajor на true, чтобы создать основную версию; установите на false, чтобы создать младшую версию. Созданная запись новой версии использует:

  • KnowledgeArticle. Атрибут RootArticleId для поддержания связи с корневой записью статьи базы знаний.

  • KnowledgeArticle. Атрибут PreviousArticleContentId, указывающий на предыдущую версию записи.

В следующем примере кода показано, как создать основную запись статьи базы знаний с помощью CreateKnowledgeArticleVersionRequest.

CreateKnowledgeArticleVersionRequest versionRequest = new CreateKnowledgeArticleVersionRequest  
{  
   Source = new EntityReference(KnowledgeArticle.EntityLogicalName, knowledgeArticleId),  
   IsMajor = true  
};  
CreateKnowledgeArticleVersionResponse versionResponse = (CreateKnowledgeArticleVersionResponse)_serviceProxy.Execute(versionRequest);  

Создание перевода статьи базы знаний

Используйте действие CreateKnowledgeArticleTranslation (веб-API) или CreateKnowledgeArticleTranslationRequest (служба организации), чтобы создать перевод для записи статьи базы знаний. Вы можете перевести свою статью базы знаний на более чем 150 языков, а информация об этих поддерживаемых языках доступна в новой сущности LanguageLocale.

Дополнительные сведения см. в разделе Сущность LanguageLocale.

Использование действия CreateKnowledgeArticleTranslation (веб-API) или CreateKnowledgeArticleTranslationRequest (служба организации) создает новую запись статьи базы знаний, в которой заголовок, содержание, описание и ключевые слова копируются из исходной записи в новую запись, а язык новой записи устанавливается на тот, который вы указали в запросе. Вам также необходимо указать, будет ли новая запись основной или младшей версией. Новая запись использует KnowledgeArticle. Атрибут ParentArticleContentId для поддержания связи с основной записью статьи базы знаний.

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

В следующем примере кода показано, как создать перевод статьи базы знаний с помощью CreateKnowledgeArticleTranslationRequest:

CreateKnowledgeArticleTranslationRequest translationRequest = new CreateKnowledgeArticleTranslationRequest  
{  
   Source = new EntityReference(KnowledgeArticle.EntityLogicalName, knowledgeArticleId),  
   Language = new EntityReference(LanguageLocale.EntityLogicalName, languageLocaleId), //languageLocaleId = GUID of the Primary Key of LanguageLocale record  
   IsMajor = true    // Creating a major version   
};  
CreateKnowledgeArticleTranslationResponse translationResponse = (CreateKnowledgeArticleTranslationResponse)_serviceProxy.Execute(translationRequest);  
  
// Retrieve the new knowledge article record  
KnowledgeArticle respObject = (KnowledgeArticle)_serviceProxy.Retrieve(KnowledgeArticle.EntityLogicalName,   
      translationResponse.CreateKnowledgeArticleTranslation.Id, new ColumnSet(true));  

Заметка

Значение GUID первичного ключа (LanguageLocaleId) для каждой записи языка в сущность LanguageLocale одинаково во всех организациях Dynamics 365 Customer Service.

Жизненный цикл статьи базы знаний: изменение состояния статьи базы знаний

В течение своего жизненного цикла статья базы знаний может находиться в следующих состояниях:

  • 0: Черновик (после создания статьи базы знаний)

  • 1: Утверждено (после утверждения статьи базы знаний)

  • 2: Запланировано (после публикации статьи базы знаний)

  • 3: Опубликовано (после публикации статьи базы знаний)

  • 4: Истек срок действия (после истечения срока действия статьи базы знаний в соответствии с датой окончания срока действия, указанной при публикации)

  • 5: Архивировано (после архивации статьи базы знаний)

  • 6: Отклонено (после отклонения статьи базы знаний)

Чтобы изменить состояние статьи, используйте сообщение Update в записи статьи базы знаний для обновления атрибута KnowledgeArticle.StateCode. Для типов с ранней привязкой, используйте перечисление KnowledgeArticleState для установки возможных состояний. Дополнительные сведения см. в Выполнение специализированных операций с помощью обновления.

В следующем примере кода показано, как опубликовать запись статьи базы знаний.

// Retrieve the knowledge article record  
KnowledgeArticle myKnowledgeArticle = (KnowledgeArticle)_serviceProxy.Retrieve(  
        KnowledgeArticle.EntityLogicalName, knowledgeArticleId, new ColumnSet("statecode"));  
  
// Update the knowledge article record  
myKnowledgeArticle.StateCode = KnowledgeArticleState.Published;  
UpdateRequest updateKnowledgeArticle = new UpdateRequest  
{  
    Target = myKnowledgeArticle  
};  
_serviceProxy.Execute(updateKnowledgeArticle);  
  

Свяжите запись статьи базы знаний с экземпляром сущности Dynamics 365 Customer Service

Когда вы включаете встроенный поиск в базе знаний для сущности в Dynamics 365 Customer Service с помощью веб-клиента, возникает отношение многие ко многим, msdyn_<Entity_Name>_knowledgearticle, автоматически создается. Вы можете использовать это отношение, чтобы программно связать или связать экземпляр KnowledgeArticle с экземпляром сущности Dynamics 365 Customer Service. Когда вы связываете экземпляр KnowledgeArticle с экземпляром сущности, запись для отношения создается в пересекающейся сущности под названием msdyn_<Entity_Name>_knowledgearticle. Например, когда вы связываете экземпляр KnowledgeArticle с экземпляр Account в первый раз, пересекающаяся сущность с именем msdyn_account_knowledgearticle создается, и в этой пересекающейся сущности создается запись с сопоставлением связи. По умолчанию сущность Incident (Обращение) включена для встроенного поиска по базе знаний, и когда вы связываете запись KnowledgeArticle с записью Incident, запись связи создается в пересекающейся сущности KnowledgeArticleIncident.

В следующем примере кода показано, как связать экземпляр KnowledgeArticle с экземпляром Account:

// Associate the knowledge article record with an account record  
  
// Step 1: Create a collection of knowledge article records that will be   
// associated to the account. In this case, we have only a single  
// knowledge article record to be associated.  
EntityReferenceCollection relatedEntities = new EntityReferenceCollection();  
relatedEntities.Add(new EntityReference(KnowledgeArticle.EntityLogicalName, knowledgeArticleId));  
  
// Step 2: Create an object that defines the relationship between knowledge article record and account record.  
// Use the many-to-many relationship name (msdyn_account_knowledgearticle) between knowledge article  
// record and account record.  
Relationship newRelationship = new Relationship("msdyn_account_knowledgearticle");  
  
// Step 3: Associate the knowledge article record with the account record.  
_serviceProxy.Associate(Account.EntityLogicalName, accountId, newRelationship, relatedEntities);  
  

Увеличить количество просмотров статьи базы знаний

Использовать сообщение IncrementKnowledgeArticleViewCountRequest, чтобы увеличить количество просмотров записи статьи базы знаний для данного дня в сущности KnowledgeArticleViews. Если для статьи базы знаний в течение указанного дня не существует записи, она создаст запись и затем установит указанное значение числа просмотров в KnowledgeArticleViews. Атрибут KnowledgeArticleView. Если для статьи базы знаний за указанный день уже существует запись, она просто увеличивает число просмотров в KnowledgeArticleViews. Атрибут KnowledgeArticleView существующей записи.

Статьи базы знаний в Dynamics 365 Customer Service, включая их версии и переводы, имеют полнотекстовую индексацию и поддерживают полнотекстовый поиск SQL Server. Дополнительные сведения о полнотекстовом поиске см. в SQL Server: полнотекстовый поиск.

Использовать сообщение FullTextSearchKnowledgeArticleRequest для поиска статьи базы знаний из ваших приложений, чтобы найти информацию, которую вы ищете. Сообщение FullTextSearchKnowledgeArticleRequest позволяет использовать словоизменительное сопоставление основы (позволяет заменить искомый текст на другое время или словоизменение) и указывать критерии запроса (используя FetchXML или QueryExpression для указания фильтрации, упорядочивание, сортировка и разбиение по страницам) для поиска статей знаний с указанным текстом. Вы также можете удалить несколько версий одних и тех же статей в результатах поиска и выполнить фильтрацию по состоянию статьи базы знаний при поиске текста.

Нерекомендуемые сущности знаний

Следующие старые сущности устарели. Дополнительная информация: Устаревшие сущности знаний

Устаревшие сущности знаний недоступны с 1 декабря 2020 г. Мы настоятельно рекомендуем перейти на сущность KnowledgeArticle. Для получения дополнительной информации о создании статьи базы знаний в едином интерфейсе см. Создание статей базы знаний и управление ими.  

Используйте следующую информацию для помощи с миграцией:

  • Используйте SDK, WebAPI или Microsoft Power Automate, в зависимости от ваших сценариев.
  • Используйте средство миграции с открытым кодом с Лицензия MIT.

Внимание

  • Средство миграции с открытым исходным кодом не поддерживается Microsoft и может потребоваться изменить в соответствии с вашими сценариями.
  • Всегда запускайте тестовую среду перед использованием в рабочей.
  • Проверьте лицензию и файл сведений, прежде чем использовать средство.

См. также