グローバルテーブルでデータを使用する

概要と主要な概念

データをインポートして検証したら、そのデータをモデルの一部として使用できる状態となります。このトピックでは、グローバルテーブルの使用に対する一般的ないくつかのアプローチについて説明します。

テーブル行からアイテムを作成する

一般的なテーブルの1つとして、初期在庫のテーブルが挙げられます。この種のテーブルのそれぞれの行は、アイテムの数量、それらのアイテムのSKU、およびそれらのアイテムの場所を示しています。モデルは、テーブルで指定されたアイテムをゼロ時点で作成する必要があります。以下の手順を使用して、テーブルに基づいて初期在庫を作成するシンプルなモデルを作成してください。

ステップ1:キューとグローバルテーブルを追加する

  1. FlexSimで新規モデルを作成します。
  2. モデルに3つのキューを追加します。デフォルトでは、Queue1、Queue2、Queue3という名前になります。
  3. 新しいグローバルテーブルを追加します。デフォルトで、テーブルはGlobalTable1という名前になります。グローバルテーブルをモデルに追加する方法については、「モデルへのグローバルテーブルの追加」を参照してください。
  4. 行数を10に変更し、列数を3に変更します。テーブルのサイズを変更する方法については、「グローバルテーブルデータの編集」を参照してください。
  5. クリップボードにコピー]ボタンを使ってテーブルをクリップボードにコピーします。あるいは、データを選択し、Ctrl-Cまたは右クリックメニューを使ってコピーすることもできます。


    Qty	SKU	Queue
    3	SKU-1	Queue1
    3	SKU-3	Queue1
    2	SKU-4	Queue1
    1	SKU-1	Queue2
    2	SKU-2	Queue2
    3	SKU-4	Queue2
    1	SKU-5	Queue2
    2	SKU-2	Queue3
    2	SKU-4	Queue3
    1	SKU-5	Queue3
  6. 新しいグローバルテーブルの最初の列の列ヘッダーをクリックします。Ctrl-Vまたは右クリックメニューでデータを貼り付けます。

次の図は、3Dビューとテーブルビューが表示されたモデルを示しています。

ステップ2:処理フローを追加する

テーブルで指定されたアイテムを作成するには、いくつかの処理フローアクティビティを使用することになります。次の手順に従ってください。

  1. ツールボックス]で、[追加]ボタン をクリックし、[処理フロー]にカーソルを合わせて[一般]を選択します。この操作で、新しい一般的な処理フローがモデルに追加されます。
  2. 新しい処理フローで、[スケジュールソースアクティビティを追加します。
  3. 到着]テーブルで、最初の行の[数量]値をクリックします。
  4. 到着1:数量]フィールドを以下のコードに設定します。
    Table("GlobalTable1").numRows
  5. 追加]ボタン を使用し、新しいラベル割り当てを追加します。
  6. ラベルの名前を「」に設定します。
  7. ラベルのを「tokenIndex」に設定します。以下の図は、この段階で見られるアクティビティを示します。
  8. 新しい処理フローで、[オブジェクトを作成 アクティビティを追加します。
  9. 数量]フィールドで、[ピックリスト]ボタン をクリックし、[グローバルテーブル検索による]を選択します。以下のようにポップアップを設定します。
    1. テーブル]フィールドで、[ピックリスト]ボタン をクリックし、[グローバルテーブル]にカーソルを合わせて[GlobalTable1]を選択します。
    2. ]フィールドで、[ピックリスト]ボタン をクリックし、[ラベル]にカーソルを合わせて[token.Row]を選択します。
    3. ]フィールドを[1]に設定します。

  10. [オブジェクトを作成]アクティビティの[作成]フィールドで、[ピックリスト]ボタン をクリックし、[グローバルテーブル検索による]を選択します。前の手順のようにポップアップを設定しますが、[]フィールドを[3]に設定します。

  11. 作成したオブジェクトにラベルを割り当て]エリアで、[追加]ボタンをクリックして新しいラベル割り当てを追加します。
  12. ラベルの名前を「SKU」に設定します。
  13. ]フィールドで、[ピックリスト]ボタン をクリックし、[テーブル]にカーソルを合わせて[グローバルテーブル検索による]を選択します。
  14. 前の手順と同じようにポップアップを設定しますが、[]フィールドは[2]に設定します。
  15. スケジュールソースを[オブジェクトを作成]アクティビティに接続します。

