メタデータをカスタム ワークフロー活動に追加する
公開日: 2017年1月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
ユーザー定義ワークフロー活動の定義を含むアセンブリには、.NET の属性を使用して注釈が付けられています。この注釈によって、Microsoft Dynamics 365 で実行時にコードをワークフロー エンジンにリンクするために使用するメタデータが提供されます。.NET 属性の詳細については、「属性を使用したメタデータの拡張」を参照してください。
メタデータをユーザー定義ワークフロー活動の定義に追加する前に、そのユーザー定義ワークフロー活動に使用できる Microsoft Dynamics 365 の種類と属性を確認してください。詳細:参照プロセス クラス、属性、および種類
このトピックの内容
入力パラメーターの追加
出力パラメーターの追加
同じパラメーターへの入力属性と出力属性の追加
追加の属性
Execute メソッドの追加
入力パラメーターの追加
ワークフロー クラスで入力パラメーターを指定するときに、そのパラメーターの既定値も指定できます。 次のコード サンプルは、入力パラメーターの定義を示しています。
[Input("DateTime input")]
[Default("2004-07-09T02:54:00Z")]
public InArgument<DateTime> Date { get; set; }
この入力パラメーターには、.NET 属性のInputの注釈を付けています。InputAttribute クラスは、入力属性の名前を指定するパラメーター (ParameterAttribute.Name) を受け取る ParameterAttribute クラスから派生します。 この名前は、Web アプリケーションのプロセス フォーム アシスタントに表示されます。 この方法で、属性を入力パラメーターとしてプロセスにマップできます。
また、必要な入力パラメーターを作成することができます。詳細:RequiredArgumentAttribute
出力パラメーターの追加
出力パラメーターは、入力パラメーターと同じ方法で追加します。 次のコード サンプルは、出力パラメーターの定義を示しています。
[Output("Money output only")]
[Default("23.3")]
public OutArgument<Money> MoneyOutput { get; set; }
この出力パラメーターには、.NET の Output 属性の注釈を付けています。OutputAttribute クラスは、入力属性の名前を指定するパラメーター (ParameterAttribute.Name) を受け取る ParameterAttribute クラスから派生します。 この名前は、Web アプリケーションのプロセス フォーム アシスタントに表示されます。 この方法で、属性を出力としてマップできます。
同じパラメーターへの入力属性と出力属性の追加
同じパラメーターで入力属性と出力属性を使用できます。 次のコードでは、IntParameter は入力パラメーターであると同時に出力パラメーターでもあります。
[Input("Int input")]
[Output("Int output")]
[Default("2322")]
public InOutArgument<int> IntParameter { get; set; }
追加の属性
EntityReference や OptionSetValue などの種類は、Input、Output、および Default 属性とは別に追加の属性を必要とします。 これらの追加の属性は、ReferenceTarget および AttributeTarget です。 次のコード サンプルは、EntityReference の種類のパラメーター定義を示しています。
[Input("EntityReference input")]
[Output("EntityReference output")]
[ReferenceTarget("account")]
[Default("3B036E3E-94F9-DE11-B508-00155DBA2902", "account")]
public InOutArgument<EntityReference> AccountReference { get; set; }
サポートされる種類と属性の一覧については、「プロセス クラス、属性、および種類」を参照してください。
Execute メソッドの追加
次に示す例のように、ユーザー定義ワークフロー活動には Execute メソッドが必要です。
protected override void Execute(CodeActivityContext context)
{
if (AccountReference.Get(context).Id != new Guid("3B036E3E-94F9-DE11-B508-00155DBA2902"))
throw new InvalidPluginExecutionException("Unexpected default value");
}
関連項目
ユーザー定義ワークフロー活動 (ワークフロー アセンブリ)
ユーザー定義ワークフロー活動 (ワークフロー アセンブリ)
ユーザー定義ワークフロー活動の作成
カスタム ワークフロー活動での IOrganization Web サービスの使用
サンプル: カスタム ワークフロー活動の作成
プロセス クラス、属性、および種類
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 著作権