ユーザー定義ワークフロー活動の作成
公開日: 2017年1月
対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
このトピックでは、ユーザー定義のワークフロー活動を作成し、Microsoft Dynamics 365 (オンラインおよび設置型) で使用するため登録する方法について説明します。Microsoft Dynamics 365 (オンライン) では、ユーザー定義ワークフロー活動をサンドボックスで登録して実行する (部分信頼) ことのみ行えます。 サンドボックスおよび部分信頼の詳細については、「プラグイン分離、信頼、および統計」を参照してください。
このトピックの内容
必要なソフトウェアとアセンブリ
CodeActivity ワークフロー基本クラスの使用
ユーザー定義のワークフロー活動の名前とグループ名の指定
必要なソフトウェアとアセンブリ
Dynamics 365 用に Windows Workflow Foundation の 4 つのカスタム活動を開発するには、Microsoft .NET Framework 4.5.2 でそれらの活動を開発する必要があります。 次のアセンブリをプロジェクトに参照として追加する必要があります。 これらは Microsoft Dynamics 365 SDK の SDK\Bin フォルダーにあります。Microsoft Dynamics CRM SDK パッケージをダウンロードします。
Microsoft.Xrm.Sdk.dll
Microsoft.Xrm.Sdk.Workflow.dll
CodeActivity ワークフロー基本クラスの使用
ユーザー定義のワークフロー活動を作成するには、CodeActivity ワークフロー基本クラスから継承するクラスを作成します。 このクラスは、System.Activities 名前空間にあります。CodeActivity クラスから継承する活動は、Execute メソッドをオーバーライドしてユーザー定義機能を生成できます。
Microsoft Visual Studio を起動します。
[ファイル] メニューで [新規] をクリックし、[プロジェクト] をクリックします。
[新しいプロジェクト] ダイアログ ボックスで、[インストールされたテンプレート] ウィンドウの [Visual C#] の下で [ワークフロー] を選択し、[アクティビティ ライブラリ] を選択します。
ソリューションの名前と場所を指定し、[OK] をクリックします。
[プロジェクト] メニューに移動し、[プロパティ] を選択します。[アプリケーション] タブで、ターゲット フレームワークとして [.NET Framework 4.5.2] を選択します。
Microsoft.Xrm.Sdk.dll および Microsoft.Xrm.Workflow.dll アセンブリへの参照を追加します。
プロジェクトの Activity1.xaml ファイルを削除します。
クラス ファイル (.cs) をプロジェクトに追加します。 ソリューション エクスプローラーで、プロジェクトを右クリックし、[追加] を選択して [クラス] をクリックします。[新しい項目の追加] ダイアログ ボックスで、クラスの名前を入力し、[追加] をクリックします。
クラス ファイルを開き、次の using ディレクティブを追加します。
using System.Activities;using Microsoft.Xrm.Sdk;using Microsoft.Xrm.Sdk.Workflow;
次に示すように、クラスが CodeActivity クラスから継承するようにして、パブリック アクセス修飾子を付与します。
public class SampleCustomActivity : CodeActivity
Execute メソッドを追加することでクラスに機能を追加します。
protected override void Execute(CodeActivityContext context){ //Activity code}
詳細については、「メタデータをカスタム ワークフロー活動に追加する」を参照してください。
入力および出力パラメーターを指定します。 詳細については、「メタデータをカスタム ワークフロー活動に追加する」を参照してください。
プロジェクトのプロパティの [署名] タブで、[アセンブリの署名] を選択し、キー ファイル名を入力します。 ユーザー定義のワークフロー活動 (およびプラグイン) のアセンブリに署名が必要です。
プロジェクトをコンパイルしてアセンブリ (.dll) を作成します。
ユーザー定義のワークフロー活動の作成方法を示すコード例を表示するには、「サンプル: カスタム ワークフロー活動の作成」を参照してください。
重要
パフォーマンスを向上させるため、Microsoft Dynamics 365 では、ユーザー定義のワークフロー活動インスタンスをキャッシュしています。 ユーザー定義のワークフロー活動の Execute メソッドはステートレスになるように記述する必要があります。ユーザー定義のワークフロー活動の起動のたびにコンストラクターが呼び出されるわけではないためです。 また、ユーザー定義のワークフロー活動を複数のシステムのスレッドが同時に実行する可能性があります。 各起動状態に関する情報はすべてコンテキストに格納されるので、グローバル変数を使用したり、次のプラグイン起動時に使用するデータをメンバー変数に格納するのはお勧めできません。
ユーザー定義のワークフロー活動の名前とグループ名の指定
ユーザー定義のワークフロー活動アセンブリを登録する場合は、名前とグループ名を指定します。 名前プロパティは、ワークフロー活動の名前を指定します。 グループ名プロパティは、Microsoft Dynamics 365 プロセス デザイナーのメイン メニューに追加されるサブメニューの名前を指定します。 これらのプロパティはユーザー定義ワークフロー活動を Microsoft Dynamics 365 プロセス デザイナーにリンクするため、ユーザー定義の活動名がユーザー インターフェイスに表示されます。
ユーザー定義ワークフロー活動の名前とグループ名を指定するには、ユーザー定義ワークフロー活動アセンブリの登録時に PluginType.Name 属性と PluginType.WorkflowActivityGroupName 属性を使用します。 ユーザー定義のワークフロー登録の詳細については、「ユーザー定義のワークフロー活動アセンブリの登録および使用」を参照してください。PluginType.Name 属性と PluginType.WorkflowActivityGroupName 属性が null に設定されている場合、ユーザー定義の活動は Microsoft Dynamics 365 ワークフロー デザイナーでは非表示となり、XAML ワークフローからのみアクセスすることができます。
プラグイン登録ツールを使用してユーザー定義のワークフロー活動アセンブリを登録している場合は、[編集可能] 領域の [名前] ボックスと **[WorkflowActivityGroupName]**ボックスに適切な値を指定できます。 プラグイン登録ツールの使用の詳細については、「チュートリアル: プラグイン登録ツールを使用したプラグインの登録」を参照してください。
このユーザー定義のワークフロー活動は、登録後に Microsoft Dynamics 365 プロセス デザイナーからワークフローまたはダイアログに使用できます。 詳細については、「ユーザー定義のワークフロー活動アセンブリの登録および使用」を参照してください。
関連項目
ユーザー定義ワークフロー活動 (ワークフロー アセンブリ)
メタデータをカスタム ワークフロー活動に追加する
カスタム ワークフロー活動での IOrganization Web サービスの使用
サンプル: カスタム ワークフロー活動の作成
サンプル: Azure 対応のユーザー定義ワークフロー活動
Windows Workflow Foundation 4 基本活動クラス
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 著作権