リスト
概要と主要な概念
リストは、トークン、フローアイテム、タスク実行者、タスクシーケンス、数値、文字列などのリストを表すことができる共有アセットです。[リストにプッシュ]アクティビティと[リストからプル]アクティビティを使用すると、シミュレーション実行中にリストのコンテンツを動的に更新できます。たとえば、次に利用可能なオブジェクトやアクティビティへの移動を待機しているフローアイテムまたはトークンをリストで表すことができます。オブジェクトやアクティビティが利用可能になると、フローアイテムまたはトークンをリストからプルし、下流オブジェクトか下流アクティビティに送信できます。
[リスト]は処理フローの内部に置いても、3Dシミュレーションモデルの[グローバルリスト]にリンクしてもかまいません。
処理フローでリストを使用する理由
[リスト]を使用すると次のことができます。
- トークンまたはオブジェクトを同期
- オブジェクトのグループを整理
- カスタム統計を追跡
- モデル内で選択するためのフィルタリングや優先度付けなどの検索概念を使用
[リスト]には、他の共有アセットと機能が重複するものが多数ありますが、処理フロー内で[リスト]を使用することに特有の利点の1つは、トークン同期です。トークン同期とは、あるアクティビティで[リスト]にトークンをプッシュさせつつ別のアクティビティで[リスト]からトークンをプルすることで、トークンが定義されたポイントで互いを待つことを指します。
トークン同期が必要なビジネスシステムを実例で考えるために、注文品を選択する倉庫の出荷場をシミュレーションしてみます。トラックが向かっているという通知を倉庫が受け取ると、従業員は選択済みの注文品の出荷準備を開始する必要がありますが、従業員が荷台で出荷準備を完了する前にトラックが到着する可能性があります。その場合、トラックは注文品の準備が完了するまで待つ必要があります。一方、トラックが到着する前に従業員が注文品の出荷準備を完了することもあります。その場合、トラックが到着するまで待つ必要があります。
トラックを1つのトークンとして、そして各注文品を1つのトークンとして表すと、この問題が分かりやすくなります。すなわち、注文品トークンをリストにプッシュする[リストにプッシュ]アクティビティに各注文品トークンを送信し、すべての注文品トークンをリストからプルする[リストからプル]アクティビティにトラックトークンを送信するということです。注文品が最初に到着した場合、注文品トークンはトラックが到着してリストからプルされるまで[リストにプッシュ]アクティビティに残ります。トラックが最初に到着した場合、トラックトークンは、リストからすべての注文品をプルするまで、[リストからプル]アクティビティで待機します。
リストを作成する・リストをリンクする・リストにアクセスする
[リスト]共有アセットを使用して、次のように内部リストまたはグローバルリストへのリンクのいずれかを作成できます。
- グローバルリスト - 3Dシミュレーションモデルですでに作成されたグローバルリストへのリンク。リストを3Dモデル内のオブジェクトが使用するリストにリンクする必要がある場合は、グローバルリストを使用します。
- 内部リスト - デフォルトの方法であり、[リスト]共有アセットが作成し、所有するリスト。リストが3Dモデル内のオブジェクトにアクセスする必要がない場合は、内部リストを使用します。
ローカルリストを使用する場合、処理フローに対してグローバルまたはローカルにリストを定義できます。
処理フローでリストをデバッグする
通常、ピックオプションのいずれかでコードをデバッグする必要がある場合は、コードエディタの左端の列をクリックして次のようにブレイクポイントを作成します。
ただし、[リスト]共有アセットで[内部リスト]を使用しているときにフィールドをデバッグする必要がある場合は、次のようにdebug()コマンドを使用する必要があります。
これは、[バックオーダー再評価イベント]にも適用されます。
コネクター
[リストにプッシュ]アクティビティと[リストからプル]アクティビティのみが[リスト]に接続できます。
プロパティ
次の画像は、[リスト]共有アセットのプロパティを示しています。
これらの各プロパティについては、次のセクションで説明します。
名前
アクティビティの名前を変更するために使用します。このプロパティの詳細については、「名前」を参照してください。
フォント
[フォント]ボタン で、アクティビティの背景色プロパティとフォントプロパティを編集するウィンドウが開きます。このプロパティの詳細については、「フォント」を参照してください。
統計
[統計]ボタン でアクティビティの統計ウィンドウが開きます。このプロパティの詳細については、「統計」を参照してください。
リスト
[リスト]ボックスを使用して、グローバルリストにリンクするか、内部リストを作成します。グローバルリストと内部リストの違いの詳細については、「リストを作成する・リストをリンクする・リストにアクセスする」を参照してください。
デフォルトでは、リストはすべて内部リストです。つまり、このボックスには[内部リストを使用]と表示される必要があります。内部リストを使用する場合で、ボックスにこれ以外のテキストが表示されているときは、[削除]ボタン をクリックして内部リストを使用するよう戻します。
グローバルリストにリンクするには、このボックスの横にある矢印をクリックしてメニューを開きます。[グローバルリスト]をポイントし、メニューからリストの名前を選択するか、サンプラー を使用して[ツールボックス]からリストをサンプリングします。
タイプ
[タイプ]メニューで、リストをローカルに定義するかグローバルに定義するかを決定します。内部リストを作成しており、[リスト]共有アセットが[一般処理フロー]に含まれていない場合のみ、このメニューは利用可能です。詳細については、「リストを作成する・リストをリンクする・リストにアクセスする」を参照してください。
エントリを表示...
[エントリを表示...]ボタンは現在リストにあるすべての値を表示します。このボタンは、[グローバルリスト]プロパティの[一般]タブの[エントリを表示...]ボタンと同じ機能を果たします。
バックオーダーを表示...
[バックオーダーを表示...]ボタンは、リストからプルしているすべてのバックオーダーを表示します。このボタンは、[グローバルリスト]プロパティの[一般]タブの[バックオーダーを表示...]ボタンと同じ機能を果たします。
詳細
[詳細]ボタンをクリックすると、[リスト]プロパティページが開きます。このページを使用して、リストのプロパティを編集します。