ヘッダーをスキップ
Oracle Workflow APIリファレンス リリース2.6.3.5 部品番号: B15622-01
|
ループ
ループは、あるアクティビティが完了した結果、すでに完了している別のアクティビティに進んだ場合に発生します。最初のアクティビティは、再実行アクティビティとして検出されるもので、ループ・ポイントまたはピボット・アクティビティとも呼ばれます。 ワークフロー・エンジンには、再実行アクティビティについて次の3通りの処理方法が用意されています。
- 再実行アクティビティを無視し、スレッドのそれ以降の処理を中止して、実際にはこのアクティビティが1回しか実行されないようにします。
- 再実行する前に、最初に実行したロジックを使用して対象ループをループ・ポイントにリセットし、ループ内のアクティビティを取り消します。
- 対象ループ内で、ロジックを実行せずにループ・ポイントおよびすべてのアクティビティを再実行します。
それぞれのアクティビティには、Oracle Workflow Builderの「詳細」プロパティ画面に「再開封時」ドロップ・ダウン・フィールドがあります。「再開封時」ドロップ・ダウン・リストを使用すると、ワークフロー・エンジンがワークフロー・プロセスのアクティビティを再実行するときにどのように機能するかを指定できます。 このフィールドには、「無視」、「リセット」または「ループ」を設定できます。
「再開封時」を「無視」に設定すると、複数の場所からトランジションが発生しても、アクティビティを1回しか実行しないようにする場合に役立ちます。 たとえば、このモードを使用して「論理OR」タイプのアクティビティを実装し、トランジションが何回行われても最初のトランジションの後で終了できます。
「再開封時」を「リセット」に設定すると、ループ内でアクティビティのステータスをリセットしてから、アクティビティを再実行する場合に役立ちます。 リセットすると、ワークフロー・エンジンでは、次の処理が実行されます。
- ピボット・アクティビティ以降に通過した全アクティビティのリストを作成します。
- アクティビティのリストを逆にたどって、各アクティビティを取り消し、そのステータスをリセットします。
アクティビティの取消しは、アクティビティの実行に似ていますが、アクティビティはRUNモードではなくCANCELモードで実行されます。 CANCELモードには、安全のためのロジックを定義して、それまでにRUNモードで実行されたすべての操作を取り消すことができます。
FYI通知アクティビティを含むループのピボット・アクティビティの場合は、「再開封時」を「リセット」に設定すると、以前の通知が取り消されてから、ループが再実行され、通知アクティビティの現行の実行者に新規通知が送信されます。
アクティビティの「再開封時」を「ループ」に設定すると、ループ内でアクティビティのステータスをリセットせずに、アクティビティを再実行するのみの場合に役立ちます。 「ループ」に設定すると、アクティビティに対してCANCELモードのロジックは実行されず、アクティビティがRUNモードで再実行されます。
FYI通知アクティビティを含むループのピボット・アクティビティの場合は、「再開封時」を「ループ」に設定すると、以前の通知はオープンのままでループが再実行され、通知アクティビティの現行の実行者に新規通知が送信されます。
Copyright © 2003, 2004, Oracle. All rights reserved.