1

CRM でケースを更新できるプラグインがありますが、ワークフローを使用してこれを自動化することはできないと思うので、新しいナレッジベース記事を作成したいと考えています。プラグインは、ケースが解決されたときに実行されるワークフローによってトリガーされます。

これが私がこれまでに持っているものですが、うまくいきません:

Entity article = new Entity("kbarticle");
article["title"] = articleTitle;
article["subject"] = articleSubject;

service.Create(article);

Guid articleGUID = service.Create(article);

ColumnSet attributes = new ColumnSet(new string[] { "description" });

article = service.Retrieve(article.LogicalName, articleGUID, attributes);

article["description"] = articleDescription;

service.Update(article);
4

4 に答える 4

2

いくつかのこと...

無効な属性

article["subject"] = articleSubject;

subjectkbarticleエンティティの有効な属性ではありません。subjectid ですLookupが、有効なサブジェクトレコードである必要があります。あなたのスニペットからそれがそうであるかどうかはわかりません。

属性がありません

SDKによると、KBテンプレートも指定する必要があります。

ナレッジベースの記事を作成するときは、ナレッジベースのテンプレートと主題に関連付ける必要があります...

[をちょきちょきと切る]

記事をテンプレートに関連付けるには、KbArticleを使用します。KbArticleTemplateId属性。件名を指定して記事を特定のカテゴリに配置するには、KbArticle.SubjectId属性を使用します。

冗長コード

また、おそらくエラーの原因ではありませんが、コードは記事を2回作成しようとします。ここでのコードの最初の行は冗長です。

service.Create(article);

Guid articleGUID = service.Create(article);

それを超えて、私たちは本当にあなたのコードによって引き起こされるエラーを知る必要があります(私はそれが私の最初のポイントになると思いますが)。

于 2012-08-23T15:53:46.757 に答える
1

答えてくれてありがとう、それらはすべて私を解決に向けて正しい方向に導くのに役立ちました。主な問題は、サブジェクト ID とテンプレートにエンティティ参照を使用する必要があることでした。

Entity kbarticle = new Entity("kbarticle");

kbarticle["title"] = title;
kbarticle["subjectid"] = new EntityReference(subject_LogicalName, subject_Guid);
kbarticle["kbarticletemplateid"] = new EntityReference(template_LogicalName, template_Guid);

service.Create(kbarticle);
于 2012-08-24T08:40:43.590 に答える
0

次のように見えるはずです

        KbArticle a = new KbArticle();
        a.Title = articleTitle;
        a.SubjectId = new Xrm.Sdk.EntityReference(Subject.EntityLogicalName, subjectGuid);
        service.Create(a);
于 2012-08-22T10:24:21.647 に答える
0

このMSDN記事を見たことがありますか。コード例ではありませんが、記事を作成する手順が説明されています。

編集:

より多くのデバッグ情報を提供する必要があります。また;

  • ここで説明されているようにトレースを有効にするか、この便利なツールを使用してください。問題を再現し、ログを投稿します。
  • ここに示すように、ワークフロー自体からエラーを送信します。
  • デバッガーを接続し、その方法で何が起こっているかを調べます。

おそらく、Visual Studio での単体テストに対して記事作成コードを開発する方が簡単で、後でワークフロー アクティビティに接続するだけで済みます。

于 2012-08-21T13:50:18.323 に答える