Parser CSV
Un file con valori delimitati da virgole (CSV) archivia i dati tabellari (numeri e testo) in formato testo normale. Con l'estensione del parser CSV per ThingWorx, è possibile analizzare e modificare i file CSV in ThingWorx. Ciò consente di importare i dati CSV e archiviarli in ThingWorx o semplicemente trattarli come archivio dati e usarli per offrire valore aggiunto. Per utilizzare l'estensione del parser CSV, scaricare e importare il file CSVParser_Extensions.zip in ThingWorx. Il package importa in ThingWorx gli elementi riportati di seguito.
Risorsa CSVParserFunctions
* 
Si consiglia di importare file con codifica UTF-8.
* 
L'estensione del parser CSV è disponibile sul sito support.ptc.com in Scarica il software > Order or Download Software Updates > ThingWorx Foundation > Release <versione più recente> > ThingWorx CSV Parser > Most Recent Datecode > CSV-Parser-Extensions.
Servizi
La funzionalità del parser CSV si trova nella scheda Snippet dei servizi con i servizi riportati di seguito.
GetCSVFile: questo servizio analizza un file CSV da un GET HTTP (il risultato restituito è una infotable). Presenta i parametri configurabili riportati di seguito.
header (intestazioni HTTP)
fieldDelimiter (delimitatore di campo)
ignoreSSLErrors (consente di ignorare gli errori di certificazione SSL)
columnMappings (mappatura di colonne)
hasHeader (il file CSV ha una riga di intestazione)
latitudeField (indice del campo Latitudine)
password (password dell'URL)
url (URL)
longitudeField (indice del campo Longitudine)
username (nome utente dell'URL)
stringDelimiter (delimitatore del valore stringa)
dateFormat (formato data e ora)
dataShape (Data shape)
timeout (timeout facoltativo in secondi)
GetOrderedFieldOutput: questo servizio restituisce un elenco di esportazioni di dati (il risultato restituito è una infotable). Presenta i parametri configurabili riportati di seguito.
orderedFieldList (la infotable da utilizzare come origine)
inputInfotable (un elenco CSV ordinato dei campi che devono essere restituiti dalla tabella di input)
ParseCSVFile:
questo servizio analizza un file CSV dal testo (il risultato restituito è una infotable). Presenta i parametri configurabili riportati di seguito.
content (contenuto)
fieldDelimiter (delimitatore di campo)
columnMappings (mappatura di colonne)
hasHeader (il file ha una riga di intestazione)
latitudeField (indice del campo Latitudine)
longitudeField (indice del campo Longitudine)
stringDelimiter (delimitatore del valore stringa)
dateFormat (formato data e ora)
dataShape (Data shape)
ReadCSVFile: questo servizio analizza un file CSV da un repository (il risultato restituito è una infotable). Presenta i parametri configurabili riportati di seguito.
path (percorso del file)
fieldDelimiter (delimitatore di campo)
columnMappings (mappatura di colonne)
hasHeader (il file ha una riga di intestazione)
latitudeField (indice del campo Latitudine)
longitudeField (indice del campo Longitudine)
stringDelimiter (delimitatore del valore stringa)
dateFormat (formato data e ora)
dataShape (Data shape)
WriteCSVFile: questo servizio scrive un file CSV in un repository. Presenta i parametri configurabili riportati di seguito.
data (dati di infotable)
path (percorso del file)
fileRepository (nome repository del file)
withHeader (consente di utilizzare le intestazioni per i nomi di colonna)
Esempio: ReadCSV
Nell'esempio riportato di seguito la data shape è definita ds1 con due campi stringa.
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);