ワークフローイベント

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:2分
  • このシステムでは、登録されたプラットフォームイベントとワークフローイベントの2種類のイベントが使用されます。

    登録イベント

    登録されたイベントはビジネスルールで作成され、レコードがデータベースに挿入されたときに電子メール通知を送信するなどのタスクに使用されます。ワークフローイベントはワークフロー内でのみ登録され、プラットフォーム内の他の場所では使用されません。登録されたプラットフォームイベントは、外部使用のワークフローによってトリガされますが、ワークフロー内では使用できません。

    ワークフローイベント

    ワークフロー・イベントは、イベント・レジストリーを使用して登録されたプラットフォーム・イベントとは異なるルールに従います。プラットフォームイベントは、イベント登録[sysevent_register] テーブルに入力され、使用するプラットフォームプロセスで使用できます。ワークフローイベントは、ワークフローエンジン専用にトリガされ、ワー​​クフローコンテキストの実行を指示するためにのみ使用されます。イベントがワークフローに登録されると、Workflow Executing Activity [wf_executing] テーブルのregistered_eventsカラムに現在実行中のアクティビティにアタッチされます。

    ワークフローイベントは、スクリプトインクルードまたはスクリプト実行アクティビティなど、ワークフローコンテキストにアクセスできる任意のスクリプトソースからワークフローにブロードキャストすることもできます。この場合、イベントキャンセル特定のコンテキストのWorkflow Executing [wf_executing] テーブル内のすべてのレコードに渡されます。

    レジストリまたはブロードキャストのいずれの場合でも、イベントは現在実行中のアクティビティに関連付けられたアクティビティ定義によって処理されます。各アクティビティ定義には、一連のハンドラーが付属しています。たとえば、ほとんどのアクティビティには、onExecuteonCancel、およびonUpdateイベントハンドラが付属しています。より具体的なイベントの例として、Approval - Userアクティビティには、承認アクティビティの作業に固有のonDetermineApprovalStateもあります。

    複数の並列イベント

    単一のワークフローには、ワークフローが別々のワークフローブランチ上で重複するタイマーを持つ場合など、複数のイベントスレッドを同時に実行できます。追加のスレッドが最初のスレッドの前に完了すると、システムは、追加のスレッドからのイベント情報をWorkflow Queued Commands [wf_command] テーブルに格納します。最初のスレッドが完了すると、システムは追加スレッドによって保存された情報を取得し、各スレッドからのイベント情報を含むワークフローを処理します。