Dela via


Arbeta med kunskapsartiklar

Den nya kunskapsupplevelsen i Dynamics 365 Customer Service gör att du kan skapa omfattande kunskapsartiklar tillsammans med versions- och översättningsstöd. Den nya kunskapsprocessen använder entiteten KnowledgeArticle för att lagra och hantera kunskap internt i Dynamics 365 Customer Service.

Kommentar

Entiteterna KBArticle, KBArticleTemplate och KBArticleComment är nu inaktuella. Detta innebär att du inte förväntas använda de här entiteterna längre. Du måste använda den nyare KnowledgeArticle-entiteten för kunskapshantering i Dynamics 365 Customer Service. Mer information finns i avsnittet Inaktuella kunskapsentiteter i slutet av detta ämne.

Skapa en kunskapsartikel

När du skapar en post för kunskapsartiklar skapar Dynamics 365 Customer Service en rotartikel för posten internt. Rotartikeln fungerar som en behållare för den primära kunskapsartikeln som skapades av dig, tillsammans med alla artikelversioner och översättningar som du kan skapa i framtiden. Följande diagram illustrerar entitetsmodellen för KnowledgeArticle-entiteten.

Entitetsmodell för kunskapsartikel.

När du skapar en post för kunskapsartiklar skapas denna i tillståndet Draft. Med den nya KnowledgeArticle-entiteten kan du skapa en artikel genom att ange dess innehåll och format i HTML-format. Du kan ange ett eget värde för KnowledgeArticle.ArticlePublicNumber attributet medan en post för kunskapsartikel skapas programmatiskt; i annat fall genereras värdet automatiskt utifrån det format du angav i området för Dynamics 365 Customer Service-inställningar i webbklienten. KnowledgeArticle.ArticlePublicNumber attributet lagrar ID:t som visas för kunder, partners och andra externa användare för att referera till och söka efter kunskapsartiklar, och de förblir desamma i alla kunskapsartikelversioner och översättningar.

Följande exempelkod visar hur du kan skapa en post för kunskapsartiklar.

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

Skapa primära och sekundära versioner av kunskapsartiklar

När du skapar en post för kunskapsartiklar får den primära versionen automatiskt värdet 1 och den sekundära versionen värdet 0. Använd CreateKnowledgeArticleVersion meddelandet (CreateKnowledgeArticleVersion Action eller CreateKnowledgeArticleVersionRequest) om du vill skapa en primär eller sekundär version av en kunskapsartikel. I förfråganmeddelandet anger du IsMajor som true om du vill skapa en primär version. Ange den som false om du vill skapa en sekundär version. Den nya versionsposten som skapas använder:

  • KnowledgeArticle.RootArticleId-attributet för att upprätthålla kopplingen till posten för rotkunskapsartikeln.

  • KnowledgeArticle.PreviousArticleContentId-attribut som pekar mot den tidigare versionen av posten.

Följande exempelkod visar hur du kan skapa en primär version av en kunskapsartikelpost med hjälp av CreateKnowledgeArticleVersionRequest.

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

Skapa en översättning av kunskapsartikeln

Använd CreateKnowledgeArticleTranslation Action (Webb-API) eller CreateKnowledgeArticleTranslationRequest (organisationstjänst) om du vill skapa en översättning för en post i kunskapsartikeln. Du kan översätta kunskapsartiklar till mer än 150 språk, och information om dessa språk som stöds finns i den nya LanguageLocale-entiteten.

Mer information: entiteten LanguageLocale.

Om du använder CreateKnowledgeArticleTranslation Action (Webb-API) eller CreateKnowledgeArticleTranslationRequest (organisationstjänst) skapas en ny post för kunskapsartikeln med rubrik, innehåll, beskrivning och nyckelord som kopierats från källposten till den nya posten, och det språk som används för den nya posten är det som du angav i förfrågan. Du måste också ange om den nya posten ska vara en primär eller sekundär version. Den nya posten använder KnowledgeArticle.ParentArticleContentId-attributet för att upprätthålla kopplingen till den primära posten för rotkunskapsartikeln.

När du har kört meddelandet och får svar hämtar du kunskapsartikelposten från svarsobjektet och uppdaterar sedan rubrik, innehåll, beskrivning och nyckelord för att lägga till det översatta innehållet.

Följande exempelkod visar hur du kan skapa en post för kunskapsartiklar med hjälp av 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));  

Kommentar

GUID-värdet för primär nyckel (LanguageLocaleId) för respektive språkpost i entiteten LanguageLocale är densamma i alla Dynamics 365 Customer Service-organisationer.

Livscykel för kunskapsartikel: Ändra tillstånd för en kunskapsartikel

