Skip to main content

 

アプリケーションの開発

 

OutSystems

条件付き開始の使用を制限する

Conditional Startsプロセスに追加したときは、対応しようとしているビジネスケースについてよく検討する必要があります。そうしない場合、アプリケーションのデプロイが不必要に複雑なものになる可能性があります。その主な理由は、以下のとおりです。

  1. 条件付き開始には、それぞれ独自のライフサイクルがあります。アクティビティインスタンスを永続的にアクティブな状態に保ち、イベントを検出します。各イベントでは、フローの実行が新しく開始されます。つまり、複数のイベントで複数の実行が開始され、情報量が増大します。アプリケーションのデプロイ時には、この情報すべてに対して影響分析が行われます。

  2. アプリケーションのデプロイ中は、条件付き開始に対して特定の検証が実行されます。これはアクティブなプロセスのすべてのインスタンスを対象としており、プロセス内のそれぞれの条件付き開始にイベントを検出するアクティビティインスタンスがあるかどうかを確認します。存在していないアクティビティインスタンスが見つかった場合は作成されます。この処理により、デプロイのオーバーヘッドが増加します。

このケースでは、以下のいずれかの方法が推奨されます。

  • プロセスを分析して、プロセスフローの特定のポイント以降でのみ必要となる条件付き開始を特定します。依存関係コネクタを使用し、条件付き開始の検出アクティビティを実際に必要なときまで延期します。このようにすると、デプロイ中の検証で分析対象となる条件付き開始が減少します。

採用応募者の対応プロセスについて考えます。特定の時点で面接が予定され、予定されたそれぞれの面接は条件付き開始により独立して処理されます。

条件付き開始は、面接が予定されたときにのみ必要であり、そのため、依存関係コネクタがそのアクティビティの直前に追加されます。

  • プロセスフローを分析し、プロセスとは直接関係のない条件付き開始を特定します。一般的には、Start Onプロパティが空の条件付き開始を探すのが良い方法です。これは、手動で実行できることを意味しています。

条件付き開始のフローを新しいプロセスに移動し、条件付き開始のすべての実行を新しいプロセスの実行に置き換えます。

新しいプロセスに入力パラメータを追加し、メインプロセスの識別子を渡します。このようにして、新しいプロセスが自動的にメインプロセスに関係付けられ、レポーティングの際に有効です。必要な他の値を渡す場合は、入力パラメータを追加します。

前の例で示したプロセスに、個別の電話連絡についてのメモをとる条件付き開始もある場合を考えます。

条件付き開始のTelephoneNoteは、Start Onがないため明示的に開始されます。実際、これは一般的なフローです。新しいプロセスに移動できます。

このようにして、条件付き開始を減少させます。また、電話メモのための新しいプロセスは一般的であるため、おそらく再利用できます。

条件付き開始のフローの削除に伴うアップグレードの影響を低減するには、トピックプロセスフローからのアクティビティの削除が及ぼす影響で推奨されている方法を考慮します。

最後に、メインプロセスがターミネートする可能性のある状況を検証します。このケースでは、条件付き開始を置き換えるすべてのプロセスもまた、条件付き開始と同じ動作を維持するために終了する必要があります。このロジックをProcessTerminateアクションを用いて実装することを検討します。

  • Was this article helpful?