宣言型のコーディング不要ワークフロー エディタを作成する

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。

      ワークフロー構成スキーマの詳細については、「ワークフロー構成スキーマの概要」を参照してください。

    • ワークフロー マークアップの検証のみを行うか、ワークフロー マークアップの検証とサポート オブジェクトの作成を行うかを指定するフラグ値。

  • AssociateWorkflowMarkup メソッド

    このソッドを使用して、ワークフロー テンプレートを作成し、ワークフロー テンプレートを指定した 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) ファイル、ルール ファイル、ワークフロー構成ファイルなどがあります。ワークフロー フォームもワークフロー フォルダに格納することを強くお勧めします。

See Also

概念

Windows SharePoint Services のワークフローの開発

ワークフロー構成スキーマの概要

Office SharePoint Designer 2007 の概要