1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[ODC]Workflowの追加機能 (2024/11) を確認する

Last updated at Posted at 2024-11-23

2024/11/12のProduct Releases and Updatesで、ODCのWorkflow(O11で言うと、BPTに相当する)への機能追加が発表された。

ODCのWorlflow一般については、以前書いた以下の記事を参照。

Product Releases and Updates

Workflows - New language elements and public roles | OutSystems

発表された新機能は、以下4つ。

  1. Wait(フローを一定Event発生まで停止するステップ)
  2. Conditional Start(Startとは別の起点をワークフローに持てる)
  3. Terminate(Conditional Startで始まるフローの最後に配置すると、インスタンス全体が停止する)
  4. Role-based Human Activities

動作確認シナリオ

新機能全てをカバーする以下の仮想業務シナリオを使って、動作確認していく。
(本当にこんな業務があるかは知らないが)

「契約書作成システム」
ある程度実績のある種別の契約書を、ユーザーの入力と申請に応じて作成し、必要なレビューを行い、必要に応じて、顧問弁護士にも確認を依頼する。

  1. ユーザーが契約内容を入力
  2. システムが、法務部門に契約書案のレビューを依頼(法務部門RoleにHuman Activityを割り当てる)
  3. 法務部門によるチェック後、契約金額等の条件によっては、顧問弁護士のチェックを依頼する。この場合は、チェック結果はシステムには自動入力されず、チェック結果を受け取ったというイベントを待ってワークフローを進める(顧問弁護士によるチェックはシステム外で行われるので、Waitを使ってその終了イベントが発生するまでワークフローを止める)
  4. レビュー結果に基づき、契約書を最終版に

最終盤になるまでの間、依頼者は以下の操作を行える

  • コメント追加:レビュー担当者へコメント内容が通知される。ワークフローはそのまま継続 (Conditional Start + End)
  • 取り下げ:契約書が不要になった、不備があるので一旦撤回する時の操作。レビュー中であってもワークフロー全体を終了させる (Conditional Start + Terminate)

作成したワークフロー

丸囲み数字を配置した部分が今回の新機能に対応するので、そこだけ見ていく。
スクリーンショット 2024-11-23 20.24.45.png

①Human ActivityをRoleに対しても割り当てられるようになった

で見たように、Roleは公開可能になった。同時に、Human Activityの割り当て先を、PublicなRoleとできるようになった。

設定UI

これまで通り、個別ユーザーに割り当てる(User)か、Roleに割り当てる(Roles)かをスイッチで選べるようになった。Roleの場合は、Add rolesの「+」アイコンで割当先のRoleを指定する。
スクリーンショット 2024-11-23 20.36.00.png

ODC Portalでインスタンスを確認する

以下の通り、Roleに割り当てられているのが確認できる。
スクリーンショット 2024-11-23 20.40.31.png

RoleのIdを確認できるか → 2024/11時点では難しそう

現時点ではRoleのIdを確認するのが難しい。思いつくのは以下の手順くらい。

  1. Human ActivityのRole割り当てを定義してPublish
  2. そのWorkflowを開始し、Role割り当てするHuman Activityまで進める
  3. (System)/HumanActivityRoleのデータを見て、RoleId属性の値を取得する

②Waitでイベント発生までワークフローを止めて待てるようになった

指定方法はHuman ActivityのClose onと同じ。指定Eventが発生し、かつそのEventがConditionに指定した条件に合致するまではワークフローの進行を停止する。
スクリーンショット 2024-11-23 20.45.32.png

ODC Portalでインスタンスの実行状況を確認したところ。
スクリーンショット 2024-11-23 20.47.51.png

③Conditional Startで進行中のワークフローインスタンスに割り込みをかけられる

Startノードからつながる一連のステップとは独立したフローを開始できるのがConditional Start。
Waitと同じく、開始基点となるEventと、そのEventの中で満たすべき条件を示すConditionを設定する。
スクリーンショット 2024-11-23 20.50.59.png

Conditioanl Startで始まるフローはEndとTerminateいずれでも終えられる。
Endの場合は、Startから始まる本来のフローはそのまま実行を継続できる。
Terminateにした場合、インスタンスそのものが終了する。

インスタンスをConditional Start → Terminateで終えた状態の例。
スクリーンショット 2024-11-23 20.53.44.png

Startから始まる流れは、最後に有効だったWaitステップがTerminatedで終えられている。それに対し、Conditonal Startから始まる流れはCompletedになっている。なお、このとき、インスタンスそのもののステータスはDone。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?