宣言型のコーディング不要ワークフロー エディタを作成する
Windows SharePoint Services の websvcWebPartPages Web サービスには、Office SharePoint Designer 2007 などの宣言型ルール ベースのコーディング不要のワークフロー エディタでワークフロー テンプレートを作成し、特定の SharePoint リストに関連付けることができるメソッドが用意されています。
以下のようなメソッドがあります。
FetchLegalWorkflowActions メソッド
このメソッドを使用して、Windows SharePoint Services 用にインストールされた有効なワークフロー アクションの言語固有のリストを取得できます。これにより、宣言型ワークフロー エディタとして機能するように作成されたアプリケーションでユーザー インターフェイスにアクションを表示できます。
返されるリストは、サーバーにインストールされたすべての .actions ファイルのコンテンツと Windows SharePoint Services のリストに既定で含まれるコア ワークフロー アクションを含む結合リストです。
ワークフロー アクションの詳細については、「Office SharePoint Designer 2007 の概要」を参照してください。
ValidateWorkflowMarkupAndCreateSupportObjects メソッド
このメソッドを使用して、宣言型ワークフローのワークフロー マークアップを検証し、オプションで対象ワークフローの実行に必要なサポート オブジェクトを作成します。以下のような処理を行います。
ワークフロー タスク リストがワークフロー構成データに指定されていない場合や、指定したタスク リストが存在しない場合は、ワークフロー タスク リストを作成します。
各ワークフロー タスクのコンテンツ タイプを指定した編集フォームに設定します。
このメソッドは以下のパラメータを受け取ります。
XOML 形式のワークフロー マークアップ ファイルを表す XML。
RULES 形式のワークフロー ルール マークアップを表す XML。
XOML および RULES ワークフロー形式の詳細については、「Windows Workflow Foundation」を参照してください。
ワークフロー構成スキーマに従ったワークフロー構成ファイル全体を表す XML。
ワークフロー構成スキーマの詳細については、「ワークフロー構成スキーマの概要」を参照してください。
ワークフロー マークアップの検証のみを行うか、ワークフロー マークアップの検証とサポート オブジェクトの作成を行うかを指定するフラグ値。
-
このソッドを使用して、ワークフロー テンプレートを作成し、ワークフロー テンプレートを指定した SharePoint リストに関連付けます。
このメソッドは、以下のパラメータをとります。
このワークフローに使用するワークフロー構成ファイルのパス。
使用するワークフロー構成ファイルのバージョン。
ワークフロー構成ファイルには、指定したワークフロー マークアップ ファイルおよびルール ファイルから Windows SharePoint Services でワークフロー テンプレートを作成し、特定の SharePoint リストに関連付けるために必要な情報が含まれます。ワークフロー構成ファイルには以下のような情報が含まれます。
使用するワークフロー マークアップ ファイルおよびルール ファイルとその適切なバージョン。
ワークフローを関連付ける SharePoint リスト。
使用するワークフローのタスク リストおよび履歴リスト。
ワークフローの開始条件。
ワークフロー開始フォームの場所、データ フィールド、および既定値。
ワークフロー構成ファイルはワークフロー構成スキーマに従う必要があります。詳細については、「ワークフロー構成スキーマの概要」を参照してください。
宣言型ワークフロー テンプレートを作成し、指定したリストに関連付けると、ワークフロー テンプレートを表す SPWorkflowTemplate オブジェクトおよび関連付けを表す SPWorkflowAssociation オブジェクトが作成されます。宣言型ワークフローの場合は、各オブジェクトの IsDeclarative プロパティが True に設定されます。
Windows SharePoint Services には、アイテムに対してワークフローを初めて開始するときにワークフロー アセンブリをコンパイルする Just-In-Time コンパイラが含まれます。サーバーがコンパイルされた ASPX ページをキャッシュして、次にそのページが呼び出されたときの実行をスピードアップするのと同様に、Windows SharePoint Services は、コンパイルされたワークフローを再度呼び出されるまで保持します。
あるアイテムに対してワークフローが開始されるたびに、Windows SharePoint Services は、ワークフローがアセンブリとして展開されているか、宣言型マークアップとして展開されているかを判断します。ワークフローのアセンブリが存在する場合、Windows SharePoint Services はアセンブリを呼び出して、ワークフロー インスタンスを作成します。ワークフローが宣言型マークアップとして展開されていた場合、次に Windows SharePoint Services は、そのマークアップからコンパイルされたワークフロー アセンブリが既にメモリ内に存在しているかどうかを判断します。存在する場合、Windows SharePoint Services はメモリ内のコンパイル済みワークフローを呼び出して、ワークフロー インスタンスを作成します。存在しない場合、Windows SharePoint Services は Just-In-Time コンパイラを使用して、ワークフロー マークアップをメモリ内ワークフローにコンパイルし、それを呼び出してワークフロー インスタンスを作成します。
一定のサイトでは、宣言型ワークフローを Workflows という名前のサイトレベルのドキュメント ライブラリに格納する必要があります。各宣言型ワークフローは、Workflow ドキュメント ライブラリ内の個別のフォルダに格納する必要があります。このようなワークフローには、ワークフロー マークアップ (.xoml) ファイル、ルール ファイル、ワークフロー構成ファイルなどがあります。ワークフロー フォームもワークフロー フォルダに格納することを強くお勧めします。