Parseur CSV
Un fichier CSV (comma-separated values) stocke des données tabulaires (des valeurs numériques et du texte) sous forme de texte brut. Avec l'extension de parseur CSV de ThingWorx, analysez et manipulez des fichiers CSV dans ThingWorx. Cela vous permet d'importer des données CSV et de les stocker dans ThingWorx ou de simplement le considérer comme un magasin de données et d'extraire de la valeur supplémentaire à partir des données CSV. Pour utiliser l'extension de parseur CSV, téléchargez et importez l'archive CSVParser_Extensions.zip dans ThingWorx. Le package importe le ou les éléments suivants dans ThingWorx :
Ressource CSVParserFunctions
* 
Il est recommandé d'encoder les fichiers d'importation en UTF-8.
* 
L'extension de parseur CSV est disponible sur le site support.ptc.com sous Télécharger un logiciel PTC > Commander et télécharger des mises à jour > ThingWorx Foundation > Release <dernière version> > ThingWorx CSV Parser > Code de date le plus récent > CSV-Parser-Extensions.
Services
La fonctionnalité de parseur CSV se trouve dans l'onglet Extraits avec les services suivants :
GetCSVFile : ce service analyse un fichier CSV à partir d'une requête HTTP GET (le résultat de sortie est une table d'informations). Il dispose des paramètres configurables suivants :
header (en-têtes HTTP)
fieldDelimiter (séparateur de champ)
ignoreSSLErrors (ignorer les erreurs de certification SSL)
columnMappings (mappages de colonne)
hasHeader (le fichier CSV a une ligne d'en-tête)
latitudeField (index du champ de latitude)
password (mot de passe associé à l'URL)
url (URL)
longitudeField (index du champ de longitude)
username (nom d'utilisateur associé à l'URL)
stringDelimiter (séparateur de valeur texte)
dateFormat (format date/heure)
dataShape (forme de données)
timeout (délai d'attente facultatif en secondes)
GetOrderedFieldOutput : ce service renvoie une liste d'exportations de données (le résultat de sortie est une table d'informations). Il dispose des paramètres configurables suivants :
orderedFieldList (la table d'informations à utiliser en tant que source)
inputInfotable (une liste CSV classée des champs devant être renvoyée depuis la table d'entrées)
ParseCSVFile :
ce service analyse un fichier CSV à partir d'un texte (le résultat de sortie est une table d'informations). Il dispose des paramètres configurables suivants :
content (contenu)
fieldDelimiter (séparateur de champ)
columnMappings (mappages de colonne)
hasHeader (le fichier a une ligne d'en-tête)
latitudeField (index du champ de latitude)
longitudeField (index du champ de longitude)
stringDelimiter (séparateur de valeur texte)
dateFormat (format date/heure)
dataShape (forme de données)
ReadCSVFile : ce service analyse un fichier CSV à partir d'un référentiel (le résultat de sortie est une table d'informations). Il dispose des paramètres configurables suivants :
path (chemin d'accès au fichier)
fieldDelimiter (séparateur de champ)
columnMappings (mappages de colonne)
hasHeader (le fichier a une ligne d'en-tête)
latitudeField (index du champ de latitude)
longitudeField (index du champ de longitude)
stringDelimiter (séparateur de valeur texte)
dateFormat (format date/heure)
dataShape (forme de données)
WriteCSVFile : ce service génère un fichier CSV dans un référentiel. Il dispose des paramètres configurables suivants :
data (données de la table d'informations)
path (chemin d'accès au fichier)
fileRepository (nom du référentiel de fichiers)
withHeader (utiliser les en-têtes pour les noms de colonne)
Exemple : ReadCSV
Dans l'exemple suivant, une forme de données nommée ds1 est définie avec deux champs de type chaîne.
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);