ThingWorx Flow > ThingWorx Flow SDK > ThingWorx Flow SDK の概要
ThingWorx Flow SDK の概要
ptc-flow-sdk などの ThingWorx Flow コネクタ SDK を各コネクタモジュールにインクルードする必要があります。init コマンドを実行すると、このモジュールがすでにインクルードされている package.json ファイルが生成されます。
ThingWorx Flow サーバーは flow-sdk を使用してコネクタをロードし、そこに含まれている接続、操作、トリガー、検索にアクセスします。
ThingWorx Flow コネクタ SDK ではコネクタ用に次のような API も提供されます。
ログ作成
コネクタ内でのすべてのログ作成には、SDK によって提供されるログ作成 API を使用する必要があります。これによって問題を効果的にデバッグできます。ログ作成 API にアクセスするには、ソースファイルの先頭にある Node js コードに次の行を追加します。
const logger = require('ptc-flow-sdk').getLogger('module-name')
上記のモジュール名を、操作、トリガー、検索などの名前に置き換えます。
このロガーには debugerrorwarninfo の 4 つのメソッドがあります。状況に応じて適切なメソッドを使用します。
ログ文によって文字列と JSON オブジェクトのログを作成できます。
CustomFilters
CustomFilters は JSON、文字列、数値の配列をフィルタするヘルパー API です。CustomFilters は、操作またはトリガーに提供される入力をフィルタ処理するために使用できます。customFilters を使用するには 2 つの手順を実行します。1 つ目の手順では、以下に示すように、入力スキーマで 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
}
}
}
}
}
2 つ目の手順では、CustomFilters API の filter メソッドを使用します。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 はコールバック関数であり、フィルタの結果を引数として呼び出されます。
ヘルパー
ヘルパーオブジェクトには多数のユーティリティ JavaScript メソッドがあります。
toStr(obj) - 任意のオブジェクトを文字列に変換します
toISO(str) - 文字列または文字列のミリ秒表現を ISO 形式の文字列に変換します。
toNumber(obj) - 文字列から数値への変換を試みます。
clone() - オブジェクトの浅いコピーを実行します
deepClone() - オブジェクトの深いコピーを実行します
mix(a,b) - オブジェクト ab を結合し、ab 両方のプロパティを持つ新規オブジェクトを返します。