社内の各チームは Microsoft SharePoint サイトを通じてコラボレートし、ドキュメントの作業と情報を共有しています。チームの生産性と効率を向上するために SharePoint アプリケーションを構築しようと思います。この場合、コードの記述を省略するには、どうしたらよいでしょうか。
Microsoft Office SharePoint Designer 2007 を使用すると、コードを必要としないアプリケーション ロジックを SharePoint サイトおよびアプリケーションに追加するためのワークフローを作成できます。ワークフロー デザイナでルールを作成し、条件とアクションを SharePoint リストおよびライブラリのアイテムと関連付けることができます。リストまたはライブラリのアイテムを変更すると、ワークフローのアクションが実行されます。
たとえば、チームが契約の作成、改訂、および承認を担当しているとします。これらの契約は、チーム サイトのドキュメント ライブラリに保存されます。Office SharePoint Designer 2007 でワークフローを作成し、新しい契約がサイトにアップロードされたときにレビュー担当者に電子メール メッセージで通知することができます。同時に、レビュー担当者のタスクがタスク リストに作成されます。契約がレビューされてタスクが完了としてマークされると、契約の状態 (承認または却下) に応じて異なるアクションが実行されます。
ワークフロー主導でプロセスが処理され、チームはワークフローの管理から離れて仕事に専念できるので、チームの効率と生産性が向上します。このようなソリューションを構築するのにプログラミングは不要です。ワークフロー デザイナでルールを作成することにより、SharePoint ソリューションまたはアプリケーションにすばやく対話機能を追加できます。
ここでは、ワークフローの基礎知識を提供します。ワークフローの基本的な構成要素であるイベント、アクション、条件、およびステップを理解すると、SharePoint アプリケーションにアプリケーション ロジックをすばやく追加できます。
重要 ワークフローを作成するには、Microsoft Windows SharePoint Services 3.0 を実行するサーバー上に SharePoint サイトを設定する必要があります。
この記事の内容
ワークフローとは
チームは SharePoint サイトを通じてコラボレートし、貴重なビジネス情報を SharePoint リストおよびライブラリに保存します。Office SharePoint Designer 2007 では、これらのリストおよびライブラリのドキュメントやアイテムにアプリケーション ロジックを適用できます。
ワークフロー デザイナを使用すると、リストまたはライブラリに条件とアクションのシーケンスを適用できます。このシーケンスがワークフローです。ワークフローは、業務プロセスに沿って一連の関連アクションを実行します。Microsoft Windows SharePoint Services 3.0 でリスト アイテム (ライフサイクルを含む) をほぼ全面的に管理できます。ワークフローによって実行されるアクションとその参加者によって実行されるアクションの両方をワークフローに含めることができます。ワークフローの参加者は、タスク リストを通じてワークフローと対話します。ワークフローは、参加者のタスクを作成し、タスクが完了としてマークされるまでは一時停止することができます。
ワークフローの複雑度は、ビジネス プロセスに応じて異なります。ユーザーによって開始されるワークフローを作成することも、リスト アイテムの作成や変更などのイベントに応じて自動的に開始されるワークフローを作成することもできます。
通常、Office SharePoint Designer 2007 を使用してワークフローを作成する場合は、次の基本的な手順に従います。
- ワークフロー デザイナを使用して、ワークフローのステップを定義する条件とアクションを選択してまとめます。
- Office SharePoint Designer 2007 により、ワークフローの開始またはユーザー設定の SharePoint タスクに必要な ASP.NET フォームが自動的に生成されます。
- 必要に応じて、ワークフローのフォームをカスタマイズします。
ワークフローは、アクションのフローチャートであり、開始、終了、および開始から終了までのシーケンシャルなフローを表します。並列分岐する場合がありますが、最終的には最初のアクションから最後のアクションへと実行されます。
たとえば、Microsoft Windows SharePoint Services 3.0 のドキュメントを回覧して承認するワークフローを図示するとします。ワークフローが開始されると、指定したレビュー担当者にレビュー対象のドキュメントがあることが電子メールで自動的に通知されます。レビュー担当者は、ドキュメントをレビューし、ドキュメントの状態を変更して、タスクを完了し、ドキュメントの承認または却下を返します。レビュー担当者の応答に基づいて、ワークフローは 2 つの並列分岐の 1 つを進みます。レビュー担当者がドキュメントを承認すると、ワークフローは承認済みのドキュメントを特定のドキュメント ライブラリに移動し、次に電子メール メッセージをチーム全体に送信して承認済みのドキュメントについて通知します。レビュー担当者がドキュメントを却下した場合は、このドキュメントの作成者に通知されます。いずれの場合も、ワークフローは最後まで達し、プロセスが完了します。