Under sin livscykel kan en kunskapsartikel ha följande status:

  • 0: utkast (när en kunskapsartikel har skapats)

  • 1: godkänd (när en kunskapsartikel har godkänts)

  • 2: schemalagd (när en kunskapsartikel har schemalagts för publicering)

  • 3: publicerad (när en kunskapsartikel har publicerats)

  • 4: förfaller (när en kunskapsartikel förfaller i enlighet med det förfallodatum som angavs i samband med publicering)

  • 5: arkiverad (när en kunskapsartikel har arkiverats)

  • 6: förkasta (när en kunskapsartikel har förkastats)

Om du vill ändra tillståndet på artikeln använder du meddelandet Update för kunskapsartikelposten för att uppdatera KnowledgeArticle.StateCode-attributet. För tidigt bundna typer använder du KnowledgeArticleState-uppräkningen för att ange möjliga tillstånd. Mer information: Utföra specialiserade åtgärder med hjälp av Uppdatera.

Följande exempelkod visar hur du kan publicera en post för kunskapsartiklar.

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

Associera en post för kunskapsartiklar med en entitetsinstans för Dynamics 365 Customer Service

När du aktiverar inbäddad kunskapssökning för en entitet i Dynamics 365 Customer Service med hjälp av webbklienten skapas en n:n-relation msdyn_<Entitetsnamn>_knowledgearticle automatiskt. Du kan använda den här relationen för att programmässigt associera eller länka en KnowledgeArticle-instans med en Dynamics 365 Customer Service-entitetsinstans. När du associerar en KnowledgeArticle-instans med en entitetsinstans skapas en post för relationen i en snitt-entitet som kallas msdyn_<Entitetsnamn>_knowledgearticle. Om du till exempel associerar en KnowledgeArticle-instans med en Account-instans för första gången skapas en överlappande entitet som heter msdyn_account_knowledgearticle, och en post med associationsmappningen skapas i denna överlappande entitet. Som standard aktiveras entiteten Incident (Ärende) för den inbäddade kunskapsbassökningen, och när du länkar en KnowledgeArticle-post till en Incident-post skapas en associationspost i den överlappande KnowledgeArticleIncident-entiteten.

Följande exempelkod visar hur du associerar en KnowledgeArticle-instans med en Account-instans:

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

Antal visningar för kunskapsartikel om förbättringar

Använd meddelandet IncrementKnowledgeArticleViewCountRequest om du vill öka antalet visningar av en kunskapsartikelpost för en viss dag i entiteten KnowledgeArticleViews. Om det inte finns någon post för en kunskapsartikel för en angiven dag skapas en post, varefter angivet värdet för antal visningar anges i KnowledgeArticleViews .KnowledgeArticleView attribut. Om det redan finns en post för en kunskapsartikel för den angivna dagen kommer den bara att öka antalet visningar i KnowledgeArticleViews.KnowledgeArticleView-attribut för den befintliga posten.

Kunskapsartiklar i Dynamics 365 Customer Service, inklusive dessas versioner och översättningar, är fulltextindexerade och stöder fulltextsökning i SQL Server. Mer information om fulltextsökning finns i SQL Server: Fulltextsökning.

Använd FullTextSearchKnowledgeArticleRequest-meddelandet för att söka bland kunskapsartiklar i dina program för att finna den information du söker. Med FullTextSearchKnowledgeArticleRequest meddelandet kan du använda böjningsstammatchning (gör att söktexten kan ersättas med ett annat tempus eller böjning) och ange frågevillkor (med hjälp av FetchXML eller QueryExpression för att ange filtrering, ordning, sortering och sidindelning) för att hitta kunskapsbasartiklar med angiven text. Du kan även välja att ta bort flera versioner av samma artiklar i sökresultaten och filtrera på kunskapsartikeltillståndet när du söker efter en text.

Inaktuella kunskapsentiteter

Följande äldre entiteter är inaktuella. Mer information: Inaktuella kunskapsentiteter

Äldre kunskapsentiteter är inte tillgängliga från den 1 december 2020. Vi rekommenderar starkt att du flyttar till entiteten KnowledgeArticle. Mer information om hur du skapar en kunskapsartikel i enhetligt gränssnitt finns i Skapa och hantera kunskapsartiklar.  

Använd följande om du vill ha hjälp med migrering:

  • Använd SDK, WebAPI eller Microsoft Power Automate beroende på dina scenarier.
  • Använd migreringsverktyget med öppen källkod med MIT-licens.

Viktigt!

  • Migreringsverktyget med öppen källkod stöds inte av Microsoft och kan behöva ändras för att passa dina scenarier.
  • Kör alltid en testmiljö före användning i tillverkningen.
  • Kontrollera licens och Viktigt-fil innan du använder verktyget.

Se även