適用対象: Dynamics 365 Contact Center - スタンドアロンおよび Dynamics 365 Customer Service のみ
新しいナレッジ エクスペリエンスでは、バージョン管理および翻訳サポートとともに、リッチなナレッジ記事を作成することができます。 新しいナレッジ エクスペリエンスでは、KnowledgeArticle エンティティを使用して、Dynamics 365 Customer Service でネイティブにサポート情報を保存および管理します。
注意
エンティティ KBArticle、KBArticleTemplate、KBArticleComment は非推奨になりました。 つまり、これらのエンティティを使用することは今後ありません。 Dynamics 365 Customer Service のナレッジ マネージメントにおいては、新しい KnowledgeArticle エンティティを使用する必要があります。 詳細については、 非推奨のナレッジ エンティティを参照してください。
サポート情報の記事を作成する
サポート情報記事レコードを作成すると、Dynamics 365 Customer Service は内部的にレコードのルート記事を作成します。 ルート記事は、ユーザーが作成する主要なサポート情報記事と、今後作成する可能性があるすべての記事のバージョンおよび翻訳のコンテナーとして機能します。 次の図は、KnowledgeArticle エンティティのエンティティ モデルを示しています。
サポート情報記事レコードを作成すると、レコードは Draft 状態で作成されます。 新しい KnowledgeArticle エンティティを使用すると、コンテンツを指定して HTML 形式でフォーマットすることにより、記事を作成できます。
KnowledgeArticle に対して、独自の値を指定できます。
ArticlePublicNumberプログラムでサポート情報記事レコードを作成する際に、属性に独自の値を指定しなかった場合は、Web クライアントの Dynamics 365 Customer Service 設定領域に指定した書式に基づいて値が自動的に生成されます。
KnowledgeArticle。
ArticlePublicNumber 属性は、ナレッジ記事を参照および検索するために顧客、パートナー、およびその他の外部ユーザーに公開された ID を格納し、ナレッジ記事のバージョンや翻訳の全体で同じに維持されます。
次のサンプル コードは、サポート情報記事レコードの作成方法を示しています。
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 アクション (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));
注意
LanguageLocaleId エンティティ内の各言語レコードに対する主キー (LanguageLocale) の GUID 値は、すべての 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 で Web クライアントを使用してエンティティに対する埋め込みサポート情報検索を有効にすると、多対多の関係 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 を使用してフィルター、順序、並べ替え、ページングを指定する)。 さらに、同じ記事の複数のバージョンが検索結果に含まれないようにすることや、テキスト検索時にサポート情報記事の状態でフィルター処理することを選択できます。
非推奨のサポート情報エンティティ
以下のレガシー エンティティが非推奨となりました。 詳細情報: 非推奨のナレッジ エンティティ
2020 年 12 月 1 日現在、レガシー ナレッジ エンティティにはアクセスできません。 KnowledgeArticle エンティティに移動することを強くお勧めします。 詳細については、 ナレッジ記事の作成と管理に関するページを参照してください。
移行のヘルプには、以下を使用します:
- シナリオに応じて、SDK、WebAPI、または Microsoft Power Automate を使用します。
- MIT ライセンス でオープン ソースの移行ツールを使用します。
重要
- オープン ソースの移行ツールは Microsoft によってサポートされていないため、シナリオに合わせて変更する必要がある場合があります。
- 運用環境で使用する前に、必ずテスト環境を実行してください。
- ツールを使用する前に、ライセンスと readme を確認してください。