決定
概要と主要な概念
[決定]アクティビティは、定義した条件に基づいて、2つ以上の実行可能なアクティビティのいずれかにトークンを送信します。つまり、[決定]アクティビティは、トークンを移動させる次のアクティビティを決定できます。
[決定]アクティビティでは、次のようにさまざまな方法を使用して、トークンが次に進むべきアクティビティを決定できます。
- ラウンドロビン方式で次のアクティビティにトークンを送信する
- 最長キューや最短キューを有するアクティビティに、(そのアクティビティで待機しているトークンの数に基づいて)トークンを割り当てる
- 特定割合のトークンを1つのアクティビティに移し、残りの割合のトークンを別のアクティビティに移す
- トークンのラベル値に基づいて、さまざまなアクティビティや結果にトークンを送信する
- 次に実行可能なアクティビティのいずれかに、トークンをランダムに割り当てる
[決定]アクティビティを使用してルーピング機能を作成することもできます。トークンの条件やラベルを評価した後、[決定]はトークンをループの先頭に送り返したり、トークンをループから出したりできます。
コネクター
[決定]アクティビティでは、任意の数のコネクターを使用できます。[決定]では、他のアクティビティをスナップすることはできません。これを行うと、[決定]からすべてのコネクターが削除されるためです。詳細については、「アクティビティを追加および接続する」を参照してください。
[決定]アクティビティを使用するには、コネクターの働きを理解する必要があります。以下のリストで、留意すべき重要な概念について説明します。
- 各発信コネクターには、作成した順序に基づいて番号(ランクとも呼ばれます)があります。[決定]アクティビティから別のアクティビティに発信コネクターを作成すると、このコネクターには自動的に番号(ランク)が割り当てられます。たとえば、作成する最初の発信コネクターにはランク1が割り当てられ、2番目にはランク2といったようにランクが割り当てられます。これは、3Dシミュレーションモデルでオブジェクト間のポート接続が機能する仕組みに似ています。
- 発信コネクターの順位は変更できます。[決定]アクティビティのプロパティやコネクターのプロパティを使用して、発信コネクターのランクを変更できます。また、[決定]アクティビティからコネクターを切断し、再接続してコネクターを最後のランクに移動させることもできます。
- コネクターには名前を付けることができます。必要に応じ、参照をより見やすくするために名前をコネクターに割り当てることもできます(名前を作成するには、コネクターをダブルクリックします)。[決定]プロパティが文字列(テキスト)を返す場合、[決定]はコネクターの中から所定の文字列と一致する名前を持つものを検索します。
- 存在しないコネクターに送信する。[決定]プロパティが無効なランクまたは存在しないコネクター名を返す場合、トークンは[決定]アクティビティに残り、リリースされません。これは、[決定]プロパティで負の数を返す際も同様です。
- コネクターは必須ではありませんが、推奨されています。コネクターが[決定]アクティビティを離れるときはトークンの流れに従う方が見やすいですが、必須ではありません。アクティビティに接続されていない状態でも、[決定]プロパティに送信先となるアクティビティを与えることができます。
getactivity()
コマンドを使用するか、アクティビティへの参照をトークンラベルに保存することでこれを実行できます。
プロパティ
次の画像は、[決定]アクティビティのプロパティを示しています。
これらの各プロパティについては、次のセクションで説明します。
名前
アクティビティの名前を変更するために使用します。このプロパティの詳細については、「名前」を参照してください。
フォント
[フォント]ボタン で、アクティビティの背景色プロパティとフォントプロパティを編集するウィンドウが開きます。このプロパティの詳細については、「フォント」を参照してください。
統計
[統計]ボタン でアクティビティの統計ウィンドウが開きます。このプロパティの詳細については、「統計」を参照してください。
決定
[決定]ボックスを使用して、[決定]アクティビティが次のアクティビティにトークンを送信するために使用するロジックを決定します。[決定]ボックスの横にある矢印をクリックすると、多くの実行可能なオプションのメニューが次のように表示されます。
- 条件付きで決定 - このオプションは、トークンをテストして簡単なテストに合格するかを確認します。合格するとトークンはあるコネクターから送信され、不合格の場合、別のコネクターから出されます。たとえば、トークンがラベルの1つに特定の値を持っているかどうかを調べることができ、ラベルにその値があるとトークンは合格します。
- パーセンテージ別 - 特定の割合のトークンをあるコネクターから、別の割合をもう一方のコネクターから送信するなどします。
- ケース別のコネクターとアクティビティ - ラベル値などの特定の変数に基づいて、トークンをコネクター名やコネクター番号、アクティビティに送信します。
- ランダムコネクター - ランダムに任意の発信コネクターにトークンを送信します。
- 最短/最長キュー - 最長キューや最短キューを有するアクティビティに(アクティビティで待機しているトークンの数に基づいて)トークンを送信します。
- ラウンドロビン - 各トークンはいずれかの発信コネクターに順次送信されます。たとえば、発信コネクターが3つある場合、最初のトークンはコネクター1に、2番目のトークンはコネクター2に、3番目のトークンはコネクター3に移動します。その後も、次のトークンをコネクター1に、次をコネクター2に、というように繰り返し送ります。
コネクターアウト
[コネクターアウト]プロパティを使用して、[決定]アクティビティの発信コネクターを追加、編集、削除できます。
[コネクターアウト]メニューには、現在[決定]アクティビティ用に存在するすべての発信コネクターが表示されます。コネクターは、コネクターのランクと名前で一覧表示されます。(コネクターに名前を割り当てていない場合、メニューにはコネクターのランクのみが表示されます)。
[コネクターアウト]メニューが空白の場合、まだ発信コネクターが作成されていないことを意味します。[追加]ボタン をクリックして、アクティビティの新しいコネクターを作成します。[削除]ボタン は、[コネクターアウト]メニューで現在選択されているコネクターを削除します。
[コネクターアウト]メニューからコネクターを選択した後、次のプロパティを編集できます。
- 名前 - このボックスを使用して、現在選択されているコネクターに名前を付けます。コネクターに名前を付ける必要はありませんが、処理フローのチャートを読みやすくし、コネクターを名前で参照できるようになります。
- 接続先 - このボックスには、現在選択しているコネクターが接続されているアクティビティの名前が表示されます。注:デフォルトでは、同一アクティビティタイプには同じ名前が付けられます。たとえば、すべての[遅延]アクティビティはデフォルトで[遅延]と呼ばれます。異なるアクティビティを区別する必要がある場合は、明確にするために名前を変更することをお勧めします。
- ランク - このボックスには、現在選択しているコネクターのランク(コネクター番号)が表示されます。ランクはコネクターを作成した順に割り当てられます。このボックスに新しい値を入力するか、上下の矢印を使用してランクを変更できます。