ページの先頭へ
イベント、アクション、条件、およびステップとは
これらはワークフローを構築するためのパーツです。ワークフローは 1 つ以上のステップで構成され、各ステップはアクションおよび関連する条件で構成されます。各ワークフローはイベントによって開始されます。
イベントとは
イベントは、ワークフローを開始する事象です。ワークフローを開始できるイベントは次の 3 つです。
- アイテムの作成
- アイテムの変更
- ワークフローの参加者による SharePoint サイト上の開始ボタンのクリック
Office SharePoint Designer 2007 で作成されたワークフローは常に SharePoint サイトの 1 つのリストまたはライブラリに適用されます。ワークフローを作成する場合、適用先のリストを選択します。このリストのイベントによってワークフローが開始されます。
ワークフローの参加者によって手動で開始されるワークフローを作成することも、リスト アイテムの作成や変更に応じて自動的に開始されるワークフローを作成することもできます。たとえば、ドキュメントの承認ワークフローで、共有ドキュメント ライブラリにドキュメントが追加されるたびに自動的に開始されるようなワークフローを作成できます。[ファイル] メニューの [新規作成] をポイントし、[ワークフロー] をクリックします。ワークフロー デザイナで、次のページが表示されます。

ワークフローの参加者がワークフローを手動で開始する場合は、最初にワークフローが適用されているリストまたはライブラリを参照します。投稿アクセス権を持つすべての参加者が、手動で開始するように作成されたワークフローを開始できます。参加者はアイテムをクリックし、メニューの [ワークフロー] をクリックします。次に、そのアイテムと関連付けられたすべてのワークフローを表示するページからワークフローを選択します。必要に応じてワークフローの開始フォームに記入し、フォームの開始ボタンをクリックしてワークフローを開始します。ワークフローを開始すると、その特定のアイテムに関するワークフローの新しいインスタンスが作成されます。
![リスト アイテムの [ワークフロー] コマンド](/global/images/default.aspx?AssetID=ZA101315731041)
メモ [ワークフロー] コマンドを使用できるのは、最低 1 つのワークフローが適用されているリストまたはライブラリにアイテムがある場合に限ります。
手動で開始されるワークフローの場合、開始フォームは次のような単純な内容になります。

