ThingWorx Flow > Пакет SDK для ThingWorx Flow > Обзор пакета SDK для ThingWorx Flow
Обзор пакета SDK для ThingWorx Flow
SDK соединителя ThingWorx Flow, такой как ptc-flow-sdk, должен быть включен в каждый модуль соединителя. При выполнении команды init генерируется файл package.json , который уже содержит этот модуль.
Сервер ThingWorx Flow использует flow-sdk для загрузки соединителя и получения доступа к соединениям, действиям, триггерам и обзорам, которые в нем используются.
Пакет разработки ПО (SDK) для соединителей ThingWorx Flow также предоставляет следующие интерфейсы API для использования в соединителях.
Ведение журнала
Все ведение журнала в соединителе должно выполняться с использованием ведения журнала в интерфейсах API, предоставляемых SDK. Это помогает эффективному выполнению отладки и устранению проблем. Для получения доступа к ведению журналов в интерфейсе API добавьте следующую строку к коду node.js сверху в исходном файле:
const logger = require('ptc-flow-sdk').getLogger('module-name')
Замените имя модуля, указанное вверху, именем действия, триггера или обзора и т. д.
Средство ведения журнала предлагает 4 метода: debug, error, warn и info. Используйте метод, соответствующий каждой ситуации.
Инструкции журнала могут содержать строки и объекты JSON.
CustomFilters
CustomFilters - это интерфейс API помощника для выполнения фильтрации массивов JSON, строк или чисел. Интерфейс CustomFilters можно использовать для фильтрации входных данных, передаваемых в действия или триггеры. Процесс использования customFilters состоит из двух шагов. На первом шаге в схеме ввода должно быть создано свойство customFilters, как показано ниже. Это делается, чтобы предоставить пользователю возможность выбрать оператор и операнды в 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
}
}
}
}
}
На втором шаге должен использоваться метод filter интерфейса API CustomFilters. Ниже приведен фрагмент кода для использования 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
})
}
В приведенном выше фрагменте кода метод run выполняет некоторый код, возможно, http-вызов , который возвращает массив данных. input.customFilters - это критерии фильтрации, выбранные ранее при проектировании рабочего процесса. output - это функция обратного вызова, которая должна быть вызвана с результатами фильтрации.
helper
Объект помощника содержит ряд методов утилиты JavaScript.
toStr(объект) - преобразует любой объект в строку.
toISO(строка) - преобразует строку или представление миллисекунд строки в строку формата ISO.
toNumber(объект) - пытается преобразовать строку в число.
clone() - создает поверхностную копию объекта
deepClone() - создает глубокую копию объекта
mix(a,b) - комбинирует объекты a и b, чтобы возвратить новый объект со свойствами обоих объектов a и b.
Было ли это полезно?