分享方式:


在 Dynamics 365 中使用知識文章

 

發佈日期: 2017年1月

適用對象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 新知識文章可讓您建立豐富的知識文章,以及版本管理和翻譯支援。 當您建立和發行知識文章時,Dynamics 365 執行個體使用者就可以使用文章的資訊,有效服務客戶。 使用 KnowledgeArticle 實體,在 Dynamics 365 原生儲存和管理知識。 如果您使用 Parature 的知識,請使用 KnowledgeBaseRecord 實體,透過程式設計方式使用 Parature 的知識庫文章。

此主題提供使用新的原生 Dynamics 365 知識管理功能的資訊。 如果您使用 Parature 做為 Dynamics 365 知識來源,請參閱 在 Dynamics 365 中使用 Parature 知識

備註

如果您使用舊版知識庫文章 (KBArticle) 實體模型,請參閱本主題後面的 使用較早的 Dynamics 365 知識庫文章。

您無法透過程式設計方式啟用 Dynamics 365 執行個體中實體的知識庫管理功能;只能使用 Dynamics 365 網頁用戶端執行。其他資訊:說明及訓練:設定 CRM 中的知識管理

本主題內容

建立知識文章

建立知識文章的主要版本和次要版本

建立知識文章翻譯

知識文章生命週期:變更知識文章的狀態

關聯知識文章記錄與 Dynamics 365 實體執行個體

遞增知識文章檢視計數

使用全文搜尋,搜尋知識文章

使用較早的 Dynamics 365 知識庫文章

建立知識文章

當您建立知識文章記錄時,Dynamics 365 會在內部建立記錄的根文章。 根文章做為您建立的主要知識文章的容器,以及您未來可能建立的所有文章版本和翻譯的容器。 下圖顯示 KnowledgeArticle 實體的實體模型。

KnowledgeArticle 實體模型

當您建立知識文章記錄時,它是在 Draft 狀態下建立。 使用新 KnowledgeArticle 實體,您可以在 HTML 格式中指定其內容與格式建立文章,相較於使用舊 KbArticle 實體,則必須將實體與描述文章區段與格式之範本關聯。 以程式設計方式建立知識文章記錄時,您可以為 KnowledgeArticle.ArticlePublicNumber 屬性指定您自己的值,否則,值是根據您在網頁用戶端 Dynamics 365 設定區域指定的格式自動建立。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 Action (Web API) 或 CreateKnowledgeArticleVersionRequest (組織服務) 建立知識文章的主要或次要版本。 在要求訊息,設定 IsMajortrue 建立主要版本,設定為 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 Action (Web API) 或 CreateKnowledgeArticleTranslationRequest (組織服務) 建立知識文章記錄的轉換。 您可以用 150 個以上語言翻譯知識文章,這些支援語言的資訊在新 LanguageLocale 實體中提供。其他資訊:LanguageLocale (語言) 實體訊息和方法

使用 CreateKnowledgeArticleTranslation Action (Web 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));

備註

LanguageLocale 實體中每個語言記錄的主索引鍵的 GUID 值 (LanguageLocaleId) 在所有 Dynamics 365 組織中均相同。

知識文章生命週期:變更知識文章的狀態

知識文章在其生命週期內可處於下列狀態:

  • 0:草稿 (在知識文章建立後)

  • 1:已核准 (在知識文章經過核准之後)

  • 2:已排程 (在知識文章已排程發行之後)

  • 3:已發行 (在知識文章發行後)

  • 4:已過期 (根據發行時指定的到期日,在知識文章到期之後)

  • 5:已封存 (在封存知識文章之後)

  • 6:已捨棄 (在捨棄知識文章之後)

若要變更文章的狀態,請在知識文章記錄上使用 Update 訊息以更新 KnowledgeArticle.StateCode 屬性。 若是早期繫結類型,請使用 KnowledgeArticleState 列舉來設定可能的狀態。其他資訊:使用 Update 執行特製化作業

下列範例程式碼將顯示如何發行知識文章記錄。

// Retrieve the knowledge article record
KnowledgeArticle myKnowledgeArticle = (KnowledgeArticle)_serviceProxy.Retrieve(
        KnowledgeArticle.EntityLogicalName, knowledgeArticleId, new ColumnSet("statecode"));

// Update the knowledge article record
myKnowledgeArticle.StateCode = new OptionSetValue((int)KnowledgeArticleState.Published);
UpdateRequest updateKnowledgeArticle = new UpdateRequest
{
    Target = myKnowledgeArticle
};
_serviceProxy.Execute(updateKnowledgeArticle);

關聯知識文章記錄與 Dynamics 365 實體執行個體

