日時ソース
概要と主要な概念
[日時ソース]アクティビティによって、その[到着]テーブルに指定されているとおりに新しいトークンが作成されます。このテーブルでは、日付ベースのインターフェイスと繰り返しテーブル(日次または週次スケジュール)のいずれかによって何個のトークンをいつ作成するのかが定義されています。また、テーブルには、必要に応じて新しいトークンとラベル値に割り当てる名前が定義されています。これらの設定には固定値と動的に計算された値のいずれも使用可能です。このテーブルに手動でデータを入力するか、Excelインターフェイスを使用してExcelスプレッドシートからテーブルをインポートすることもできます。
到着スケジュールの概要
次の画像は、[日時ソース]アクティビティの到着予定の例を示しています。
このテーブルでは、午前8時から午前9時の間に20個のトークンが作成され、午前9時から午前10時の間にトークンがランダムに作成され、午前10時から午前11時の間に15個のトークンが作成されます。[到着間隔]値と[オフセット/変動]値に基づき、トークンを開始時刻に作成するのか、開始時刻と終了時刻の間で均等な間隔を置きながら作成するのか、開始時刻と終了時刻の間でランダムな間隔を置きながら作成するのか定義できます。
スケジュールの[時間モード]を指定することもできます。これは、到着テーブルの開始時刻と終了時刻がモデル開始時間に基づいているかどうかを定義するものです。たとえば、午前8時や時間0を基準にします。時間0に基づいている場合、時間は0からのオフセットになります。
[日時ソース]アクティビティにはそれぞれ、新しいトークンを作成するスケジュールを制御する[到着]テーブルがあります。テーブルの各行は、トークンがいつ作成されるかを定義します。各列の下のセルの値を変更し、到着スケジュールをカスタマイズできます。
- 開始 - 開始列はトークンが作成される時間間隔の開始を定義します。時間間隔中にトークンが作成されるタイミングを定義する方法については、「到着間隔」を参照してください。
- 終了 - 終了列はトークンが作成される時間間隔の終了を定義します。
- 名前 - デバッグ目的で、スケジュールのこの時点で作成されたトークンに名前を割り当てることができます。この例では、作成される最初のトークンの名前はToken 1となります。
- 量 - 到着の時間間隔の間に作成されるトークンの数。
- ラベル - 作成されたトークンに追加されるラベルを定義する追加の列を到着テーブルに定義できます。ラベルの名前が列の名前になります。ラベルには、数値、文字列、配列、ポインター、バンドル、追跡変数を使用できます。
時間モード
[日時ソース]アクティビティには時間モードが2つあります。
- 時刻0から - このモードでは、開始時間列と終了時間列が時刻0からのオフセットになります。たとえば、開始フィールドが01:00に設定されている場合、到着開始時間はモデルの開始から1時間後になります。
- モデルの開始日時を使用 - このモードが選択されている場合、モデルの開始日時に基づいてモデルがテーブルに移動します。たとえば、モデルの開始時間が月曜日の午前8時であれば、最初の到着は08:00または00:08:00になります。あるいは、モデルの開始時間が火曜日の真夜中であれば、最初の到着は00:00または01:00:00になります。
スケジュールを繰り返す
到着スケジュールは、毎日、毎週、毎時間繰り返すか、繰り返しなしに設定できます。リピート間隔をカスタマイズすることもできます。リピート間隔が選択されている場合、[サイクルカウント]を定義できます。これを定義すると、モデル実行が終わるまでスケジュールが繰り返されます。スケジュールのサイクル数を定義すると、スケジュールを実行する回数が決定されます。たとえば、サイクルカウントが1の場合、スケジュールは1回実行されます。
ダッシュボードの[編集]ボックスを[サイクルカウント]に結び付けることができます。ダッシュボード編集ボックスを作成し、クイックプロパティの[リンク]ボックスの横にある ボタンを使用してサイクルカウントにリンクさせます。
動的到着値
開始時間、終了時間、継続時間を除き、到着テーブルの値はピックリストまたはコードを利用して動的に定義することもできます。これにより、到着スケジュールの定義方法をいろいろとコントロールできます。各到着テーブルには、表の下にユニバーサル編集があります。これは、現在選択されているテーブルセルに基づいて変化します。ユニバーサル編集のサンプラーまたはドロップダウンボタンを使用し、テーブルセルの値を定義します。
インスタンス化されたフローで日時ソースを使用する
モデルの実行中に、処理フローオブジェクトのインスタンスを動的に作成する場合があります。[人を作成]アクティビティは、フローアイテムビンから新しい人物を作成し、インスタンス化された処理フローを定義して、作成された人物にアタッチできます。そのとき、処理フローに日時アクティビティがあると、[モード]と[時間モード]に基づいてそのスケジュールが開始されます。[モード]が[日付ベース]に設定されているか、[時間モード]が[モデルの開始日時を使用]に設定されている場合、現在のモデル時間に基づいてスケジュールが開始されます。つまり、インスタンスの作成時刻に関係なく、時間は絶対値になります。たとえば、[日時ソース]アクティビティに登録されている最初の到着時刻が10:00のとき、オブジェクトの新しいインスタンスが09:00に作成された場合、最初のトークンは1時間後の10:00に作成されます。
[時間モード]が[時刻0から]に設定されている場合、到着時刻はインスタンスの作成時刻からの相対値になります。たとえば、[日時ソース]アクティビティの最初の到着が02:00のとき、オブジェクトの新しいインスタンスが01:00に作成された場合、最初のトークンは03:00に作成されます。
[スケジュールソース]を使用し、相対的な時間でトークンを作成することもできます。
コネクター
[日時ソース]アクティビティでは、コネクターを1つのみ使用できます。詳細については、「アクティビティを追加および接続する」を参照してください。
プロパティ
次の画像は、[日時ソース]アクティビティのプロパティを示しています。
これらの各プロパティについては、次のセクションで説明します。
名前
アクティビティの名前を変更するために使用します。このプロパティの詳細については、「名前」を参照してください。
フォント
[フォント]ボタン で、アクティビティの背景色プロパティとフォントプロパティを編集するウィンドウが開きます。このプロパティの詳細については、「フォント」を参照してください。
統計
[統計]ボタン でアクティビティの統計ウィンドウが開きます。このプロパティの詳細については、「統計」を参照してください。
到着を編集
日時ソースの[到着ウィンドウ]を開きます。
作成されたトークンにラベルを割り当て
作成したトークンにラベルを追加できます。トークンが作成されるたびにラベルエントリが評価されます。ラベルの割り当ての詳細については、「ラベルを割り当てる」アクティビティを参照してください。
到着ウィンドウ
到着ウィンドウは、日時ソースの到着スケジュールが定義される場所です。このウィンドウの各プロパティについては、次のセクションで説明します。
テーブルを生成
[テーブルを生成]では、毎日または毎週繰り返されるテーブルを簡単に生成できます。[テーブルを生成]ボタンをクリックすると、次のポップアップが表示されます。
- タイプ - 毎日または毎週のスケジュールを選択します。
- 分割長 - 各到着の分割長を選択します。[タイプ]に[Daily]が選択され、[分割長]に[1 Hour]が選択された場合、1時間に1回の割合で24回の到着を含むスケジュールが生成されます。
- 生成 - タイプと分割長に基づいて新しい到着スケジュールが生成されます。注:テーブルを生成すると、以前に作成された到着スケジュールが削除されます。
モード
日時ソースには2つの到着モードがあります。
- 繰り返し - モデル時刻0またはモデル開始日時に基盤にできる到着スケジュール。スケジュールは1回実行することも、任意の時間間隔で繰り返すこともできます。
- 日付ベース - モデル開始日時に基づく到着スケジュール。カレンダーグラフを使用すると、暦を見ながら到着の日付を追加できます。個々の到着を繰り返すことはできますが、スケジュール全体を繰り返すことはできません。
Excelインポーター
をクリックすると、現在表示されているテーブルがExcelインターフェイスに追加されます。
行
到着スケジュールの行数を表示します。スケジュールの終わりに行を追加するか、削除します。ボックスに新しい数値を入力するか、上下矢印を使用します。
ラベル
ラベルは作成したトークンに追加できます。 をクリックするか、ボックスに数字を直接入力します。 ボタンを使用して最後のラベルを削除します。
テーブル/詳細
到着スケジュールは、2つの異なる方法で表示できます。
- テーブル - このビューには、各到着の開始時間と終了時間が判読しやすい形式で表示されます(日、時間、分、秒)。デフォルトの形式はHH::MMです。テーブルが週間スケジュールに設定されている場合、テーブルには週の到着が表示されます。テーブルセルは到着数になります。
- 詳細 - このビューには、モデル時間単位を使用して到着の開始時間と継続時間が表示されます。
表示するテーブルに関係なく、データは同じになります。つまり、1つのテーブルで時間、トークン名、ラベルの値を編集すると、その値は他のテーブルにも表示されます。
到着テーブル
デフォルトでは、到着テーブルには4つの列があります。任意の数のラベルをスケジュールに追加することもできます。
- 開始(HH::MM) - トークンが作成される時間間隔の始まり。この列の名前は、到着スケジュールに基づいて変わります。デフォルトではHH:MMで表示されます。列のデータの形式は「時間:分」となります。スケジュールが数日に及ぶ場合、この列にはDD:HH:MMが表示されます(日:時間:分)。開始時間に秒を表示する必要がある場合、DD:HH:MM:SS(日:時間:分:秒)またはHH:MM:SS(時間:分:秒)が表示されることがあります。時間は、モデルの時間単位に関係なく、以上の時間単位で常に表示されます。
- 終了(HH::MM) - トークンが作成される時間間隔の終わり。この列名の変更方法の詳細については、上の「開始」を参照してください。
- 量 - スケジュールのこの時点で作成されるトークンの数。これは数値、統計分布、コードになります。たとえば、
duniform(1, 10)
やTable("MyTable")[1][1]
です。 - 名前 - デバッグ目的で、スケジュールのこの時点で作成されたトークンに名前を割り当てることができます。
- ラベル - [ラベル]フィールドで番号を変更すると、ラベルの列を追加または削除できます。各トークンには、テーブルのセル値に対応する値と列ヘッダーに対応する名前のラベルが与えられます。
テーブルのすぐ下にあるピックリストフィールドを使用して、テーブルまたは動的値を介して静的な値を定義できます。詳細については、「動的到着値」を参照してください。
編集する到着フィールドを選択
このフィールドは、[到着]テーブルで現在選択されているセルに基づいて変更されます。このボックスとその横にあるプルダウン矢印を使用して、テーブルの名前、数量、ラベル値の動的値を入力できます。プルダウンメニューからピックリストオプションを選択するか、FlexScriptに精通している場合はカスタムコードで入力できます。
到着間隔
到達間隔により、到着のたびにトークンが作成されるタイミングが決まります。3つの到着間隔モードがあります。
- スケジュールを設定した時間 - 到着の開始時間でトークンが作成されます。このモードでは、到着の終了時間(または継続時間)は使用されません。
- 均等な間隔 - 開始時間で始まる一定の時間間隔でトークンが作成されます。最初のトークンは開始時間で作成されます。時間間隔は
(duration / quantity)
に等しくなります。 - ランダムな間隔 - 一様分布を利用し、開始時間と終了時間の間でトークンがランダムな間隔で作成されます。別の分布を使用するには、[到着間隔]を[スケジュールを設定した時間]に設定し、[オフセット/変動]ピックリストから分布を選択します。
オフセット/変動
オフセット/変動は各トークンの作成時間を変更します。このピックリストによって返される値は負または正の値になります。つまり、到着の開始時間の前か到着の終了時間の後にトークンを作成できます。これは、スケジュールに入っている予約を扱うときに特に便利です。このピックリストは、到着のたびにトークンごとに1回起動します。
日付ベース
[モード]が[日付ベース]に設定されている場合、到着ウィンドウは次のように変わります。
- グラフィカル/詳細 - グラフィカルビューとテーブルビューを切り替えます。詳細ビューには、開始時間と継続時間の値を含むすべての到着がモデル時間単位で表示されます。
- スナップ先 - ビューで到着をスナップする時間を指定します。デフォルトではスナップ先はありません。あらかじめ設定した10分、15分、30分、1時間を指定することも、独自のカスタムスナップ先時間を設定することもできます。カスタム時間はモデルの時間単位です。
- カレンダー開始 - 到着スケジュールの開始日時を指定します。開始時間の前に到着すると、トークンは作成されませんが、データはそのまま残ります。必要であれば、到着スケジュールの一部を一時的にオフにできます。
- ...- モデル設定ウィンドウを開きます。
- 色 - イベントに色を付けるラベルを選択します。イベントの色は
Color.byNumber(labelValue)
またはcolor(labelValue)
に等しくなります。 - 開始 - 選択した到着の開始日時。
- 終了 - 選択した到着の終了日時。
- 継続時間 - 選択した到着の継続時間。形式はDD:HH:MM:SSです。
- 繰り返しイベント - チェックボックスをオンにすると、到着は繰り返しイベントになります。ここでは、繰り返しの発生頻度と繰り返し回数、または繰り返す日時を定義できます。
- ...- 繰り返しイベントのプロパティを表示します。
- - 選択した到着が繰り返しイベントに含まれるが親イベントではない場合、ビューの中心に親イベントが配置され、選択されます。
- 到着プロパティ - 到着プロパティテーブルには、到着の量、名前、ラベル列が表示されます。
- 編集する到着フィールドを選択 - このフィールドは[到着プロパティ]テーブルで現在選択されているセルに基づいて変わります。このボックスとその横にあるプルダウン矢印を使用して、テーブルの名前、数量、ラベル値の動的値を入力できます。プルダウンメニューからピックリストオプションを選択するか、FlexScriptに精通している場合はカスタムコードで入力できます。
グラフィカルテーブルを使用する:
- エントリを作成 - 空いている任意の場所をクリックしてドラッグし、新しいダウン時間を作成します。スナップ先時間にスナップします。
- エントリを変更 - エントリの中央をクリックしてドラッグし、エントリの開始時間を変更します。左右にドラッグして週に沿って時間を変更するか、上下にドラッグして週を変更します。期間を変更するには、エントリの左端または右端をクリックしてドラッグします。スナップ先時間にスナップします。開始時間、終了時間、期間はエディタビューの下にあるプロパティからも変更できます。
- 週を選択 - [日付]列の下でビューの左側に沿ってクリックしてドラッグし、エントリの週を選択します。選択した週に開始時間があるエントリが選択されます。
- 拡大 - Ctrlキーを押しながらスクロールホイールを使用してマウスの位置を拡大します。
- スクロール - スクロールホイールを使用して、ビュー内を上下にスクロールします。
- 水平スクロール - Shiftキーを押しながらスクロールホイールを使用して左右にスクロールします。
- 一番下のスクロールバー - 一番下のスクロールバーをクリックしてドラッグし、拡大または縮小、左右へのスクロールをします。
- コピーへドラッグ - Ctrlキーを押しながらエントリをクリック&ドラッグしてコピーを作成します。
- Ctrl + C - 選択したエントリをコピーします。
- Ctrl + X - 選択したエントリを切り取ります。
- Ctrl + V - 選択したエントリを貼り付けます。エントリを1つコピーして貼り付けるとき、カーソル位置の下に貼り付けられます。週全体が選択されると、開始時間と週の開始の関係を維持したままカーソル位置の週に基づいてエントリが貼り付けられます。
- 矢印キー - エントリまたはエントリの週を選択し、上下左右キーを利用して[スナップ先]時間に基づいてエントリ開始時間を調整します。