|
ワークフローガイド |
この章では、基本的なワークフロー開発の概念について説明し、ワークフロークライアントAPIについても紹介します。 この章は、次のトピックから構成されています。
設計段階では、ビジネスプロセスで自動化する内容を最初に決定する必要があります。 設計はできるだけ詳細に行い、ビジネスエキスパートおよびアプリケーション開発者も関与することが推奨されます。 取り組む可能性のある問題の一部は、次のとおりです。
ワークフローデザイナでは、アプリケーション開発者としてプロセスをグラフィカルにレイアウトし、アクティビティとリンクを作成して、該当する場合にユーザとプロパティを割り当てます。 その後、ワークフローエンジンで実行できるXMLファイルとしてプロセスを保存します。
詳細については、
第5章「ワークフローデザイナ」を参照してください。
Directorワークフローでは、次の2種類の認証されたユーザを認識します。
ほとんどの場合、ワークフローに対するユーザアクセスの設計は、役割を設計するプロセスです。 役割は、通常、アクティビティに並行します。 プロセスを設計する場合は、必要なアクティビティを識別し、そのアクティビティのユーザインタフェースを設計して、認証されたユーザのリストで役割を定義します。
詳細については、『ユーザ管理ガイド』の
役割ベースの認証に関する章を参照してください。
ワークアイテムを作成して、ワークフロープロセスおよびワークフローエンジンと通信するためには、アプリケーション開発者としてワークフロークライアントAPIを使用します。 ワークアイテムは、ドキュメントとプロパティを含むことのできる作業対象のデータのコンテナです。
ワークフロークライアントを開発し始める前に、ワークフローサブシステムの異なる部分を理解しておく必要があります。
|
ワークフローコンポーネント |
説明 |
|---|---|
|
ワークフローエンジン |
ワークフロープロセスを実行し、キュープロセスを制御します。 |
|
ワークフローキュー |
ワークアイテムデータを保持し、ワークフロークライアントとワークフローエンジンの間を仲介します。 また、キューは、自動アクティビティも監視します。 |
|
プロセス定義 |
ワークフローデザイナを使用してワークフロー開発者が作成するアクティビティとリンクを表します。 |
|
アクティビティ |
プロセス内の各ステップで実行される作業を定義します。 アクティビティはワークフローデザイナで定義され、基本的なタイプには次の2つがあります。
|
|
ワークアイテム |
ユーザアクティビティに関連付けられているコンテナ。 ワークアイテムには、編集可能なプロパティとドキュメント、またはドキュメントへのポインタを含むことができます。 |
|
リンク |
アクティビティとユーザ宛先の間の論理パスを定義します。 リンクは、ワークフローデザイナで定義されます。 |
|
ワークフロークライアント |
ワークフローAPIを使用してアプリケーション開発者によって提供されるワークフローサブシステムのユーザインタフェース。 クライアントでは、ワークアイテムを定義し、ワークフローエンジンおよびキューと通信します。 |
これらのコンポーネントがアプリケーションで動作する方法の詳細については、
20ページの「クライアントのしくみ」を参照してください。
「ワークフロークライアント」では、ワークフローサブシステムと通信するために、wf.apiパッケージとwf.client.apiパッケージのクラスを実装します。 クライアントの開発に使用できるインタフェースは、次のとおりです。
ワークフロークライアントAPIがワークフローサブシステムと通信する方法は、次の図のとおりです。
アプリケーションにより、ワークフローエンジンとキュープロセス(この図には表示されていません)を開始するためのメカニズムが提供されます。
ワークフロークライアントでは、EbiWorkflowEngineDelegateを使用して、新しいプロセスインスタンスを開始します。
キュー委任では、キュー内の各ワークアイテムを処理し、プロセスが完了するまで次のアクティビティに転送するために、EbiWorkitemDelgateを取得します。
この節では、基本的なクライアント開発のトピックの一部について説明します。
ほとんどの場合、ワークフロークライアント開発では、ワークアイテムおよび関連付けられているドキュメントの処理が関与します。 要約は次のとおりです。
Webアプリケーションのどこかで、ユーザが新しいワークフロープロセスを開始します。 この例として、Directorコンポーネントの[Create New Document]ボタンが挙げられます。
新しいプロセスインスタンスを作成するために、クライアントコードがEbiWorkflowEngineDelegateでメソッドを呼び出します。 ワークフローサブシステムでは、プロセスインスタンスを作成し、新しいワークアイテムを自動的に作成します。 プロセスインスタンスで保持されるワークアイテムは、1つだけです。
ワークフローデザイナで開始ドキュメントを指定した場合、サブシステムでは、そのドキュメントをワークアイテムに追加します。 通常、このドキュメントは、個々の作業リクエストに固有なデータがビジネス論理によって入力されるテンプレートの種類です。 ドキュメントは、ワークアイテムの文字列データとして保存し、キュー層で保持できますが、一般的には、コンテンツ管理サブシステムのドキュメントへのURLになります。
プロセス内の最初のアクティビティでは、次の任意の操作を実行するために、EbiWorkitemDelegateを使用します。
プロセス内で後続する任意のアクティビティで 手順4を繰り返します。 また、ドキュメントとプロパティはいつでも削除できます。
クライアントを開発する場合は、DirectorポータルコンポーネントまたはJSPページのいずれかを使用できます。 Directorには、JSPの実装に対して使用できるJSPタグのセットが含まれています。
インストールされたワークフローコアコンポーネントでは、プロセスを開始したり、ユーザのワークアイテムのリストを取得したりするための一般論理とUIを提供します。
コアコンポーネントの使用例については、
第3章「サンプルワークフローアプリケーション」を参照してください。
ワークアイテムプロパティは、ワークアイテム自体、またはワークアイテムに関連付けられているドキュメントに対して定義できます。 ワークアイテムプロパティは、HTMLフォームで編集可能な値である可能性があります。 この状況におけるドキュメントプロパティは、ワークアイテムの一部ですが、物理的なドキュメントには影響を与えません。 いずれの場合も、ワークアイテムプロパティは、EbiWorkitemDelegateからアクセスできるan.EbiPropertyオブジェクトとして定義される必要があります。
com.sssw.wf.api.EbiPropertyメソッドの部分的なリストは、次のとおりです。
com.sssw.wf.client.EbiWorkitemDelegateメソッドの部分的なリストは、次のとおりです。
ワークフロードキュメントは、ワークフローユーザまたは自動アクティビティによってアクセスおよび変更される生成物です。 ワークアイテムは、ドキュメントのコンテナとして機能します。
XMLドキュメント このドキュメントは、通常、ビジネスに固有です(注文書や保険金請求用紙など)。 XMLドキュメントには、ドキュメント自体(DOM)、またはドキュメントへのポインタを指定することによってアクセスできます。 ポインタは、文字列またはURLになります。
非XMLドキュメント このドキュメントの基本的な形式は、アプリケーションに固有です(コンテンツ管理システムやスプレッドシートアプリケーションからのドキュメントなど)。 非XMLドキュメントにアクセスする場合は、ポインタを指定する必要があります。 addDocument()を使用して非XMLドキュメントをワークアイテムに追加すると、ポインタは、XMLプロキシドキュメント内に保存されます。 ポインタからドキュメントを取得する方法を把握することは、アプリケーションの責任です。
EbiWorkitemDelegateからアクセスできるドキュメント関連メソッドのリストは、次のとおりです。
ワークフローサブシステムでは、ワークフローアクティビティに関連付けられているワークアイテムに対して異なるクライアントタイプを指定するためのメカニズムを提供します。 たとえば、スプレッドシートアプリケーション、Javaクライアント、またはその他のアプリケーションになるように、特定のワークアイテムのUIを指定することができます。
クライアントは、activity-policy.xmlという記述子内で指定します。 この記述子は、選択したワークアイテムに使用するクライアントのセットを決定するために、コアWorkflowQueueコンポーネントによって使用されます。 スキーマは、installed library/ WorkflowService/schemaディレクトリにあるactivitypolicy.xsdで定義されます。
例 サンプルコンテンツ管理ワークフローアプリケーションで使用される3つのコンポーネントに対して定義されているアクティビティポリシーは、次のとおりです。
<?xml version="1.0"?> <activitypolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="activitypolicy.xsd"> <activity name="AssignContent"> <client type="portal" uri="/main/comp/WorkflowAssign">Portal</client> </activity> <activity name="CreateContent"> <client type="portal" uri="/main/comp/WorkflowCreate">Portal</client> </activity> <activity name="AuthorizeContent"> <client type="portal" uri="/main/comp/WorkflowAuthorize">Portal</client> </activity> </activitypolicy>
異なるクライアントタイプを提供する場合は、アクティビティポリシーファイルを変更し、新しいクライアントタイプと、関連付けられているURLを追加できます。 WorkflowQueueコアコンポーネント(WorkflowQueueDefault.xsl)のXSLでは、クライアントタイプとしてportalを検索し、アクティビティのリンクとして、関連付けられているURLを使用します。 異なるクライアントタイプを参照するには、キューコンポーネントとactivity-policyクライアントタイプに対してXSLを適宜変更します。
注記: QueueComponentでは、URIポインタとして直接URL参照のみをサポートしていますが、URL参照を変更したり、カスタムキュークライアントを提供したりすることは可能です。
EbiWorkitemDelegateでは、アクティビティポリシー情報へのアクセスを提供します。 メソッドの一部は、次のとおりです。
EbiWorkitemDelegate.reassign()メソッドを使用すると、現在のアクティビティを別の宛先のワークアイテムキューに割り当てることができます。 これは、作業を別のユーザに一時的に転送する場合に便利です。 このメソッドには、次の宣言が含まれています。
public void reAssign(com.sssw.wf.client.EbiAddressee addressee,
EbiContext context)
throws com.sssw.wf.exception.EboWorkitemException
宛先は、サーバ認証領域で定義されているユーザ、またはプロジェクトリソースセットで記述されている役割にすることができます。 詳細については、『APIリファレンス』を参照してください。
|
ワークフローガイド |
Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.