チュートリアルタスク2.8 - 時間とともに変化するタイプ別コンテンツ
タスクの概要
このタスクでは、在庫内のコンテンツを時間とともに変化するタイプ別に記録する統計コレクターを作成します。
このタスクは、このシリーズのタスク1で使用されたものと同じモデルをベースにしています。モデルを開く方法については、そのタスクを参照してください。
ステップ1 統計コレクターにイベントを追加する
このステップでは、統計コレクターにイベントを追加します。そのためには、次の手順を実行します。
- 画面の左側にある[ツールボックス]タブをクリックして、ボタンをクリックし、新しいツールを追加します。[統計]セクションに移動して、[統計コレクター]を選択します。これにより、プロパティウィンドウが開きます。
- 最上部にあるフィールドをクリックして、統計コレクターの名前を「ContentByTypeOverTime」に変更します。
- [イベント]タブで、サンプラーボタンをクリックします。その後で、ツールボックスの[ストレージシステム]をクリックします。[スロットエントリ時]オプションを選択します。
- [追加のラベル]エリアで、プラスボタンをクリックして、[このイベントのラベルを追加...]を選択します。
- ラベルの名前を「Delta」に設定します。
- ラベルの値を「
1
」に設定します。 - [行の値]フィールドに、「
data.item.Type
」と入力します。 - [このイベント後に関係した行を終了する]ボックスをオンにします。
- [イベント]タブの左上で、サンプラーボタンをクリックしてから、ツールボックスの[ストレージシステム]をクリックします。[スロット終了時]オプションを選択します。
- [追加のラベル]エリアで、プラスボタンをクリックして、[このイベントのラベルを追加...]を選択します。
- ラベルの名前を「Delta」に設定します。
- ラベルの値を「
-1
」に設定します。 - [行の値]フィールドに、「
data.item.Type
」と入力します。 - [このイベント後に関係した行を終了する]ボックスをオンにします。
説明
このステップでは、スロットエントリ時イベントとスロット終了時イベントをリッスンしました。どちらのケースでも、両方のイベントにDeltaというラベルを追加しました。Deltaは、後で、アイテムが在庫に入ったり出たりしたときに、コンテンツをインクリメントまたはデクリメントするために使用されます。どちらのイベントでも、アイテムのタイプラベルが行の値として使用されます。
ステップ2 統計コレクターに列を追加する
このステップでは、統計コレクターに列を追加します。そのためには、次の手順を実行します。
- [列]タブをクリックします。
- ボタンをクリックして、[列の追加]を選択します。
- 列の名前を「時間」に設定します。
- [行の追加の値]フィールドの横にある矢印をクリックして、[時間]を選択してから、[モデル日付/時刻]を選択します。
- もう一度、ボタンをクリックして、[列の追加]を選択します。
- [名前]フィールドで、この列の名前を「タイプ」に変更します。
- [行の追加の値]フィールドの横にある矢印をクリックして、[データ]をポイントし、[行の値]を選択します。
- [保管タイプ]プロパティを[整数]に設定します。
- もう一度、ボタンをクリックして、[列の追加]を選択します。
- [名前]フィールドで、この列の名前を「コンテンツ」に変更します。
- [イベントの値]フィールドを[
data.row.Content
]に設定します。 - [保管タイプ]プロパティを[整数]に設定します。
- [イベント/列の接続]エリアで、ストレージシステム - スロットエントリ時イベントを選択して、[コンテンツ]ボックスをオンにし、このイベントを[コンテンツ]列に接続します。
- ストレージシステム - スロット終了時イベントを選択して、[コンテンツ]ボックスをオンにし、このイベントを[コンテンツ]列に接続します。
説明
このステップでは、3つの列(時間、タイプ、およびコンテンツ)を追加しました。[時間]列と[タイプ]列は単純です。アイテムが在庫に入ったり出たりするたびに、この2つの列に現在時刻と各行に関連付けられたタイプが記録されます。3つ目の列には、行が追加されたときに値が記録されません。代わりに、両方のイベントに接続されます。行が追加されたら、統計コレクターがその行の更新時トリガーを発動してから、接続先の列を更新します。そのイベントが発生すると、[コンテンツ]列にdata
エンティティ上の行ラベルであるコンテンツの値が記録されます。
あと1つ残ったタスクは、コンテンツラベルに正しいデータが含まれていることを確認することです。この操作はこのタスクの後半で行います。
ステップ3 統計コレクターの行オプションを設定する
このステップは1つのステップで構成されます。[行オプション]タブをクリックして、[終了した行の値とラベルを維持する]ボックスをオンにします。
通常は、行を終了すると、統計コレクターがその行の値に接続されたラベルを削除します。このボックスをオンにすることにより、統計コレクターにそれらのラベルと行の値を維持するように指示できます。ただし、行はまだ終了されず、行の値とラベルがその行から接続解除されます。次にイベントで行の値が生成されたときに、統計コレクターが新しい行を追加して、その新しい行に行の値とラベルを接続します。
このオプションを使用すれば、統計コレクターは、両方のイベントで行が終了される場合でも、イベント間で値を記憶することができます。
ステップ4 統計コレクターにトリガーを追加する
このステップでは、統計コレクターにトリガーを追加します。そのためには、次の手順を実行します。
- [トリガー]タブをクリックします。
- プラスボタンをクリックして、[行の更新時]を選択します。
- 行の更新時トリガーでプラスボタンをクリックして、[行ラベルを増加]を選択します。
- ポップアップで、[増加]フィールドを[
"Content"
]に設定します。 - インクリメント量を[
data.Delta
]に設定します。 - [適用]ボタンをクリックします。
ツールボックスでContentByTypeOverTimeコレクターを右クリックして、[テーブルを表示]オプションを選択できます。モデルをリセットして実行すると、時間とともに変化するタイプ別コンテンツがテーブルに記録される様子が表示されます。データの入力を確認するには、モデルをできるだけ高速で実行する必要があります。
説明
アイテムがストレージシステムに入ると、統計コレクターがdata
エンティティを作成して、2つの重要なラベルを追加します。
item
ラベル(イベントパラメータラベル)は、入ったアイテムを記録します。Delta
ラベル(追加のラベル)は、1
の値を記録します。
このイベントは、アイテムのタイプを行の値として返します。統計コレクターは必ずその行を終了するため、その行の値用の行はありません。これは、統計コレクターが必ず値用の行を追加することを意味します。ただし、[終了した行の値とラベルを維持する]ボックスをオンにしたため、その行のコンテンツラベルが存在し、その行のコンテンツの以前の値が記憶されます。行の値はアイテムのタイプのため、この行上のコンテンツラベルはそのタイプのコンテンツと一致します。
行が追加されると、[時間]列と[タイプ]列が記録されます。その後で、行の更新時トリガーが発動されます。このトリガーでは、[コンテンツ]行のラベルがDeltaだけインクリメントされました。このケースでは、Deltaが1のため、コンテンツは増加します。
トリガーが発動したら、統計コレクターが[コンテンツ]列のイベントの値を設定します。これは、その列が現在のイベントに接続されているためです。このケースでは、統計コレクターが[コンテンツ]行のラベルの値を記録します。
アイテムがストレージシステムを出ると、コンテンツラベルがインクリメントではなくデクリメントされることを除いて、同じ処理が行われます。
ステップ5 チャートを作成する
ここでは、統計コレクター内のデータを時間プロットとして表示するチャートを作成します。そのためには、次の手順を実行します。
- 画面の最上部にある[ダッシュボード]ボタンをクリックして、[ダッシュボードを追加]オプションを選択します。
- ダッシュボードビューがアクティブになっている状態で、左側のライブラリに移動します。[基本のチャートタイプ]セクションで、[時間プロット]チャートを探してダッシュボードにドラッグします。これにより、新しいチャートのプロパティウィンドウが開きます。
- [データソース]フィールドをクリックして、オプションから[ContentByTypeOverTime]コレクターを選択します。
- [X値]プロパティを[時間]列に設定します。
- [Y値]プロパティを[コンテンツ]列に設定します。
- [色で分割]リストで、[タイプ]ボックスをオンにします。
- [設定]で、[スタイルを描画]プロパティを[階段ステップ]に変更します。
- [テキスト]タブをクリックします。
- [カスタムタイトル]ボックスをオンにして、カスタムタイトルを「タイプ別コンテンツ」に設定します。
- [列ヘッダーを表示]エリアで、[タイプ]ボックスをオンにします。
- [色]タブをクリックします。
- [値を編集]ボタンをクリックして、[すべての色を削除]を選択します。
- プラスボタンを3回クリックして、3つの色を追加します。
- [適用]ボタンをクリックします。
これで、モデルをリセットして実行すると、ContentByTypeOverTimeコレクターの時間プロットを示すチャートを表示できます。前回と同様に、モデルを実行してから結果が表示されるまで、しばらく時間がかかる場合があります。