Skip to main content

 

アプリケーションの開発

 

OutSystems

並行アクティビティの設計

このパターンを使用して、並行して実行されるアクティビティを持つ複数のパスを設計します。そのためには、パスが複数に分岐するアクティビティからの外向きのコネクタを追加します。

プロセスが実行されると、それぞれの並行パスにあるアクティビティのシーケンスが独立して実行されます。

例として、注文された材料を準備する発注処理プロセスを考えます。この中には、送り状の作成と、材料の梱包という並行して実施される2つのタスクがあります。

同期を伴う結合

並行パスを結合して、すべての並行パスが終了したときにのみ実行される単一のパスに戻すには、並行パスを新しいプロセスに移動し、Execute Processを使用してそのプロセスを実行します。

プロセスが実行されると、Execute Processアクティビティは並行アクティビティを含む他のプロセスを実行します。このプロセスは、すべての並行アクティビティが終了したときにのみ終了します。

例として、材料の準備、送り状の作成と梱包、注文品の出荷(注文品の包装完了時のみ)を行う発注処理プロセスを考えます。

強制終了を伴う結合

並行パスを結合して、並行パスの1つが終了したときに実行される単一のパスに戻すには、並行パスをプロセスに移動し、Execute Processを使用してそのプロセスを実行します。また、新しいプロセスで、End要素のTerminateプロパティに「Yes」を設定して、パスと同時に終了するようにします。

プロセスが実行されると、Execute Processアクティビティは並行アクティビティを含む他のプロセスを実行します。このプロセスは、並行アクティビティの1つが終了したときに終了します。

例として、注文された材料を在庫または外部のサプライヤのいずれかから調達し、注文を処理し、送付する発注処理プロセスを考えます。

並行フローの結合のアンチパターン

並行パスを結合する方法には他の方法もありますが、それらはアンチパターンです。つまり、効果がなかったり、実際には逆効果であったりするため、そういった方法は使用しないことを推奨します。

  • 同期を伴わない結合: 並行パスから入力があるたびに1回ずつ、結合されたパスは、同期を伴わないで複数回実行されます。結合されたパスにあるそれぞれの並行パスからの情報を使用することは、簡単ではありません。

  • 同期不良での結合: 並行パスの同期にDecisionを使用します。Decisionのロジックは複雑であり、問題が同時に発生することを避けられないため、誤った出力を返す可能性があります。結合されたパスにあるそれぞれの並行パスからの情報を使用することは、簡単ではありません。

  • Was this article helpful?