CSV パーサー
コンマ区切り値 (CSV) ファイルには、表形式のデータ (数字とテキスト) がプレーンテキスト形式で格納されます。ThingWorx CSV パーサー拡張機能により、ThingWorx 内の CSV ファイルの解析および操作を行います。これによって、CSV データを ThingWorx にインポートして格納したり、単なるデータストアとして扱って CSV データからその他の値を抽出したりできます。CSV パーサー拡張機能を使用するには、CSVParser_Extensions.zip をダウンロードして ThingWorx にインポートします。パッケージにより、次のものが ThingWorx にインポートされます。
• CSVParserFunctions リソース
CSV パーサー拡張機能の使用方法の詳細については、
このアーティクルを参照してください。
|
インポートファイルには UTF-8 エンコードの使用をお勧めします。
|
サービス
CSV パーサー機能は、サービスの「スニペット」タブにあり、以下のサービスを含みます。
• GetCSVFile: このサービスは HTTP GET から CSV ファイルを解析します (出力結果は Infotable)。次の設定可能なパラメータがあります。
◦ header (HTTP ヘッダー)
◦ fieldDelimiter (フィールドの区切り記号)
◦ ignoreSSLErrors (SSL 証明書のエラーを無視)
◦ columnMappings (列マップ)
◦ hasHeader (CSV ファイルにヘッダー行あり)
◦ latitudeField (緯度フィールドインデックス)
◦ password (URL パスワード)
◦ url (URL)
◦ longitudeField (経度フィールドインデックス)
◦ username (URL のユーザー名)
◦ stringDelimiter (文字列値の区切り記号)
◦ dateFormat (日付/時刻形式)
◦ dataShape (データシェイプ)
◦ timeout (オプションタイムアウトの秒数)
• GetOrderedFieldOutput: このサービスはデータのエクスポートのリストを返します (出力結果は Infotable)。次の設定可能なパラメータがあります。
◦ orderedFieldList (ソースとして使用する Infotable)
◦ inputInfotable (入力テーブルから返されるフィールドの順序付けられた CSV リスト)
• ParseCSVFile:
このサービスは、テキストから CSV ファイルを解析します (出力結果は Infotable)。次の設定可能なパラメータがあります。
◦ content (コンテンツ)
◦ fieldDelimiter (フィールドの区切り記号)
◦ columnMappings (列マップ)
◦ hasHeader (ファイルにヘッダー行あり)
◦ latitudeField (緯度フィールドインデックス)
◦ longitudeField (経度フィールドインデックス)
◦ stringDelimiter (文字列値の区切り記号)
◦ dateFormat (日付/時刻形式)
◦ dataShape (データシェイプ)
• ReadCSVFile: このサービスはリポジトリから CSV ファイルを解析します(出力結果は Infotable)。次の設定可能なパラメータがあります。
◦ path (ファイルのパス)
◦ fieldDelimiter (フィールドの区切り記号)
◦ columnMappings (列マップ)
◦ hasHeader (ファイルにヘッダー行あり)
◦ latitudeField (緯度フィールドインデックス)
◦ longitudeField (経度フィールドインデックス)
◦ stringDelimiter (文字列値の区切り記号)
◦ dateFormat (日付/時刻形式)
◦ dataShape (データシェイプ)
• WriteCSVFile: このサービスはリポジトリに CSV ファイルを書き込みます。次の設定可能なパラメータがあります。
◦ data (Infotable データ)
◦ path (ファイルのパス)
◦ fileRepository (ファイルリポジトリ名)
◦ withHeader (列名にヘッダーを使用)
例: ReadCSV
次の例では、データシェイプが 2 つの文字列フィールドを持つ ds1 として定義されます。
var params = {
path: "test5.csv" /* STRING */,
columnMappings: undefined /* STRING */,
hasHeader: undefined /* BOOLEAN */,
longitudeField: undefined /* NUMBER */,
dateFormat: undefined /* STRING */,
fileRepository: "SystemRepository" /* THINGNAME */,
latitudeField: undefined /* NUMBER */,
fieldDelimiter: undefined /* STRING */,
stringDelimiter: undefined /* STRING */,
dataShape: "ds1" /* DATASHAPENAME */
};
// result: INFOTABLE
var result = Resources["CSVParserFunctions"].ReadCSVFile(params);
WriteCSV
var params = {
infoTableName : "InfoTable",
dataShapeName : "ds1"
};
// CreateInfoTableFromDataShape(infoTableName:STRING("InfoTable"), dataShapeName:STRING):INFOTABLE(ds1)
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
var newRow = new Object();
newRow.firstfield = "FirstFieldValue";
newRow.secondfield = "SecondFieldValue";
//infotable1Object.rows[0] = newRow;
result.AddRow(newRow);
var params2 = {
path: "test4.csv" /* STRING */,
data: result /* INFOTABLE */,
fileRepository: "SystemRepository" /* THINGNAME */,
withHeader: undefined /* BOOLEAN */
};
// no return
var result = Resources["CSVParserFunctions"].WriteCSVFile(params2);