0

Dynamics CRM 4 ワークフローからレコードの GUID を取得する必要があります。これは、ワークフローの実行中に作成されるレコードです。ルックアップを受け入れ、GUID を含む文字列を返す w/f アセンブリを作成することを考えました (これで十分です)。ただし、アセンブリのルックアップでは、エンティティの種類を指定する必要があります。要件はすでに多くのエンティティに存在し、顧客が予告なしに作成する他の多くのエンティティにも存在するため、これはうまくいきません。

これを簡単に行う方法、または任意のエンティティ タイプを受け入れるワークフロー アセンブリのルックアップ パラメーターを作成する方法はありますか?

4

2 に答える 2

2

最善の策は、GUID をカスタム フィールド (new_myguid) に設定する作成後プラグインを作成することです。そうすれば、ワークフローは実行されるとすぐにフィールドを読み取ることができます。

于 2010-03-31T14:58:49.910 に答える
1

ワークフロー デザイナーからエンティティ ID にネイティブにアクセスすることはできず、カスタム アクティビティは入力プロパティごとに 1 つのエンティティに制限されることは間違いありません。

Focus の提案を実装することもできますが、各エンティティにもそのカスタム属性とプラグインが必要です。

私はおそらくカスタム アクティビティを実行し、すべてが単一の出力プロパティに出力される複数の入力プロパティを持っていると思います。

このようなもの:

[CrmInput("Contact")]
[CrmReferenceTarget("contact")]
public Lookup Contact
{
    get { return (Lookup)GetValue(ContactProperty); }
    set { SetValue(ContactProperty, value); }
}
public static readonly DependencyProperty ContactProperty =
    DependencyProperty.Register("Contact", typeof(Lookup), typeof(YourActivityClass));

[CrmInput("Account")]
[CrmReferenceTarget("account")]
public Lookup Account
{
    get { return (Lookup)GetValue(AccountProperty); }
    set { SetValue(AccountProperty, value); }
}
public static readonly DependencyProperty AccountProperty =
    DependencyProperty.Register("Account", typeof(Lookup), typeof(YourActivityClass));

[CrmOutput("Entity ID")]
public string EntityID
{
    get { return (string)GetValue(EntityIDProperty); }
    set { SetValue(EntityIDProperty, value); }
}
public static readonly DependencyProperty EntityIDProperty =
    DependencyProperty.Register("EntityID", typeof(string), typeof(YourActivityClass));

protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
    Lookup[] lookups = new[] { Contact, Account };
    foreach (Lookup lookup in lookups)
    {
        if (lookup != null && lookup.Value != Guid.Empty)
        {
            EntityID = lookup.Value.ToString();
            break;
        }
    }

    return ActivityExecutionStatus.Closed;
}
于 2010-03-31T16:17:39.640 に答える