1

アカウントが作成されたときにトリガーされるプラグインを作成しようとしています。元の見込み客がいる場合は、見込み客の会社名を取得して、アカウント名フィールドに入力したいと考えています。どうすればよいかわからないのは、リードエンティティから情報を取得することです。

次のコードがあります(これを更新し続けます)...

Entity member = service.Retrieve("lead", 
    ((EntityReference)account["originatingleadid"]).Id, new ColumnSet(true));

if (member.Attributes.Contains("companyname"))
{
    companyName = member.Attributes["companyname"].ToString();
}

if (context.PostEntityImages.Contains("AccountPostImage") &&
    context.PostEntityImages["AccountPostImage"] is Entity)
{
    accountPostImage = (Entity)context.PostEntityImages["AccountPostImage"];

    companyName = "This is a test";

    if (companyName != String.Empty)
    {
        accountPostImage.Attributes["name"] = companyName;
        service.Update(account);
     }
 }
4

2 に答える 2

1

リードはアカウントに関連付けられていますか? IOrganizationService.Retrieve メソッドを使用して正しいリードを取得するだけです (アカウント エンティティからリード ID を取得していると仮定します)。

プラグインの execute メソッドで organizationService を作成します。

http://msdn.microsoft.com/en-us/library/gg334504.aspx

また、プラグインを記述する良い例を次に示します。

http://mscrmkb.blogspot.co.il/2010/11/develop-your-first-plugin-in-crm-2011.html?m=1

于 2013-02-27T22:21:58.673 に答える
1

まだ楽しみを台無しにするつもりはありませんが、一般的な考え方は次のとおりです。

  1. Createのメッセージをキャッチします。
  2. エンティティ(作成したアカウント)から GUID を抽出します。
  3. そのEntityReferenceから GUID を取得します (それがあなたのリードです)。
  4. そこから適切なフィールドを読み取ります。
  5. アカウントの名前フィールドを更新します。
  6. 情報を保存します。

問題が発生している手順はどれですか? :)
いつものように、fetchXML の前にクエリ式を使用することをお勧めします。YMMV

于 2013-02-27T23:11:33.313 に答える