Trabalhe com a tabela KnowledgeArticle

Aplica-se a: Dynamics 365 Customer Service e Dynamics 365 Contact Center — somente nas versões autônomas

Use a KnowledgeArticle tabela para incorporar capacidades de gestão do conhecimento em suas soluções Dynamics 365 Customer Service. Este artigo descreve como criar artigos, gerenciar versões e traduções, publicar conteúdo e integrar artigos de conhecimento com outras entidades de atendimento ao cliente.

Pré-requisitos

Certifique-se de que você tem os papéis e privilégios necessários.

Criar um artigo de conhecimento

Quando você cria um registro de artigo de conhecimento, Dynamics 365 Customer Service cria internamente um artigo raiz para o registro. O artigo raiz funciona como um recipiente para o artigo de conhecimento principal que você cria, junto com todas as versões e traduções do artigo que você pode criar no futuro. O diagrama a seguir mostra o modelo da tabela para a KnowledgeArticle tabela.

Módulo de entidade KnowledgeArticle.

Quando você cria um registro de artigo da base de conhecimento, ele é criado no estado Draft. Usando a nova KnowledgeArticle tabela, você pode criar um artigo especificando seu conteúdo e formatação em formato HTML. Você pode especificar seu próprio valor para o KnowledgeArticle. ArticlePublicNumber atributo ao criar programaticamente um registro de artigo da base de conhecimento. Caso contrário, o valor é gerado automaticamente com base no formato que você especificou na área de configurações do Dynamics 365 Customer Service no cliente web. O KnowledgeArticle. ArticlePublicNumber o atributo armazena o ID exposto a clientes, parceiros e outros usuários externos para referenciar e pesquisar artigos da base de conhecimento. Permanece o mesmo em versões e traduções de artigos de conhecimento.

O código de amostra a seguir mostra como criar um registro do artigo de conhecimento.

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

Crie uma versão principal e secundária do artigo de conhecimento

Quando você cria um registro de artigo de conhecimento, a versão principal é automaticamente definida como 1 e a versão secundária como 0. Use a mensagem CreateKnowledgeArticleVersion (CreateKnowledgeArticleVersion Action ou CreateKnowledgeArticleVersionRequest) para criar uma versão principal ou secundária de um artigo de conhecimento. Na mensagem de solicitação, defina IsMajor para true criar uma versão maior, ou defina para false criar uma versão menor. O novo registro de versão usa os seguintes atributos:

  • KnowledgeArticle. O atributo RootArticleId para manter a associação ao registro de artigo de conhecimento raiz.

  • KnowledgeArticle. O atributo PreviousArticleContentId para apontar para a versão anterior do registro.

O código de exemplo a seguir mostra como criar uma versão principal de um registro de artigo de conhecimento usando CreateKnowledgeArticleVersionRequest.

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

Criar uma tradução do artigo de conhecimento

Use a Ação CreateKnowledgeArticleTranslation (API Web) ou CreateKnowledgeArticleTranslationRequest (serviço da organização) para criar uma tradução de um registro do artigo de conhecimento. Você pode traduzir seu artigo de conhecimento para mais de 150 idiomas. Informações sobre essas linguagens suportadas estão disponíveis na nova LanguageLocale tabela.

Saiba mais na tabela LanguageLocality.

Ao usar CreateKnowledgeArticleTranslation Action (Web API) ou CreateKnowledgeArticleTranslationRequest (serviço de organização), você cria um novo registro de artigo de conhecimento com o título, conteúdo, descrição e palavras-chave copiados do registro fonte para o novo registro. Você define a linguagem do novo registro para a que especifica na solicitação. Você também precisa especificar se o novo disco é uma versão maior ou menor. O novo registro usa o atributo KnowledgeArticle. O atributo ParentArticleContentId para manter a associação com o registro de artigo de conhecimento principal.

Após executar esta mensagem e receber uma resposta, recupere o registro do artigo de conhecimento do objeto de resposta e atualize o título, o conteúdo, a descrição e as palavras-chaves para adicionar ao conteúdo traduzido.

O código de exemplo a seguir mostra como criar uma tradução de artigo de conhecimento usando 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));  

Note

O valor GUID da chave primária (LanguageLocaleId) para cada registro de idioma na entidade LanguageLocale é o mesmo em todas as organizações Dynamics 365 Customer Service.

Ciclo de vida de artigos de conhecimento: Alterar o estado de um artigo de conhecimento

