グローバルテーブルにデータをインポートする

データのインポートについての主要な概念

FlexSimには、ExcelワークブックやSQLデータベースからデータを自動的にインポートするフル機能のツールがあります。これらのツールを使用すると、ワークブックやデータベースからデータを簡単に抽出し、グローバルテーブルにダンプすることができます。また、FlexSimには、CSVファイルからグローバルテーブルにデータをコピーするシンプルなコマンドも備わっています。

データをインポートする前に、まず、インポート先となるグローバルテーブルを作成する必要があります。各テーブルにわかりやすい名前を指定してください。データをインポートすると、行、列、値がソースデータと同じになるようにテーブルが上書きされます。テーブル名は変わりません。

インポートのタイミングとデジタルツイン

一般に、データのインポートはモデルの実行前に行う必要があります。データのインポートは、モデルをリセットするときとモデルを開くときに行われるのが最も一般的です。Excelツールとデータベースコネクタには、リセット時にインポートを行うかどうかを指定するチェックボックスがあります。データをインポートするために、[モデルリセット時]トリガーまたは[モデルを開いたとき]トリガーにコードを追加することもできます。

多くのお客様にとって、FlexSimの使用目的は、施設のデジタルツインを作成することです。FlexSimはこのタスクに非常に適したツールです。最も優れたアプローチは、モデルを開くとき(またはユーザーがカスタムボタンを押すとき)に実際のシステムの現在の状態をインポートするようにモデルを設定することです。インポートが行われると、モデルは新しいデータを適用できます。モデルの時刻0は、その時点、つまりインポートが行われた時刻を表します。シミュレーションを実行すると、システムの将来の状態が予測されます。

インポート後にデータを検証する

テーブルデータに基づいて構築されたモデルは、通常、そのデータに関する仮定を行います。それらの仮定が真でない場合、モデルは正しく機能しません。FlexSimには、データインポート後にすべての仮定をチェックできるテーブル検証ツールがあります。詳細については、データの検証に関するセクションを参照してください。

Excelからデータをインポートする

FlexSimには、ExcelワークブックからデータをインポートするためのExcelツールがあります。

このツールは、メインツールバーのExcelボタン を使用して開きます。ツールボックスを使用して開くこともできます。緑色のプラスボタン をクリックし、[接続性]をポイントして、[Excelのインポート/エクスポート]を選択します。

インポート]タブでは、インポート行のリストを指定できます。インポート行ごとに、ワークブックのソースシートを指定します。インポート先テーブル(通常はグローバルテーブル)も指定します。データの最初の行を列ヘッダーにするかどうか、データの最初の列を行ヘッダーにするかどうかも指定できます。インポートが行われると、指定したシートのデータがターゲットテーブルにコピーされます。インポートの指定の詳細については、「Excelインポート」を参照してください。

FlexScriptからインポートを実行するには(モデルトリガーやカスタムボタンなどの場合)、次のコードを使用できます。

excelmultitableimport()

SQLデータベースからデータをインポートする

FlexSimには、SQLデータベースからデータをインポートするためのデータベースコネクタツールがあります。モデルで使用するデータベース接続ごとに、データベースコネクタを1つ追加できます。データベースコネクタでは、最初のステップとして接続を設定します。

ODBCドライバーを持つデータベースを含む、大半のSQLデータベースに接続できます。

接続の詳細を指定した後で、インポートを設定できます。

各インポートは、データベースで実行するクエリです。クエリの結果は、ターゲットのグローバルテーブルにダンプされます。列ヘッダーは、SELECTステートメントで指定された名前に設定され、行ヘッダーは空白のままとなります。

FlexScriptからインポートを実行するには(モデルトリガーやカスタムボタンなどの場合)、次のコードを使用できます。

// This code applies to the current software version only.
// It is not guaranteed to work in future versions.
string connectorName = "DatabaseConnector1";
string path = "Tools/DatabaseConnectors/" + connectorName;
treenode connector = Model.find(path);
if (connector) {
	function_s(connector, "importAll");
}

.CSVファイルをインポートする

FlexSimには、CSVファイルをグローバルテーブルにダンプするimporttable()というFlexScriptコマンドがあります。

string sourceFile = modeldir() + "Data.csv";
Table destinationTable = Table("MyGlobalTable");
importtable(destinationTable, sourceFile, 1);

この例に示すように、現在のモデルファイルのパスを取得するためにmodeldir()コマンドを使用できます。これは、モデルと同じディレクトリにあるCSVファイルを使用するのに便利です。

この例では、CSVファイルの最初の行が列ヘッダーであると仮定しています。importtable()コマンドのすべてのパラメータの詳細については、importtable()の説明を参照してください。

データが正常にインポートされた後で、データが仮定に一致することを検証できます。詳細については、次のトピック「グローバルテーブルでデータを検証する」を参照してください。