CSV-Parser
Eine Datei mit kommagetrennten Werten (Comma-Separated Values, CSV) speichert Tabellendaten (Zahlen und Text) als Klartext. Mit der ThingWorx CSV-Parser-Erweiterung können Sie CSV-Dateien in ThingWorx parsen und bearbeiten. Dies ermöglicht es Ihnen, CSV-Daten zu importieren und in ThingWorx zu speichern oder es als reinen Datenspeicher zu verwenden und einen Mehrwert aus den CSV-Daten zu extrahieren. Um die CSV-Parser-Erweiterung zu verwenden, laden Sie die CSVParser_Extensions.zip herunter, und importieren Sie sie in ThingWorx. Das Paket importiert Folgendes in ThingWorx:
• Ressource "CSVParserFunctions"
|
Es wird empfohlen Importdateien als UTF-8 zu codieren.
|
|
Die CSV-Parser-Erweiterung ist auf der Seite
support.ptc.com unter Software herunterladen > Software-Aktualisierungen bestellen oder herunterladen > ThingWorx Foundation > Release <neueste Version> > ThingWorx CSV Parser > Neuester Datumscode > CSV-Parser-Extensions verfügbar.
|
Dienste
Die CSV-Parser-Funktionalität ist in der Dienstregisterkarte "Ausschnitte" mit den folgenden Diensten vorhanden:
• GetCSVFile: Dieser Dienst parst eine CSV-Datei aus einem HTTP GET (Ausgabeergebnis ist Infotable). Er hat die folgenden konfigurierbaren Parameter:
◦ header (HTTP-Kopfzeilen)
◦ fieldDelimiter (Feldtrennzeichen)
◦ ignoreSSLErrors (SSL-Zertifizierungsfehler ignorieren)
◦ columnMappings (Spaltenzuordnungen)
◦ hasHeader (CSV-Datei mit Kopfzeile)
◦ latitudeField (Breitengrad-Feldindex)
◦ password (URL-Passwort)
◦ url (URL)
◦ longitudeField (Längengrad-Feldindex)
◦ username (URL-Benutzername)
◦ stringDelimiter (Zeichenfolgenwert-Trennzeichen)
◦ dateFormat (Datums-/Zeitformat)
◦ dataShape (Data Shape)
◦ timeout (optionales Timeout in Sekunden)
• GetOrderedFieldOutput: Dieser Dienst gibt eine Liste von Datenexporten zurück (Ausgabeergebnis ist Infotable). Er hat die folgenden konfigurierbaren Parameter:
◦ orderedFieldList (als Quelle zu verwendende Infotable)
◦ inputInfotable (geordnete CSV-Liste der Felder, die aus der Eingabetabelle zurückgegeben werden sollen)
• ParseCSVFile:
Dieser Dienst parst eine CSV-Datei aus Text (Ausgabeergebnis ist Infotable). Er hat die folgenden konfigurierbaren Parameter:
◦ content (Inhalt)
◦ fieldDelimiter (Feldtrennzeichen)
◦ columnMappings (Spaltenzuordnungen)
◦ hasHeader (Datei mit Kopfzeile)
◦ latitudeField (Breitengrad-Feldindex)
◦ longitudeField (Längengrad-Feldindex)
◦ stringDelimiter (Zeichenfolgenwert-Trennzeichen)
◦ dateFormat (Datums-/Zeitformat)
◦ dataShape (Data Shape)
• ReadCSVFile: Dieser Dienst parst eine CSV-Datei aus einem Repository (Ausgabeergebnis ist Infotable). Er hat die folgenden konfigurierbaren Parameter:
◦ path (Pfad zu Datei)
◦ fieldDelimiter (Feldtrennzeichen)
◦ columnMappings (Spaltenzuordnungen)
◦ hasHeader (Datei mit Kopfzeile)
◦ latitudeField (Breitengrad-Feldindex)
◦ longitudeField (Längengrad-Feldindex)
◦ stringDelimiter (Zeichenfolgenwert-Trennzeichen)
◦ dateFormat (Datums-/Zeitformat)
◦ dataShape (Data Shape)
• WriteCSVFile: Dieser Dienst schreibt eine CSV-Datei in ein Repository. Er hat die folgenden konfigurierbaren Parameter:
◦ data (Infotable-Daten)
◦ path (Pfad zu Datei)
◦ fileRepository (Datei-Repository-Name)
◦ withHeader (Kopfzeilen für Spaltennamen verwenden)
Beispiel: ReadCSV
Im folgenden Beispiel ist das Data Shape als DS1 mit zwei Zeichenfolgenfeldern definiert.
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);