Panoramica dell'SDK di ThingWorx Flow
L'SDK per i connettori di ThingWorx Flow, ad esempio ptc-flow-sdk, deve essere incluso in ogni modulo di connettore. L'esecuzione del comando init genera un file package.json che include già questo modulo.
Il server ThingWorx Flow utilizza flow-sdk per caricare il connettore e accedere alle connessioni, le azioni, i trigger e le ricerche in esso contenuti.
L'SDK per i connettori di ThingWorx Flow fornisce inoltre le seguenti API per l'utilizzo dei connettori.
• Registrazione
Tutta la registrazione all'interno del connettore deve essere eseguita utilizzando l'API di registrazione disponibile nell'SDK. Questa API aiuta a risolvere efficacemente i problemi. Per accedere all'API di registrazione, aggiungere la riga riportata di seguito al codice node js nella parte superiore del file di origine.
const logger = require('ptc-flow-sdk').getLogger('module-name')
Sostituire il nome del modulo sopra con il nome dell'azione, del trigger, della ricerca, ecc.
Il logger ha quattro metodi: debug, error, warn e info. Utilizzare il metodo appropriato in base al motivo.
Le istruzioni del log possono registrare stringhe e oggetti JSON.
• CustomFilters
CustomFilters è un'API helper per il filtraggio di matrici di JSON, stringhe o numeri. CustomFilters può essere utilizzato per filtrare gli input specificati per azioni o trigger. L'utilizzo di customFilters è un processo in due passi. Il primo passo consiste nel creare una proprietà customFilters nello schema di input come mostrato di seguito. A tal fine, è necessario consentire a un utente di selezionare l'operatore e gli operandi nella GUI.
"input": {
"type": "object",
"title": "Select Trigger",
"properties": {
"customFilters": {
"type": "array",
"title": "Custom Filters",
"items": {
"type": "object",
"title": "filter",
"properties": {
"input": {
"type": "string",
"title": "Input",
"minLength": 1
},
"operator": {
"type": "string",
"title": "Condition",
"enum": [
"Equals",
"Equals(Number)",
"GreaterThan",
"LessThan",
"Contains",
"DoesNotContains",
"matches",
"isNull",
"isEmpty",
"isNumber",
"isObject",
"isArray",
"isBoolean",
"isDate",
"isUndefined"
]
},
"expected": {
"type": "string",
"title": "Expected",
"minLength": 1
}
}
}
}
}
Il secondo passo consiste nell'utilizzare il metodo filter dell'API CustomFilters. Di seguito viene riportato lo snippet di codice per l'utilizzo di CustomFilters:
//add the first line of the code to the top of the node js script
const customFilters = require('ptc-flow-sdk').CustomFilters;
function execute (input, options, output) {
run(input, options, function (err, data) {
if (err || !data) {
return output(err || 'empty')
}
customFilters.filter(input.customFilters, data, output
})
}
Nello snippet precedente, il metodo run esegue una parte di codice, possibilmente una chiamata http che restituisce una matrice di dati. input.customFilters sono i criteri di filtro che sono stati precedentemente selezionati durante la progettazione del workflow. output è la funzione di callback da chiamare con i risultati del filtro.
• helper
L'oggetto helper ha diversi metodi JavaScript di utilità.
◦ toStr(obj) - Converte qualsiasi oggetto in una stringa.
◦ toISO(str) - Converte una stringa o una rappresentazione in millisecondi di una stringa in una stringa in formato ISO.
◦ toNumber(obj) - Tenta di convertire una stringa in un numero.
◦ clone() - Esegue una copia superficiale di un oggetto.
◦ deepClone() - Esegue una copia completa di un oggetto.
◦ mix(a,b) - Combina gli oggetti a e b in modo da restituire un nuovo oggetto con le proprietà di entrambi gli oggetti a e b.