プロセスとの通信
このパターンを使用して、他のプロセスまたはアプリケーションからプロセスと通信します。
それには、以下の2つの方法があります。
- 明示的: 通信は、プロセス固有のアクションへの明示的な呼び出しにより行われます。
- 暗黙的: 通信はデータベースのレコードに対するアクションにより行われます。
明示的通信
プロセスへの通信は、プロセス拡張アクションまたはプロセスシステムアクションまたは関数を通じて行われます。
プロセスを開始する
Launch<Process>プロセス拡張アクションを使用して、他のプロセスの実行を開始します。
プロセス内のフローを開始する
Conditional Startのフローを設計し、Start<Conditional Start>アクションを使用してフローの新しいインスタンスの実行を開始します。フローで実行中のインスタンスの数以外は実行時にわからないときに有効です。
プロセスをターミネートする
プロセスは、ProcessTerminateシステムアクションを使用するか、プロセスフローでTerminateツールを使用してターミネートできます。プロセスが子プロセスを開始している場合には、それらもターミネートするようにロジックを設計します。
アクティビティを閉じる
プロセス内のアクティビティの実行を終了させる方法の1つは、ActivityCloseシステムアクションを使用することです。
もう1つの方法は、アクティビティに直接結び付けられている拡張アクションを使用することです。
-
Close<Human Activity>: プロセス内のHuman Activityの実行を終了します。たとえば、必要のなくなったHuman Activityの実行を明示的に終了させるために使用できます。
-
Close<Wait>: プロセス内のWaitアクティビティの実行を終了します。たとえば、他のプロセスがフローの特定ポイントに到達したとき、プロセスの待機アクティビティを明示的に終了させるために使用できます。
アクティビティが閉じられると、プロセスはフローの次のアクティビティに進みます。
On Closeコールバックアクションを使用して、アクティビティを閉じるかどうかを検証する特定のロジックを追加できます。
暗黙的通信
プロセスへの通信は、エンティティレコードの作成や更新など、データベース内で発生するイベントを通じて行われます。
プロセスを暗黙的に開始する
プロセスを暗黙的に開始するには、そのプロセスのLaunched On
プロパティをCreate<Entity>に設定します。新しく作成されたエンティティレコードそれぞれに対するプロセスインスタンスが開始されます。
プロセス内のフローを暗黙的に開始する
Conditional Startのフローを設計し、そのStart On
プロパティをCreate<Entity>またはUpdate<Entity>に設定します。 その後は、エンティティのレコードが作成または更新されるたびに、フローの新しいインスタンスが開始されます。フローで実行中のインスタンスの数以外は実行時にわからないときに有効です。
アクティビティを暗黙的に閉じる
アクティビティのClose On
プロパティを使用して、エンティティが作成または更新されたときにその実行を暗黙的に終了します。
-
Human Activity: たとえば、特定の値でエンティティが更新されたときに、Human Activityの実行を終了します。
-
Waitアクティビティ: たとえば、他のプロセスが特定の値でエンティティを更新するまで待機するプロセスに待機アクティビティを実装します。
アクティビティが閉じられると、プロセスはフローの次のアクティビティに進みます。
On Closeコールバックアクションを使用して、アクティビティを閉じるかどうかを検証する特定のロジックを追加できます。