ワークフローを作成するときにユーザー設定のフィールドを開始フォームに追加することもできます。ワークフローの参加者は、このフォームに記入することにより、ワークフローに情報を提供できます。これらの設定はワークフローに渡されます。ワークフローの新しいインスタンスが開始し、そのワークフローの任意の時点で、フォームを通じて提供された情報を参照して使用することができます。
アクションとは
アクションは、ワークフローの最も基本的な操作単位です。Office SharePoint Designer 2007 には標準で用意された再利用可能なアクションのセットがあり、これをワークフローに取り込むことができます。たとえば、ワークフローでは次のことができます。
- リスト アイテム (ドキュメントを含む) を作成、コピー、変更、または削除する
- アイテムをチェックインまたはチェックアウトする
- 電子メール メッセージを送信する
- チーム サイトのタスク リストにタスクを作成する
- ワークフローで後で参照するためのデータを参加者から収集する
- ワークフローを一時停止または停止する
- ワークフロー情報を履歴リストに記録し、否認またはワークフローのデバッグに使用する
- ワークフローの変数を設定または計算を実行する
ワークフローには任意の数のアクションを含めることができます。以上のアクションはワークフローによって実行されますが、他のアクションはワークフローの参加者によって実行される場合があります。たとえば、ドキュメントの承認ワークフローは 5 つのアクションで構成されます。これらのアクションの 4 つはワークフローによって自動的に実行されますが、残りの 1 つ (ドキュメントの校閲) はワークフローの参加者によって実行されます。ワークフローの参加者によって実行されるアクションは、タスク リストのタスクとしてその参加者に割り当てられます。サンプルのワークフローで 5 つのアクションは次のとおりです。
- 電子メール メッセージを送信して校閲者に通知する
- ドキュメントをレビューする (ワークフローの参加者に割り当てられたタスク)
- ドキュメントを承認済みのドキュメント ライブラリに移動する
- 電子メール メッセージを送信してチームに通知する
- 電子メール メッセージを送信してドキュメントの作成者に通知する
ワークフローを作成する場合、最も基本的な形式では、必要なアクションのシーケンスを特定し、次にそのシーケンスをワークフロー デザイナで統合します。たとえば、ドキュメントの承認ワークフローの場合、最初に必要なアクションは電子メール メッセージを送信してレビュー担当者に通知することです。

したがって、ワークフロー デザイナで、そのアクションをワークフローの最初のステップとして選択します。

条件とは
ワークフローを作成する場合、ワークフロー デザイナを使用して SharePoint リストおよびアイテムに条件ロジックを適用するルールを作成します。ルールが規定する条件では、その条件が True である場合に限り、関連付けられたアクションが実行されます。たとえば、アイテムが特定の参加者によって作成された場合に限り、ワークフローからレビュー担当者に電子メール メッセージを送信するようなルールを作成できます。条件に句を追加することもできます。たとえば、アイテムが (1) 特定の参加者によって作成され、さらに (2) ドキュメント タイトルに特定のキーワードが含まれている場合に限り、レビュー担当者に電子メール メッセージを送信するようなルールを作成できます。最後に、1 つの条件に複数のアクションを関連付けることができます。たとえば、アイテムが特定の参加者によって作成された場合、(1) レビュー担当者に電子メールを送信し、(2) ワークフロー情報を履歴リストに記録するようなルールを作成できます。

つまり、ルールとは 1 つ以上のアクションが関連付けられた条件のことです。条件内のすべての句が True である場合は、すべての関連付けられたアクションが実行されます。
前の例で、ユーザーは 1 つの条件のみを指定しましたが、ワークフローの 1 つのステップに対して複数の条件を作成することができます。複数の条件により、ワークフローに分岐が作成されます。条件 A が True である場合は、1 つのアクションが実行されます。条件 B が True である場合は、別のアクションが実行されます。ステップに分岐を追加するには、[一致しない場合に評価する次の条件を追加する] をクリックします。たとえば、ドキュメントの承認ワークフローで、レビュー担当者がドキュメントを承認すると、ワークフローで 1 つのアクション (または一連のアクション) が実行されます。レビュー担当者がドキュメントを却下すると、同じワークフローで別のアクションが実行されます。これが条件分岐です。

ワークフロー デザイナでは、このステップに 2 つの分岐があり、次のように表示されます。緑色のひし形はステップに条件分岐があることを示します。

特定の条件を持たない分岐を作成することもできます。この場合、条件が True である場合に 1 つのアクションが実行され、条件が False である場合に別のアクションが実行されます。たとえば、ワークフローの次のステップでは、条件が True である場合に限り、チームにメッセージが送信されます。条件が False である場合は、ドキュメントの作成者にのみメッセージが送信されます。特定の条件がない分岐を追加すると、その分岐のアクションは最初の分岐の条件が False である場合に実行されます。

