プラグ可能なワークフロー サービス

最終更新日: 2010年4月16日

適用対象: SharePoint Foundation 2010

この記事の内容
概要
使用例
開発手順

プラグ可能なワークフロー サービスには、外部アプリケーションまたはコンポーネントが、サーバー上で現在実行されているワークフロー インスタンスとプログラムによって通信するためのメカニズムが用意されています。

概要

Windows SharePoint Services 3.0 では、ワークフローが応答できるイベントの数が限られていました。ワークフロー機能を拡張するには、開発者は、コードによってワークフローが外部サービスを呼び出すようにして、パラメーターを受け取った Web サービスを記述し、実行中の特定のワークフロー インスタンスを更新する必要がありました。Microsoft SharePoint Foundation 2010 の新しいワークフローでは、以前のバージョンよりも優れた拡張性が実現し、操作および応答できる内部および外部のカスタム イベントの数が増えています。SharePoint Foundation を使用すると、開発者は、特定の外部イベントをリッスンするようにワークフローをコード化することができます。

プラグ可能なワークフロー サービスには、指定した時点までワークフローを実行し、外部プロセスの情報を待つための手段が用意されています。

アーキテクチャ

プラグ可能なワークフロー サービスの開始時のデータの流れを次に示します。

  1. ワークフロー コードが開始し、ワークフロー エンジンを読み込みます。

  2. ワークフロー エンジンは、チャンネル クラスおよびアセンブリを構成ファイルから読み取ります。

  3. チャンネルがグローバル アセンブリ キャッシュ (GAC) から読み込まれ、ワークフロー ランタイムが開始されます。

SPWorkflowService は、基本機能とデータへのサービス アクセスを提供する抽象クラスです。すべてのプラグ可能なサービスがこのクラスから継承する必要があります。

使用例

ワークフローでプラグ可能なサービスを使用して、外部の配送システムから通信を受信する

ある企業が SharePoint Foundation を使用して大規模な注文処理システムを構築しました。各注文は、注文リストのリスト アイテムによって表されています。ワークフローを使用して、注文の入力から実行までのビジネス プロセスを自動化していますが、配送については、さまざまな配送業者を使って、世界中の顧客に商品を配送しています。

最近課題になっているのは、配送業者からの更新を適時受け取り、これを注文の詳細情報に統合する必要があるという点です。注文情報を常に最新の状態に保つには、配送業者からの更新を自動的に受け取る手段が必要です。配送業者には、配送状況を顧客に通知するための自動システムがあります。

プラグ可能なワークフロー サービスを使用すると、配送業者からの配送通知を待っている間、開発者はワークフローを一時停止できます。ワークフローが配送状況を受信すると、SharePoint リストが更新され、ワークフローの次の手順、つまり請求処理に進みます。

開発手順

ワークフロー サービスの開発者が実装する必要があるのは次の 2 つだけです。

  1. カスタム ワークフロー サービス。

  2. 外部イベントを受信し、カスタム ワークフロー サービスで適切な関数を呼び出して応答するイベント ハンドラーまたは Web サービス。これにより、適切なワークフローが再開できるようになります。

関連項目

概念

プラグ可能なワークフロー サービスの作成