Durante seu ciclo de vida, um artigo de conhecimento pode estar nos seguintes estados:

  • 0: Rascunho (após criar um artigo de conhecimento)

  • 1: Aprovado (após aprovar um artigo de conhecimento)

  • 2: Agendado (após agendar a publicação de um artigo de conhecimento)

  • 3: Publicado (após você publicar um artigo de conhecimento)

  • 4: Expirado (após um artigo de conhecimento expirar conforme a data de expiração especificada durante a publicação)

  • 5: Arquivado (após você arquivar um artigo de conhecimento)

  • 6: Descartado (após descartar um artigo de conhecimento)

Para alterar o estado do artigo, use a mensagem Update no registro do artigo de conhecimento para atualizar o atributo KnowledgeArticle.StateCode. Para tipos de associação precoce, use a enumeração KnowledgeArticleState para definir os possíveis estados. Saiba mais em Realizar operações especializadas usando Atualizar.

O código de exemplo a seguir mostra como publicar um registro do artigo de conhecimento.

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

Note

statecode valores como Rascunho (0) indicam o estágio do ciclo de vida do artigo, e não confidencialidade ou visibilidade. Usuários com os privilégios apropriados de Leitura e Escrita podem acessar artigos em rascunho.

Associar um registro do artigo de conhecimento a uma instância de entidade do Dynamics 365 Customer Service

Quando você habilita a busca de conhecimento embutida para uma tabela em Dynamics 365 Customer Service usando o cliente web, o sistema cria automaticamente uma relação muitos-para-muitos chamada msdyn_<Entity_Name>_knowledgearticle. Use essa relação para associar ou vincular programaticamente uma KnowledgeArticle instância a uma instância de tabela do Dynamics 365 Customer Service. Quando você associa uma KnowledgeArticle instância a uma instância de tabela, cria um registro para a relação em uma tabela de interseto chamada msdyn_<Entity_Name>_knowledgearticle. Por exemplo, quando você associa uma KnowledgeArticle instância a uma Account instância pela primeira vez, cria uma tabela de interseto chamada msdyn_account_knowledgearticle, e cria um registro com o mapeamento de associação nessa tabela de interseção. Por padrão, a tabela Incident (Case) está habilitada para a pesquisa de conhecimento incorporada. Quando você vincula um registro KnowledgeArticle a um registro Incident, cria um registro de associação na tabela de interseção KnowledgeArticleIncident.

O código de exemplo a seguir demonstra como associar uma instância KnowledgeArticle a uma instância 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);  
  

Aumentar a contagem de exibições do artigo de conhecimento

Use a mensagem IncrementKnowledgeArticleViewCountRequest para incrementar o número de visualizações de um registro de artigo da base de conhecimento em um determinado dia na tabela KnowledgeArticleViews. Se um registro não existir para um artigo de conhecimento em um dia especificado, a operação cria um registro e define o valor especificado de contagem de visualizações no KnowledgeArticleViews.Atributo KnowledgeArticleView. Se já existir um registro para um artigo da base de conhecimento no dia especificado, a operação incrementa a contagem de visualizações em KnowledgeArticleViews. O atributo KnowledgeArticleView do registro existente.

Os artigos de conhecimento no Dynamics 365 Customer Service, incluindo suas versões e traduções, são indexados em texto completo e oferecem suporte à pesquisa de texto completo do SQL Server. Saiba mais sobre a pesquisa de texto completo, em SQL Server: Pesquisa de texto completo.

Use a mensagem FullTextSearchKnowledgeArticleRequest para pesquisar artigos da base de conhecimento dos seus aplicativos e encontrar a informação que você está procurando. A FullTextSearchKnowledgeArticleRequest mensagem permite que você use o ajuste de hastes flexionais (que permite substituir o texto de busca por um tempo ou inflexão diferente) e especifique critérios de consulta (usando FetchXML ou QueryExpression para especificar filtragem, ordenação, ordenação e paginação) para encontrar artigos de conhecimento com texto especificado. Você também pode optar por remover várias versões dos mesmos artigos nos resultados de pesquisa e o filtro no estado do artigo de conhecimento ao procurar um texto.

Entidades de conhecimento preteridas

As seguintes entidades legadas estão obsoletas. Saiba mais em entidades de conhecimento preteridas.

A partir de 1º de dezembro de 2020, você não pode acessar entidades de conhecimento legadas. Vá até a tabela KnowledgeArticle. Saiba mais em Criar e gerenciar artigos de conhecimento.    

Para ajuda com migração, utilize os seguintes recursos:

  • Use o SDK, WebAPI ou Microsoft Power Automate dependendo de seus cenários.
  • Use a ferramenta de migração código aberto com licença MIT.

Importante

  • A Microsoft não suporta a ferramenta de migração código aberto. Talvez você precise modificá-lo para se adequar ao seu cenário.
  • Sempre execute um ambiente de teste antes de usar na produção.
  • Verifique a licença e o leiame antes de usar a ferramenta.