メモ ワークフローの分岐は 1 つのステップから別のステップに持ち越されることはありません。'Else If' 分岐のセットは、常に 1 つのステップ内に収められます。
Office SharePoint Designer 2007 には標準で用意されているいくつかの再利用可能な条件があり、これをワークフロー内に取り込むことができます。たとえば、ワークフローで関連するアクションを実行するアイテムの条件として、次のようなものがあります。
- 特定の時間内に作成または変更されている。
- 特定のユーザーによって作成または変更されている。
- 指定されたキーワードを含むタイトル フィールドがある。
- 特定の種類のファイルであるか、特定の範囲のファイル サイズである (この条件はワークフローがドキュメント ライブラリに適用されている場合にのみ使用できます)。
さらに、ユーザー設定の条件と詳細設定の条件を作成して、広範なパラメータを指定することもできます。ユーザー設定の条件では、現在のリストのフィールドと値を比較できます。たとえば、承認の状態フィールドが承認済みである場合に、関連付けられたアクションを実行するようなユーザー設定の条件を作成できます。詳細設定の条件では、1 つの値を別の値と比較できます。これにより、任意のリストのフィールドと別のリストの値との間で比較を行うことができます。たとえば、共有ドキュメント ライブラリの詳細設定の条件として、タスク リストの状態フィールドの値が承認待ちである場合に、関連付けられたアクションを実行するように指定することができます。
メモ アクションの条件は必須ではありません。たとえば、サンプルのドキュメント承認ワークフローの最初のステップでは、レビュー担当者に電子メールの通知が送信されます。このアクションには関連付けられた条件がありません。
並列アクションとシリアル アクション
1 つの条件に複数のアクションが関連付けられている場合は、すべてのアクションを同時に実行 (並列) することも、順に実行 (シリアル) することもできます。

シリアル アクション たとえば、ドキュメントの承認ワークフローで 2 つのアクションを設定し、ドキュメントが承認された場合にメッセージを送信し、その後でドキュメントを承認済みドキュメント ライブラリにコピーすることができます。ワークフロー デザイナで、then は最初のアクションの後に 2 番目のアクションが実行されることを示します。

並列アクション たとえば、ドキュメント承認ワークフローで 2 つのアクションを設定し、ドキュメントが承認された場合にメッセージを送信すると同時にドキュメントを承認済みドキュメント ライブラリにコピーすることができます。ワークフロー デザイナで、and は 2 番目のアクションが最初のアクションと同時に実行されることを示します。
メモ 並列アクションは厳密には同時に実行されません。厳密な順番は指定できず、ワークフローが実行されるたびに順番が変わる場合があります。

メモ
- ルールは条件とアクションで構成されますが、すべてのアクションはシリアルまたは並列のいずれかになります。
- シリアル アクションまたは並列アクションのセットは 1 つのステップ内に収める必要があります。
ステップとは
ワークフローは 1 つ以上のステップで構成されます。各ステップには任意の数のアクションおよび関連条件を含めることができます。ステップは、ワークフロー デザイナの単なるページと見なすことができます。たとえば、ドキュメントの承認ワークフローはワークフロー デザイナで 2 つのステップとして表示されます。

ステップを使用すると、条件とアクションをルールのセットとしてまとめ、セット単位で実行することができます。
単一のステップにするか、複数のステップにするかを選択できます。一部のワークフローは、アクションのシーケンスを 1 つのステップで実行することも複数のステップで実行することもできます。
たとえば、次の 3 つのアクションをステップ 1 として基本的なワンステップ ワークフローを構成できます。

同じ 3 つのアクションを複数のステップに分けることもできます。

