ベースシステムのワークフローイベント
いくつかのワークフローイベントが基本システムで利用可能です。
| イベント | 説明 | 目的 | 使用の方法 | ソース | スレッド | リスナー |
|---|---|---|---|---|---|---|
| activityComplete | onActivityCompleteイベントハンドラに応答するためにアクティビティ定義で使用されるストリング値。 | ワークフロー実行アクティビティ[wf_executing] テーブルのレコードに、同じワークフローコンテキスト内の他のアクティビティの完了を通知します。 | アクティビティでwf_executing.notify_terminationのブール値を設定できる場合は、onExecuteイベント中に値をtrue(activity.notify_termination = true)に設定します。 |
ワークフローエンジン、プロセス終了 | 現在のスレッド、現在のミューテックス | Joinアクティビティ |
| その他のイベント | JoinアクティビティがotherEventに応答するために使用する文字列値です。 | 完了したotherEventについてワークフロー実行アクティビティ[wf_executing] テーブルのレコードに通知します。 | Joinアクティビティは、n回前のアクティビティから遷移します。これらのこれまでのアクティビティはすべてwf_executingレコードを作成し、レコードがすでに存在するかどうかを確認します。Joinがすでに存在する場合、実行中の遷移によって作成されたJoinは削除のためにwf_executingレコードを設定します。 | Joinアクティビティ | 現在のスレッド、現在のミューテックス | Joinアクティビティ、onOtherEventイベントハンドラ |
| タイマー | 期限切れのTimerアクティビティに応答するためにワークフロー アクティビティによって使用される文字列値です。 | wf_executingレコードに完了し、タイマーイベントを発生させたタイマーアクティビティについて通知することを許可します。 | Timerアクティビティは、スクリプトを呼び出すジョブのスケジュールを設定します。スクリプトはfireEvent(wf_executing、timer)を呼び出します。 | Timerスケジュールされたジョブによるアクティビティ | ワーカースレッド、プライベートミューテックス | Timerアクティビティ、 onTimer イベントハンドラ |
| execute | 期限切れのTimerアクティビティに応答するためにワークフロー アクティビティによって使用される文字列値です。 | 最初の状態がwf_executingテーブルのレコードに通知されます。 実行中その主な作業を進めてください。 | ワークフローエンジンは、実行されたトランジションごとに、実行中の状態を持つ実行レコードを作成します。作成されると、実行中のレコードは処理のためにキューに入れられます。キュー内の各アイテムについて、Rhinoグローバルが確立され、実行レコードを駆動するアクティビティ定義がインスタンス化され、 run() 関数が呼び出されます。レコードの状態が実行の場合、この関数は常にonExecuteを呼び出します。 | ワークフローエンジン、WFActivity Handler経由 | 現在のスレッド、現在のミューテックス | すべての活動、 onExecute イベントハンドラ |
| 実行(特に ロック ) | 特定のロックを取得しようとする待機中のロックに応答するためにLockアクティビティが使用する文字列値です。この実行は、別のスレッドで指定された間隔で呼び出され、外部イベントとして扱われるため、以前の実行とは異なります。 | 指定された待機時間が経過し、再度ロックを取得する必要があることを実行するのを待機しているwf_executingレコードに通知します。 | Lockアクティビティは、ワークフロースクリプトインクルードのfireEvent(wf_executing、 'execute')メソッドを使用するスクリプトでジョブをスケジュールします。 | ロックスケジュールされたジョブによるアクティビティ | ワーカースレッド、プライベートミューテックス | ロックアクティビティ、 onExecute イベントハンドラ |
| decideApprovalState | 現在のレコードの全体的な承認ステータスの変更に対応する承認アクティビティで使用される文字列値です。 | wf_executingレコードに、タイマーイベントを完了しトリガした承認に関する承認アクティビティを通知します。 | 承認コーディネーターは、イベントの登録とイベントのトリガーを行います。子の承認には、承認状態を決定するリスナーがあります。 | 承認コーディネーターはそのonExecute中にイベントをトリガーします。 | 現在のスレッド、現在のミューテックス | 承認コーディネータ、承認 - ユーザ、承認 - グループにはすべてonDetermineApprovalStateイベントハンドラがあります。状態が Requested以外の状態の場合、アクティビティは終了したとみなされ、承認状態(Approved、Rejected、Cancelled)がwf_executing.result列に設定されます |
| キャンセル(アクティビティ定義内から) | ワークフロー アクティビティがキャンセル要求に応答するために使用する文字列値。 | ワークフローがキャンセルされるコンテキスト内のすべてのwf_executingレコードに通知します。 | Endアクティビティでは、グローバルworkflow.broadcastEvent( 'cancel')を使用して、現在実行中のwf_executingレコードを中断します。これにより、これらのレコードの状態がキャンセルに変更されます。 | Endアクティビティ | 現在のスレッド、現在のミューテックス | すべてのアクティビティ、 onCancel イベントハンドラ |
| キャンセル(現在のコンテキスト外) | ワークフロー アクティビティがキャンセル要求に応答するために使用する文字列値。 | このイベントは上記のキャンセルイベントと同じで、同じイベントを処理します。しかし、このイベントの管理は微妙に異なります。このイベントは、ワークフローがキャンセルされていることをコンテキスト内のすべてのwf_executingレコードに通知します。このイベントは、 onCancel 実行中の各アクティビティ定義のイベントハンドラですが、イベントは別々に呼び出されます。特に、アクティビティ定義の外部から取り消すコールは、現在のミューテックスによってブロックされます。これは、イベントが現在のミューテックスのパラメータ内でまだ動作している現在実行中のアクティビティを中断しないという点で重要な違いです。 | どのスクリプトも、ワークフロースクリプトインクルードを介して、既知の実行中のコンテキストに対してキャンセルを呼び出すことができます。たとえば、var w = new Workflow(); w.cancel(context); // contextはキャンセルされるコンテキストのGlideRecordです。 |
任意のスクリプトインクルード、スケジュールされたジョブ、UIアクション、またはその他のソース | 現在のスレッド、プライベートミューテックス | すべてのアクティビティ、 onCancel イベントハンドラ |
| 停止する( Endアクティビティを参照してください) | Endアクティビティはこのイベントをチェックします。 | 停止イベントが現在のイベントである場合、 Endアクティビティはバイパスされます。 | Endアクティビティで唯一です。 | 任意のスクリプトが含まれるまたはワークフロースクリプトの実行アクティビティスクリプトを経由して停止イベントをトリガまたはブロードキャストすることができます | 現在のスレッド、現在のミューテックス | このイベントは、Endアクティビティによって使用され、キャンセルアクティビティを除外し、キャンセルされた場合でもワークフローを終了できるようにします。 |
| リスナー | ワークフロー(サブフロー)アクティビティがイベントとしてトリガする文字列値です。 | メインワークフローがサブフローを呼び出すとき、ワークフローはサブフローのコンテキストのIDをスクラッチパッドに保持します。サブフローが完了すると、ビジネスルールを介してリスナーイベントがトリガーされます。 | リスナーイベントは、サブフローの完了時に親コンテキストに渡され、ワークフローアクティビティのonListenerアクションによって管理されます。 | 親を持つワークフローの更新によってトリガされるビジネスルールです。 | 現在のスレッド、現在のミューテックス | このイベントは、親フローが完了したことをサブフローが通知するために使用されます。親ワークフローはこのイベントに反応して処理を続行します。 |
| probe_complete | Orchestrationアクティビティによってワークフロー内でトリガされた文字列値。MIDサーバーがタスクを完了したことを示します。 | probe_completeイベントは、ワークフローヘルパー関数handleEventByIdを介してオーケストレーションセンサープロセッサからトリガーされます。 | onProbe_completeイベントハンドラはWebServiceActivityHandlerにあり、ほとんどのオーケストレーションアクティビティで使用されます。 | MIDサーバがタスクまたはアクティビティを処理するのを待っているワークフローを再表示するために使用されるイベントです | ワーカースレッド、プライベートミューテックス | オーケストレーションアクティビティ |
| 一時停止 | SLAからワークフローに送信され、Timerアクティビティを一時停止する文字列値です。 | SLAが一時停止されている場合、タイマーが実行されている場合は、SLAワークフローを一時停止する必要があります。 | SLAタイマー専用です | SLA | ビジネスルールスレッド、プライベートミューテックス | タイマーアクティビティ |
| 再開 | タイマーアクティビティが一時停止したタイマーを再開するために使用する文字列値(一時停止を参照)。 | SLAが再開されると、SLAワークフローも再開する必要があります。 | SLAタイマー専用です。 | SLA | ビジネスルールスレッド、プライベートミューテックス | タイマーアクティビティ |