モデルをリセットして実行すると、グローバルテーブルで指定された正しいSKUラベルを持つそれぞれのキューにフローアイテムが作成されます。テーブルの値を変更してから、モデルをリセットして再度実行してください。

グローバルテーブル行からイベントを作成する

もう1つの一般的なタイプのテーブルは、イベント履歴テーブルです。この種のテーブルには、注文の到着、顧客の到着、機械の故障、またはその他のイベントの履歴が含まれます。処理フローを使用し、これらのイベントをシミュレーションモデルで再現できます。このセクションでは、シンプルな注文履歴を再度作成する手順について説明します。次の手順に従って開始してください。

  1. FlexSimで新規モデルを作成します。
  2. 新しいグローバルテーブルを追加します。デフォルトで、テーブルはGlobalTable1という名前になります。グローバルテーブルをモデルに追加する方法については、「モデルへのグローバルテーブルの追加」を参照してください。
  3. 行数を7に変更し、列数を2に変更します。テーブルのサイズを変更する方法については、「グローバルテーブルデータの編集」を参照してください。
  4. クリップボードにコピー]ボタンを使ってテーブルをクリップボードにコピーします。あるいは、データを選択し、Ctrl-Cまたは右クリックメニューを使ってコピーすることもできます。


    OrderID	ReleaseTime
    1014	3.62
    1015	6.90
    1016	10.78
    1017	10.97
    1017	11.40
    1018	12.18
    1019	13.31
  5. 新しいグローバルテーブルの最初の列の列ヘッダーをクリックします。Ctrl-Vまたは右クリックメニューでデータを貼り付けます。
  6. ツールボックス]で、[追加]ボタン をクリックし、[処理フロー]にカーソルを合わせて[一般]を選択します。この操作で、新しい一般的な処理フローがモデルに追加されます。
  7. 処理フローで次のアクティビティを作成します。

  8. サブフローを実行]アクティビティを設定します。
    1. 目的地]フィールドで、[サンプラー]ボタン をクリックし、隣の[アクティビティの開始]をクリックします。
    2. 数量]フィールドを以下のコードに設定します。
      Table("GlobalTable1").numRows
    3. 1度に1トークンを実行]チェックボックスをオンにします。
    4. 親のみのラベルアクセス]チェックボックスをオフにします。
    5. 親ラベルアクセス]を[読み込み]に設定します。
    6. 子にラベルを割り当てる]エリアで、[追加]ボタン をクリックして新しいラベル割り当てを追加します。
    7. ラベルの名前を「OrderID」に設定します。
    8. ラベルの[]フィールドで、[ピックリスト]ボタン をクリックし、[テーブル]にカーソルを合わせて[グローバルテーブル検索による]を選択します。
    9. ポップアップで、[テーブル]ピックリストボタンを使用し、GlobalTable1を選択します。[]ピックリストボタンを使用し、creationRankを選択します。[]値を[1]に設定します。ポップアップをクリックオフして閉じます。
    10. 子にラベルを割り当てる]エリアで、[追加]ボタン をクリックして新しいラベル割り当てを追加します。
    11. ラベルの名前を「ReleaseTime」に設定します。
    12. 前の手順と同じように[グローバルテーブル検索による]を使用しますが、 2を指定します。
    アクティビティのプロパティが以下の図と一致している必要があります。

  9. 遅延]アクティビティを設定します。[遅延時間]値を次のように設定します。
    token.ReleaseTime - Model.time
  10. トークンを作成]アクティビティを構成します。
    1. 目的地]サンプラーを使用し、隣の[アクティビティの開始]を選択します。
    2. 次の形式で作成]プロパティを[独立したトークン]に設定します。
    3. 作成時にラベルをトークンにコピー]チェックボックスをオンにします。
    アクティビティのプロパティが以下の図と一致している必要があります。

モデルをリセットして実行すると、最終的な[アクティビティの開始]に、テーブルで指定した時間でトークンが表示されます。トークンをクリックして、その入力時間がテーブルの時間と一致していることを確認できます。