ワークフローのステップを構成する方法は、各ステップの達成目的に応じて異なります。1 つのステップ内のルールが完全に処理された後で次のステップに移行するため、特定のアクションを実行するために必要なルールは同じステップ内にまとめます。
より具体的には、各ステップは 'Else If' 条件分岐のセットを 1 つ持つことができ、関連条件が満たされた場合に限り、各分岐のアクションが実行されます。追加のステップが必要になるのは、次の場合に限られます。
- 'Else If' 条件分岐の複数のセットを評価する必要がある。
- 分岐ステートメントを分岐しないステートメントと区別する必要がある。
ステップは、ワークフローを単に整理する方法として使用することもできます。たとえば、ワークフローの 1 つのステップに条件を使用しない多数のアクションが含まれている場合があります。このような場合は、アクションを複数のステップに分けて整理することができます。
ページの先頭へ
ワークフロー フォームとは
ワークフローをよりダイナミックで柔軟なものにするために、ワークフローにフォームを追加できます。フォームを使用すると、ワークフローの決められた時間にワークフローの参加者から情報を収集し、参加者がワークフローのタスクを操作することができます。
Office SharePoint Designer 2007 で、2 種類のワークフロー フォームを作成できます。
- 開始フォームでは、ワークフローの開始時にワークフローの参加者から情報を集めます。開始フォームは、特定の SharePoint アイテムでワークフローを手動で開始したときにユーザーに表示されます。ユーザーは、開始フォームを使用してワークフローに関する追加のパラメータや情報を指定し、その SharePoint アイテムに適用することができます。たとえば、開始フォームを使用してドキュメントのレビュー担当者やレビューの実行時期を確認できます。すべてのワークフローが開始フォームを必要とするわけではありません。開始フォームが必要な場合は、Office SharePoint Designer 2007 により開始設定に従って自動的に ASP.NET 開始フォームが生成されます。
- ユーザー設定のタスク フォームでは、ワークフローの参加者は SharePoint サイトのタスク リストのタスクを操作できます。ユーザー設定タスク ウィザードで、簡単にユーザー設定のフォーム フィールドを作成し、それをユーザー設定タスク フォームに追加できます。ワークフローの作成を終了すると、Office SharePoint Designer 2007 によってユーザー設定タスクの ASP.NET フォームが自動的に生成されます。次に、ワークフローを実行してタスクが作成されると、ユーザーは SharePoint サイトのタスク リストを参照し、タスクを完了としてマークし、ワークフローに関するオプションまたは必須の情報を入力します。ワークフローは、これらの変更を指定された方法で反映するか、ワークフローの後のステップで情報を参照して評価します。
Office SharePoint Designer 2007 で自動的に生成された ASP.NET フォームは、カスタマイズできます。ワークフロー フォームは、データ フォーム Web パーツとマスタ ページが適用された ASP.NET ページです。これらの .aspx ファイルは、ワークフローのソース ファイルと一緒に SharePoint サイトに保存されます。これらのフォームは、他の .aspx ファイルと同じように開いてカスタマイズすることができます。
ページの先頭へ
ワークフローの保存場所
ワークフローは [ワークフロー] と呼ばれるサイトレベルのドキュメント ライブラリに保存されます。このドキュメント ライブラリは、Office SharePoint Designer 2007 によって自動的に作成されます。フォルダ一覧のワークフロー ドキュメント ライブラリは、通常のリストまたはライブラリ アイコンとしてではなくワークフロー アイコンとして表示されます。既定では、ワークフロー ドキュメント ライブラリはブラウザから隠され、AllItems.aspx や EditForm.aspx などのリスト ビューを持ちません。このドキュメント ライブラリには、Office SharePoint Designer 2007 で作成された各ワークフローのフォルダが含まれています。このフォルダには、ワークフローに必要なすべてのソース ファイルが含まれています。たとえば、次のようなファイルがあります。
- ワークフロー マークアップ (.xoml) ファイル (ワークフローで条件を使用する場合にのみ必要)
- ワークフロー ルール ファイル
- ワークフロー設定ファイル
- 開始フォーム (手動で開始するワークフロー用) やユーザー設定のタスク フォームなどの必要な .aspx フォーム
既存のワークフローを変更するには、[ファイル] メニューの [ワークフローを開く] をクリックするか、フォルダ一覧の .xoml ファイルをダブルクリックします。これにより、ワークフローの最初のステップがワークフロー デザイナに表示されます。[戻る] をクリックしてワークフローの開始設定を表示すると、ワークフローの適用先のリストまたはライブラリは変更できないことがわかります。Office SharePoint Designer 2007 を使用してワークフローをリストまたはライブラリに適用した後では、この関連付けを変更できません。

