ThingWorx Flow > SDK de ThingWorx Flow > Resumen del SDK de ThingWorx Flow
Resumen del SDK de ThingWorx Flow
El SDK de conectores de ThingWorx Flow, como ptc-flow-sdk, se debe incluir en todos los módulos de conector. La ejecución del comando init genera un fichero package.json en el que ya se incluye este módulo.
El servidor ThingWorx Flow utiliza flow-sdk para cargar el conector y acceder a las conexiones, acciones, activadores y búsquedas que contiene.
En el SDK de conectores de ThingWorx Flow también se proporcionan las siguientes API para el uso de conectores:
Registro
Todo el registro efectuado en el conector debe realizarse con la API de registro proporcionada por el SDK. Esto ayuda a depurar las incidencias de forma eficaz. Para acceder a la API de registro, añada la siguiente línea al código node.js, en la parte superior del fichero de origen:
const logger = require('ptc-flow-sdk').getLogger('module-name')
Reemplace el nombre de módulo de arriba por el nombre de la acción, el activador, la búsqueda, etc.
El registrador tiene 4 métodos, debug, error, warn e info. Utilice el método adecuado según el motivo.
Las sentencias de registro pueden registrar cadenas y objetos JSON.
CustomFilters
CustomFilters es una API asistente para filtrar matrices de JSON, cadenas o números. CustomFilters se puede utilizar para filtrar las entradas proporcionadas a acciones o activadores. La utilización de customFilters es un proceso de dos pasos. El primer paso es crear una propiedad customFilters en el esquema de entrada, tal como se muestra a continuación. Esto se hace para permitir que un usuario seleccione el operador y los operandos en la 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
}
}
}
}
}
El segundo paso es utilizar el método filter de la API CustomFilters. El fragmento para utilizar CustomFilters es el siguiente:
//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
})
}
En el fragmento anterior, el método run ejecuta un código, posiblemente una llamada a http que devuelve una matriz de datos. input.customFilters son los criterios de filtro que se han seleccionado anteriormente al diseñar el flujo de trabajo. output es la función de llamada que se debe llamar con los resultados del filtrado.
helper
El objeto asistente tiene varios métodos JavaScript de utilidad.
toStr(obj): permite convertir cualquier objeto en una cadena.
toISO(str): permite convertir una cadena o una representación de milisegundos de una cadena en una cadena de formato ISO.
toNumber(obj): permite intentar convertir una cadena en un número.
clone(): permite realizar una copia rasa de un objeto.
deepClone(): permite realizar una copia profunda de un objeto.
mix(a,b): permite combinar los objetos a y b para devolver un nuevo objeto con propiedades de ambos, a y b.