Analizador CSV
En un fichero de valores separados por comas (CSV) se almacenan datos tabulares (números y texto) en formato de texto sin formato. Con la extensión CSV Parser de ThingWorx, analice y manipule los ficheros CSV en ThingWorx. De este modo, se pueden importar datos CSV y almacenarlos en ThingWorx o bien se puede tratar simplemente como almacén de datos y extraer valor adicional de los datos CSV. Para utilizar la extensión CSV Parser, descargue e importe CSVParser_Extensions.zip a ThingWorx. El paquete permite importar lo siguiente a ThingWorx:
• Recurso CSVParserFunctions
|
Se recomienda que los ficheros de importación estén codificados en UTF-8.
|
|
La extensión CSV Parser está disponible en
support.ptc.com en Descargar software > Pedir o descargar actualizaciones de software > ThingWorx Foundation > Versión <versión más reciente> > ThingWorx CSV Parser > Most Recent Datecode > CSV-Parser-Extensions.
|
Servicios
La funcionalidad del analizador CSV se encuentra en la ficha Fragmentos de servicios con los siguientes servicios:
• GetCSVFile: este servicio analiza un fichero CSV de una solicitud HTTP GET (el resultado de salida es una infotable). Tiene los siguientes parámetros configurables:
◦ header (cabeceras HTTP)
◦ fieldDelimiter (delimitador de campo)
◦ ignoreSSLErrors (desestimar los errores de la certificación SSL)
◦ columnMappings (asignaciones de columna)
◦ hasHeader (el fichero CSV tiene una fila de cabecera)
◦ latitudeField (índice de campo de latitud)
◦ password (contraseña de URL)
◦ url (URL)
◦ longitudeField (índice de campo de longitud)
◦ username (nombre de usuario de URL)
◦ stringDelimiter (delimitador de valor de la cadena)
◦ dateFormat (formato de fecha y hora)
◦ dataShape (definición de datos)
◦ timeout (tiempo de espera opcional en segundos)
• GetOrderedFieldOutput: este servicio devuelve una lista de exportaciones de datos (el resultado de salida es una infotable). Tiene los siguientes parámetros configurables:
◦ orderedFieldList (la infotable que se debe utilizar como origen)
◦ inputInfotable (una lista CSV ordenada de los campos que se deben devolver de la tabla de entrada)
• ParseCSVFile:
este servicio analiza un fichero CSV de texto (el resultado de salida es una infotable). Tiene los siguientes parámetros configurables:
◦ content (contenido)
◦ fieldDelimiter (delimitador de campo)
◦ columnMappings (asignaciones de columna)
◦ hasHeader (el fichero tiene una fila de cabecera)
◦ latitudeField (índice de campo de latitud)
◦ longitudeField (índice de campo de longitud)
◦ stringDelimiter (delimitador de valor de la cadena)
◦ dateFormat (formato de fecha y hora)
◦ dataShape (definición de datos)
• ReadCSVFile: este servicio analiza un fichero CSV de un almacén (el resultado de salida es una infotable). Tiene los siguientes parámetros configurables:
◦ path (ruta del fichero)
◦ fieldDelimiter (delimitador de campo)
◦ columnMappings (asignaciones de columna)
◦ hasHeader (el fichero tiene una fila de cabecera)
◦ latitudeField (índice de campo de latitud)
◦ longitudeField (índice de campo de longitud)
◦ stringDelimiter (delimitador de valor de la cadena)
◦ dateFormat (formato de fecha y hora)
◦ dataShape (definición de datos)
• WriteCSVFile: este servicio escribe un fichero CSV en un almacén. Tiene los siguientes parámetros configurables:
◦ data (datos de la infotable)
◦ path (ruta del fichero)
◦ fileRepository (nombre de almacén de ficheros)
◦ withHeader (usar cabeceras para nombres de columna)
Ejemplo: ReadCSV
En el siguiente ejemplo, la definición de datos se define como ds1 con dos campos de cadena.
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);