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);