メタデータをカスタム ワークフロー活動に追加する

 

公開日: 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; }

追加の属性

EntityReferenceOptionSetValue などの種類は、InputOutput、および 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. 著作権