ワークフロー デザイナには、[履歴リストに記録する] というアクションがあります。ワークフローの履歴を保存してエラーを調査したり、追跡や否認を行う場合は、このアクションを使用できます。[履歴リストに記録する] アクションを使用するワークフローを作成する場合は、Office SharePoint Designer 2007 によって [ワークフローの履歴] というリストが自動的に作成されます。このリストには、ユーザー ID、日付、イベント、エラーの説明などの情報を表示する列があります。ワークフロー ドキュメント ライブラリと同じように、既定では、履歴リストはブラウザから隠されますが、フォルダ一覧には表示されます。

ワークフロー デザイナには、タスク リストを操作するアクションとして、To Do アイテムを割り当てる、ユーザーからデータを収集する、グループ アンケートを割り当てる、の 3 つが用意されています。この 3 つのいずれかのアクションを使用するワークフローを作成すると、Office SharePoint Designer 2007 により .aspx フォーム、タスク コンテンツ タイプ、およびタスク リストが必要に応じて自動的に作成されます。ワークフロー ドキュメント ライブラリやワークフロー履歴リストとは異なり、既定では、タスク リストはブラウザに表示されます。

ページの先頭へ
ワークフローの状態をチェックする場所
選択したアイテムでのワークフローの進捗状況はブラウザを通じて簡単に表示できます。リストまたはドキュメント ライブラリのすべてのアイテム ビューに、アイテムで実行されているワークフローの状態が表示されます。さらに、各アイテムのワークフロー ページに、次の情報が表示されます。
- そのアイテムで現在実行されているすべてのワークフロー。
- そのアイテムで過去に実行されたすべてのワークフロー。
- そのアイテムで使用可能なすべてのワークフロー。

アイテムのワークフロー ページを表示するには、リストのアイテムをクリックし、次にメニューの [ワークフロー] をクリックします。
メモ [ワークフロー] コマンドを使用できるのは、最低 1 つのワークフローが適用されているリストまたはライブラリ内にアイテムがある場合に限ります。
ユーザーがアイテムでワークフローを開始すると、Windows SharePoint Services 3.0 によりそのアイテムに新しい列が追加されます。既定では、列の名前とワークフローの名前は一致します。この読み取り専用の列には、そのワークフロー内におけるアイテムの現在の状態が表示されます。この状態列は、各ワークフローが最初に実行されたときに自動的に追加されます。

各列のワークフローの状態はリンクになっています。たとえば、[進行中] をクリックすると、ワークフローのそのインスタンスに関するワークフローの状態ページが表示されます。

Office SharePoint Designer 2007 で作成したワークフローを他のリストに適用することはできません。ワークフローは、作成先のリストに対してのみ有効です。ただし、複数のワークフローを 1 つのリストに適用し、特定のアイテムに対して使用することができます。同じリスト アイテムで複数のワークフローを実行することができますが、特定のアイテムで特定の時間に実行できるのは、特定のワークフローの 1 つのインスタンスのみです。たとえば、特定のリストで 2 つのワークフロー (ワークフロー A およびワークフロー B) が使用できるとします。リストの特定のアイテムで両方のワークフローを同時に実行することはできますが、ワークフロー A またはワークフロー B の 2 つのインスタンスを同時に実行することはできません。
ページの先頭へ
次に参照するトピック
ワークフローは、SharePoint サイトおよびアプリケーションにアプリケーション ロジックを追加する強力な手段です。ワークフローの基本について理解したら、実際にワークフローを作成してみることができます。
- デザインの考慮事項と、基本的で全般的な手順については、「ワークフローを作成する」の記事を参照してください。
- 完全なワークフローの例を紹介する記事については、[関連項目] セクションのリンクを参照してください。
ページの先頭へ