第2章
この章では、ワークフローを開始する方法について説明し、ワークフローの設計概念についても紹介します。この章には、次のトピックが含まれています。
ワークフローの開発をはじめるまえに、インストールされているコンテンツライフサイクルアプリケーションを確認してみます。 このワークフローは、ドキュメントの割り当て、オーサリング、承認、およびContent Managementサブシステムへの発行を含むいくつかのアクティビティを介してドキュメントに従います。 また、インストールされたWorkflowStartProcessポートレットおよびWorkflowQueueポートレットを使用して、ユーザアクティビティの宛先にワークアイテムのプロセスおよびキューを開始します。
アプリケーションの実行およびソースへのアクセスの詳細については、を参照してください。
ワークフローモデラーを理解するには、コンテンツライフサイクルプロセスを開くか独自のプロセスを作成する必要があります。 exteNd Directorページフローモデラーを使用したことがある場合は、設計環境が同じであることに気付くでしょう。
Workflowサブシステムを使用すると、2つの基本的なフロー構造を作成することができます。
単一ブランチ構造では、ワークフローエンジンは、プロセスが終了するまで単一のワークアイテムを1つのアクティビティから次のアクティビティに転送します。 インストールされているコンテンツライフサイクルワークフローは、単一ブランチフローの一例です。
より複雑な要求には、フローを分割することによって、異なるプロセスのブランチによる並行作業または排他的な作業が可能になります。 並行実行では、異なる作業を同時に実行できるようにプロセスは2つかそれ以上のパスに従います。たとえば、異なる処理が必要な2つのドキュメントがワークアイテムにあるとします。 並行実行の例を次に示します。
この例では、開始アクティビティに続いて作業が両方のブランチに転送されたと想定しています。 このような条件付ブランチの場合は、「同期化マージ」アクティビティを使用してブランチをマージする必要があります。
次に、ワークフローエンジンが複数のブランチを同期化する方法を示します。
この例では、複数分割を処理する方法について説明します。 ほかの分割に移行するまえに、個々の分割をマージする必要があります。
次の例では、さらに2つの点について説明します。
この例では\xa4 最後のアクティビティの後の分割は、排他的に終了アクティビティに進むか分割前の最初のアクティビティにループバックすると想定します。
詳細については、同期化マージアクティビティを参照してください。
exteNd Directorは、ページフローおよびワークフローの統合をサポートします。 ワークフローモデラーのページフローアクティビティでは、ページフローをワークフロー内の表示アクティビティとして実行するように指定できます。 これにより、exteNd Directorページフローモデラーのリッチクライアント機能をワークフロープロセスに組み込むことができます。
ワークフローでページフローを使用するには、次のコンポーネントを実装する必要があります。
ワークフロープロセスでのページフローアクティビティは、次のようになります。
ページフローアクティビティが指すページフローは、次のようになります。
この例では、ワークフローでの一般的な要求を処理する方法を示します。 ユーザは、ワークアイテムを転送するか転送しないかオプションで編集しますが、別のセッションのために現在のワークアイテムの状態を保持できます。 たとえば、ユーザが[保存]および[転送]ボタンを順に選択して1つのリンクが表示され、ユーザが[転送]しないで[保存]を選択し、もう1つのリンクが表示されたとします。
ワークフローリターンアクティビティは、最初の要求を処理します。 2つめの要求に対して、この例ではHTMLアクティビティを使用して単にウィンドウを閉じただけです。
<script>self.close()</script>
ワークフローユーザにとって、ランタイム時にワークアイテムをロックしたりロック解除できることは基本的なワークフロー要求です。 ワークフローAPIでは、この目的のために、EbiWorkitemDelegateでlock()およびunlock()メソッドを提供しています。 ワークフローで実行しているページフローについては、ワークアイテムのロックおよびロック解除に使用できるFlowスコーププロパティがあります。
Flowスコーププロパティ |
説明 |
---|---|
ロック |
現在のユーザに対してワークアイテムをロックします。 |
ロック解除 |
現在のユーザに対してワークアイテムのロックを解除します。 |
持続的 |
ワークアイテムの状態を返します。 ワークアイテムが持続的状態(ワークフローコンテキスト)の場合は trueを返し、持続的でない場合(ページフローコンテキスト)はfalseを返します。 |
作業のロックおよびロック解除は、ページフローアクティビティ内で行われます。 一般的に、ページフローを開始するときにワークアイテムをロックし、ワークフローリターンアクティビティが実行されるまえにロックを解除します。
上記のページフローを呼び出すワークフローにページフローアクティビティがあって、宛先がキューからワークアイテムにアクセスした場合はワークアイテムをロックするとします。 基本的な手順は、次のとおりです。
注記: この節では、ワークフローモデラーにスコープパスをコピーする方法については説明していません。詳細については、を参照してください。 スコープパスの詳細については、『exteNd Directorアプリケーションの開発』のスコープパスの使用に関する章を参照してください。
Flow/lockを使用してワークアイテムをロックして別の場所に戻り値をコピーします。たとえば、次のとおりです。
Flow/lock ---> Flow/property/lockSuccess
Flow/unlockを使用して、ワークフローに返す前にワークアイテムのロックを解除します。たとえば、次のとおりです。
Flow/unlock ---> Flow/property/unlockSuccess
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...