Visual Studio を使用して SharePoint ワークフローを開発する
SharePoint では、ワークフローを作成するための 2 つの主要なワークフロー開発環境 (SharePoint Designer と Visual Studio) をサポートしています。 この記事では、この 2 つのツールの概要とそれぞれの利点と欠点について説明します。
注:
SharePoint 2010 ワークフローは、2020 年 8 月 1 日以降、新しいテナント用に廃止され、2020 年 11 月 1 日に既存のテナントから削除されました。 SharePoint 2010 ワークフローを使用している場合は、Power Automate またはその他のサポートされているソリューションに移行することをお勧めします。 詳細については、「SharePoint 2010 ワークフローの廃止」を参照してください。
SharePoint ワークフロー作成の基本事項
注:
Microsoft SharePoint と ワークフロー マネージャー Client 1.0 サーバーの設定と構成に関するガイダンスについては、「SharePoint ワークフロー マネージャーのセットアップと構成」を参照してください。
以前のバージョンと同様に、Microsoft SharePoint には、ワークフロー作成のための Microsoft SharePoint Designer と Microsoft Visual Studio の 2 つの主なワークフロー開発環境が用意されています。 ただし、Visual Studio の使用においてコード ベースの作成戦略が提供されていないところが以前のバーションとは異なります。 代わりに、選択する開発ツールを問わず SharePoint Designer と Visual Studio の両方に完全に宣言型のコード不要の作成環境が用意されています。
注:
SharePoint Designer でのワークフローの作成を補完するものとして、Microsoft Visio 2013 で Visio 2013 の図形を使用してワークフロー ロジックを構造化し、ロジックを SharePoint Designer 2013 にインポートできます。 Visio 2013 を使用してワークフロー ロジックを作成する方法については、「 SharePoint Designer と Visio でのワークフロー開発」を参照してください。
宣言型ワークフロー
まず "宣言型" ワークフローとは何かを明確にします。 この用語は、ワークフローをコードで作成しマネージ アセンブリにコンパイルする代わりに、ワークフローを XAML で (逐語的に) 記述し、実行時に解釈しながら実行することを意味しています。
XAML は、ワークフロー デザイナー (Visual Studio を使用した場合) または SharePoint Designer のワークフロー デザイン画面 (または Visio、後で詳しく説明) で操作するワークフロー構成要素から派生 (推定) します。 構成要素自体はデザイナー ツールボックス内の視覚的なワークフロー デザイン オブジェクト (ステージ、条件、アクション、イベントなど) です。 それぞれのツールボックス (Visual Studio または SharePoint Designer) のツールのセットは若干異なりますが、宣言型のワークフローの概念は同じです。
決定ツリー: SharePoint Designer と Visual Studio
SharePoint のワークフロー フレームワークの最も大きい利点は、インフォメーション ワーカーが SharePoint Designer のコード不要な環境を使用して豊富で強力なワークフローを簡単に作成できることです。 さらに、Visual Studio などの宣言型の作成環境で柔軟性に富んだカスタマイズが可能です。
これらのワークフロー作成環境 (SharePoint Designer および Visual Studio) のいずれも特定の利点と欠点があります。 このセクションでは、ワークフロー開発ニーズに最も適した作成環境がどちらであるかを判断する方法について説明します。
SharePoint Designer の使用
- 対象ユーザー: インフォメーション ワーカー、ビジネス アナリスト、SharePoint 開発者
- 難易度: ステージ、ゲート、アクション、条件、ループなどのコア ワークフロー コンポーネントを含む SharePoint Designer の知識。
SharePoint Designer を使用すると、ユーザーはコード不要のテキストベース デザイナーを使用してリスト、ライブラリ、またはサイトに付加されたワークフローを作成できます。 または、ビジネス プロセスの論理フローを表すためにデザイン画面にグラフィカル要素が並べられた新しい視覚的な設計環境を使用することができます。 SharePoint Designer は非技術者のワークフロー開発を高速に行えるようにできる点で優れています。
Visual Studio の使用
- 対象ユーザー: 中級または上級のソフトウェア開発者。
- 難易度: イベント レシーバー、パッケージ化と展開、セキュリティなどのソフトウェア開発概念を含む Visual Studio の知識。
Visual Studio でワークフローを作成すると、複雑さにかかわらずビジネス プロセスを実質的にサポートするワークフローを作成できる柔軟性が得られ、ワークフロー定義のデバッグや再利用ができるようになります。 最も重要と考えられる Visual Studio を使用して、開発者は幅広い SharePoint ソリューションまたは SharePoint アドイン の一部として SharePoint ワークフローを含めることができます。
Visual Studio では、開発者は SharePoint Designer で使用されるカスタム アクションを作成でき、カスタム ロジックを実行する手段が提供されます。 Visual Studio では、開発者は複数のサイトに展開できるワークフロー テンプレートを作成することもできます。
SharePoint Designer と Visual Studio の比較
次の表に、SharePoint ワークフローの作成に SharePoint Designer と Visual Studio を使用した場合の機能と要件の対照比較を示します。
表 1. ワークフロー作成ツールの比較
機能/要件 | SharePoint Designer | Visual Studio |
---|---|---|
迅速なワークフロー開発が可能 | はい | はい |
ワークフローの再利用が可能 | ワークフローは、開発されたリストまたはライブラリによってのみ使用できます。 ただし、SharePoint Designer では同じサイト内で複数回使用できる再利用可能なワークフローが提供されます。 | ワークフローは、展開された後に再利用され、リストまたはライブラリと関連付けができるように、テンプレートとして記述できます。 |
ワークフローを SharePoint ソリューションまたは SharePoint アドイン の一部として含めることが可能 | いいえ | はい |
カスタム アクションの作成が可能 | いいえ。 ただし、SharePoint Designer は Visual Studio を使用して作成および展開されたカスタム アクションを使用および実装できます。 | はい。 ただし、Visual Studio では、対応するアクションではなく、基になるアクティビティが使用されます。 |
カスタム コードの記述が可能 | いいえ | 注: これは以前のバージョンから変更されます。 SharePoint では、ワークフローは宣言型のみであり、Visual Studio はワークフロー開発ではビジュアル デザイン画面に依存します。 |
Visio Professional を使用してワークフロー ロジックを作成可能 | はい | いいえ |
展開 | 作成されたリスト、ライブラリ、サイトに自動的に展開されます。 | SharePoint ソリューション パッケージ (.wsp) ファイルを作成し、このソリューション パッケージをサイト (SPWeb) に展開します。 |
ワークフローのワンクリック発行が可能 | はい | はい |
ワークフローをパッケージ化してリモート サーバーへ展開可能 | はい | はい |
デバッグ | デバッグはできません。 | ワークフローは Visual Studio を使用してデバッグできます。 |
サイト管理者に承認されたアクションのみ使用可能 | はい | はい 注: これは以前のバージョンから変更されます。 以前は、Visual Studio を使用して作成されたワークフローおよびアクションはコードベースであり、ファーム スコープで展開されていたため、管理者の承認は不要でした。 |
Visual Studio を使用したワークフローの開発
以前のバージョンとは異なり、SharePoint のワークフローは完全に宣言型です。 今回、Windows Workflow Foundation 4 上に構築された Visual Studio には、カスタム ワークフロー、ワークフロー テンプレート、フォーム、カスタム ワークフロー アクティビティ全体をデザイナー環境で作成できる視覚的なワークフロー デザイナー画面が用意されています。 ワークフローは、その後パッケージ化され SharePoint フィーチャーとして展開されます。 機能パッケージ化の詳細については、「 SharePoint Foundation での機能の使用」を参照してください。
おそらく、Visual Studio 開発者にとって最も大きな変更点は、カスタム ワークフローが .NET Framework アセンブリとしてコンパイルおよび展開されなくなったことです。 また、SharePointは Microsoft InfoPath フォームを使用しなくなり、代わりにフォーム生成は Microsoft ASP.NET フォームに依存しています。
さらに、Visual Studio のワークフロー プロジェクト テンプレートが変更されています。 以前はステート マシンおよびシーケンシャル ワークフロー用のテンプレートが用意されていましたが、これらの区別にはもう意味がありません。 代わりに、仮想マシン (VM) 上に用意された Visual Studio ビルドで Visual Studio プロジェクト テンプレートを使用できます。
社内ワークフロー デバッグを有効にする
社内ワークフローを Visual Studio でデバッグするには、一時的にワークフロー マネージャー ツールがファイアウォールを通過してシステムにアクセスすることを許可する必要があります。
- ] で、[ システムとセキュリティ]、[ Windows ファイアウォール] の順に選択します。
- [ コントロール パネル ホーム] リストにある [ 詳細設定] リンクを選択します。
- Windows ファイアウォールの左ウィンドウにある [ 受信の規則] を選択します。
- [ 受信の規則] リストで、[ Workflow Manager Tools 1.0 for Visual Studio 2012 - Test Service Host] を選択します。
- [ 操作] リストで、[ 規則の有効化] を選択します。
- SharePoint プロジェクトのプロパティ ページで、[ SharePoint] タブを選択し、[ ワークフロー デバッグの有効化] チェック ボックスを選択します。
Visual Studio を使用して SharePoint Online ワークフローをデバッグする
Visual Studio で SharePoint Online ワークフローをデバッグするには、以下のステップを実行します。
ファイアウォールの内側にいる場合は、会社のネットワーク トポロジに応じてプロキシ クライアント ( Forefront Threat Management Gateway (TMG) クライアントなど) をインストールする必要がある場合があります。
まだ登録を行っていない場合は Microsoft Azure アカウントに登録してから、そのアカウントにサインインします。
Microsoft Azure アカウントに登録する方法の詳細については、「 Microsoft Azure」を参照してください。
リモート ワークフローのデバッグに使用できるMicrosoft Azure Service Bus名前空間を作成します。 これは、Microsoft Azure portalで行うことができます。
Microsoft Azure Service Busの詳細については、「Azure portalを使用して Service Bus 名前空間を作成する」を参照してください。
注:
SharePoint Online ワークフローのデバッグでは、Microsoft Azure Service Bus の Relay サービス コンポーネントを使用するので、Service Bus の使用料が課金されます。 「Service Bus の価格に関する FAQ」を参照してください。 Visual Studio Professional with MSDN、Visual Studio Premium with MSDN、Visual Studio Ultimate with MSDN にサブスクライブすれば、毎月 Microsoft Azure への無料のアクセスが可能になります。 このアクセスについては、選んだ MSDN サブスクリプションに応じて、それぞれ 1,500 時間、3,000 時間、3,000 時間の Service Bus Relay の使用が可能です。 「毎月 一部の Microsoft Azure Services を追加料金なしで入手する」を参照してください。
Microsoft Azure で、サービスの名前空間を選択し、[アクセス キー] リンクを選択し、[接続文字列] ボックスのテキストをコピーします。
SharePoint アドイン プロジェクトのプロパティ ページで、[ SharePoint] タブを選択し、[ ワークフロー デバッグの有効化] チェック ボックスを選択します。
SharePoint Online のワークフローをデバッグするには、この機能を有効にする必要があります。 このプロパティは、Visual Studio 内にある自分のすべての SharePoint プロジェクトに適用されます。 Office ストアで配布できるようにアプリをパッケージ化すると、Visual Studio はワークフローのデバッグを自動でオフにします。
[ Microsoft Azure Service Bus によるデバッグを有効にする] チェック ボックスを選択します。 次いで、[ Microsoft Azure Service Bus 接続文字列] ボックスに、先ほどコピーした接続文字列を貼り付けます。
ワークフロー デバッグを有効にし、Microsoft Azure Service Bus で有効な接続文字列を提供すると、SharePoint Online ワークフローをデバッグすることができます。
注:
ワークフロー デバッグを無効にしておらず、プロジェクトにワークフローが含まれている間は通知を受信しないようにする場合は、[Microsoft Azure Service Bus デバッグが構成されていない場合は通知する] チェック ボックスのチェックを解除します。
関連項目
SharePoint ワークフローの大部分は、Visual Studio 開発者に対しては変更されていません。 SharePoint 2010 のドキュメントの主要なセクションはまだ該当します。
- Visual StudioWorkflow デザイナーの使用の詳細については、「 Visual Studio Designer for Windows Workflow Foundation の概要」を参照してください。
- Microsoft ASP.NET を使用してフォームを作成する方法については、「 ワークフロー フォームの概要」を参照してください。
- 機能パッケージ化の詳細については、「 SharePoint Foundation での機能の使用」を参照してください。