當您使用網頁用戶端啟用 Dynamics 365 實體的內嵌知識搜尋時,會自動建立多對多關聯 msdyn_<Entity_Name>_knowledgearticle。 您可以使用此關聯,以程式設計方式關聯或連結KnowledgeArticle 執行個體與 Dynamics 365 實體執行個體。 當您關聯 KnowledgeArticle 執行個體與實體執行個體時,在下列名稱的交集實體中建立此關聯的記錄:msdyn_<Entity_Name>_knowledgearticle。 例如,當您首次關聯 KnowledgeArticle 執行個體與 Account 執行個體,會建立稱為 msdyn_account_knowledgearticle 的交集實體,並在交集實體中建立關聯對應的記錄。 根據預設,Incident (案例) 實體已啟用內嵌知識搜尋,而且當您連結 Incident 記錄至 KnowledgeArticle 記錄,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 知識文章,包括其版本和翻譯,已全文檢索且支援 SQL Server 全文搜尋。 如需關於全文檢索搜尋的詳細資訊,請參閱 SQL Server:全文搜尋

使用 FullTextSearchKnowledgeArticleRequest 訊息,從您的應用程式搜尋知識文章,尋找所要的資訊。FullTextSearchKnowledgeArticleRequest 訊息讓您使用詞幹曲折變化比對 (允許使用不同時態或詞形變化來取代搜尋文字),並指定查詢準則 (使用 FetchXML 或 QueryExpression 以指定篩選、順序、排序和分頁),尋找包含指定文字的知識文章。 您也可以選擇移除搜尋結果中相同文章的多版本,並在搜尋文字時篩選知識文章狀態。

使用較早的 Dynamics 365 知識庫文章

備註

本節提供使用較早的知識庫文章實體模型的資訊,以進行 Dynamics 365 知識管理。 雖然本節中提及的實體在目前版本中仍可使用,但是您應該使用前述的知識管理實體,充分利用進階知識管理體驗。

知識庫文章在其生命週期內可處於下列狀態:

  • 1:草稿 (在文章建立後)

  • 2:未核准 (編輯期間)

  • 3:已發行 (在文章發行後)

若要變更文章的狀態,請使用 SetStateRequest 訊息。 若是早期繫結類型,請使用 KbArticleState 列舉來設定可能的狀態。

當您建立文章時,必須將它與範本和主旨產生關聯。 文章範本用來描述文章的各節與格式設定。 主旨用來將文章依業務類別組織,這些類別也會用來將案例 (事件)、銷售文宣及產品分組。 最佳做法是在建立文章之前,先建立主旨樹狀結構階層和所有必要的文章範本。

備註

Microsoft Dynamics 365 提供了許多文章範本。 這些範本包括標準文章、問題的解決方案、程序及其他範本。 建議用來建立文章範本的方法是使用 Microsoft Dynamics 365 Web 應用程式。 如果您想要以程式設計方式建立文章範本,請使用現有文章範本當做要包含的資訊以及如何設定資料格式的範例。

若要將文章與範本產生關聯,請使用 KbArticle.KbArticleTemplateId 屬性。 若要藉由指定主旨將文章放入特定類別,請使用 KbArticle.SubjectId 屬性。

指定要在搜尋中使用的文章標題和關鍵字。 若要描述文章,您可以使用 KbArticle.Description 屬性。 若要新增文章的內容,請使用 KbArticle.Content 屬性。 使用 Kbarticle.ArticleXml 屬性可新增文章的 XML 資料。KbArticle.LanguageCode 值是從範本取得,可幫助您撰寫依語言排序文章的查詢。

文章建立後,會儲存為草稿。 在此之後,您可以將文章的狀態從「草稿」變更為「未核准」。 您可以修改未核准文章的內容,讓它準備好發行。 當文章準備好可發行時,將狀態從「未核准」變更為「已發行」。

未發行的文章會從範本取得格式設定。 如果您變更範本格式,變更會自動傳播至狀態為「草稿」和「未核准」的文章。

在您發行文章後,可以新增註解 (KbArticleComment),但是無論您的權限為何,都無法編輯它。 註解可新增至任何狀態的文章。

備註

註解可新增至任何狀態的文章:「草稿」、「未核准」或「已發行」。

若要修改或更新文章,則必須解除發行該文章。 若要解除發行文章,請將文章的狀態從「已發行」變更為「未核准」。 若要從 Microsoft Dynamics 365 資料庫刪除文章,請將文章的狀態從「已發行」變更為「未核准」或「草稿」。

備註

知識庫文章無法刪除,如果是在「已發行」狀態的話。

如需在知識庫中建立、更新、編輯和尋找文章的詳細資訊,請參閱說明及訓練:使用知識庫中的文章

另請參閱

知識管理實體
在 Dynamics 365 中使用 Parature 知識
KnowledgeArticle 實體訊息和方法
KnowledgeArticleViews 實體訊息和方法
KnowledgeBaseRecord 實體訊息和方法
LanguageLocale (語言) 實體訊息和方法
KbArticle (文章) 實體訊息和方法

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權