- はじめに
- 基本情報
- BPMN を使用したプロセス モデリング
- ケース管理を使用したプロセス モデリング
- フローを使用したプロセス モデリング
- プロセスの実装
- プロセスの操作
- プロセスの監視
- プロセスの最適化
- 参考情報
スクリプト ノードのリファレンス: 構成、環境、JavaScript の例
機能
JavaScript コードを実行し、戻り値を下流のノードに渡します。
構成のリファレンス
| フィールド | Required | 既定 (Default) | 説明 |
|---|---|---|---|
| スクリプト | はい | なし | 実行する JavaScript コード。returnステートメントを含む必要があります。戻り値がこのノードの出力になります。 |
JavaScript 環境
スクリプトは独立したランタイムで実行され、以下にアクセスできます。
$vars— フローの変数スコープです。$vars.<nodeName>.<property>経由でアップストリーム ノードの出力にアクセスします。metadata— フロー実行のメタデータ- 標準の JavaScript 組み込み —
JSON、Math、Date、Array、Object、String、Number、RegExp、Error、Promise、URL、URLSearchParams、タイマー関数など。
セキュリティの観点から、ランタイムはネットワーク API (fetch、 、 XMLHttpRequest、 WebSocket)、動的コード実行 (eval、 Function)、およびストレージ API (indexedDB、 caches) をブロックします。外部 API を呼び出すには、代わりに HTTP 要求ノードを使用します。
スクリプトは高速なメモリ内ロジックを目的としており、スクリプトの速度を保ち、実行時の制限を超えたりタイムアウトしたりする可能性のある非常に大きなペイロードの処理を避けてください。
アップストリーム ノードの出力にアクセスする
$vars.<nodeName>.<property> を使用します。<nodeName> はノードの変数名 ([プロパティ] パネルに表示) です。
// Access HTTP Request node response
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.statusCode;
// Access a flow variable
const count = $vars.myVariable;
// Access HTTP Request node response
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.statusCode;
// Access a flow variable
const count = $vars.myVariable;
戻り値
スクリプトは値を返す必要があります。戻り値はノードの出力になり、下流で としてアクセスできます$vars.<nodeName>.output
return {
message: "Processed",
count: items.length
};
return {
message: "Processed",
count: items.length
};
入力と出力
入力
スクリプト ノードは、 を介して任意の上流の変数にアクセスでき $vars。型指定された入力スキーマはありません。 $vars 内のものはすべて使用できます。
出力
成功時 — $vars.<nodeName>.output:
スクリプトの戻り値です。形状はスクリプトが返す内容によって異なります。
失敗時 (エラー ハンドルが接続されている場合) — $vars.<nodeName>.error:
{
"code": "string",
"message": "string",
"detail": "string",
"category": "string",
"status": 0
}
{
"code": "string",
"message": "string",
"detail": "string",
"category": "string",
"status": 0
}
AI でスクリプトを生成する
スクリプト エディターの上にある 魔法の杖 のアイコンは、必要なものの平易な言葉での説明を受け入れ、JavaScript を生成します。これは、正確な $vars 構文を検索せずにアップストリーム ノードの出力にアクセスしたり、クイック変換を記述したりする場合に便利です。
例
例 1 — プロセス変数を設定する
// Set a variable that downstream nodes can reference
return {
orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity,
currency: "USD"
};
// Set a variable that downstream nodes can reference
return {
orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity,
currency: "USD"
};
下流のノードは、 $vars.script1.output.orderTotal および $vars.script1.output.currencyとして値にアクセスします。
例 2 — HTTP 応答を処理する
const data = $vars.httpRequest1.output.body;
return {
title: data.title,
userId: data.userId
};
const data = $vars.httpRequest1.output.body;
return {
title: data.title,
userId: data.userId
};
例 3 — 条件ロジック
const status = $vars.httpRequest1.output.statusCode;
if (status === 200) {
return { success: true, data: $vars.httpRequest1.output.body };
} else {
return { success: false, statusCode: status };
}
const status = $vars.httpRequest1.output.statusCode;
if (status === 200) {
return { success: true, data: $vars.httpRequest1.output.body };
} else {
return { success: false, statusCode: status };
}
例 4 — 配列を変換する
const items = $vars.fetchItems1.output.body;
return {
count: items.length,
names: items.map(item => item.name)
};
const items = $vars.fetchItems1.output.body;
return {
count: items.length,
names: items.map(item => item.name)
};
これを使用すべき状況とデータ変換
| スクリプトは次の場合に使用します。 | データ変換は、次の場合に使用します。 |
|---|---|
| 完全な JavaScript ロジック (ループ、条件、文字列操作) が必要です。 | 単純なフィールド マッピングまたはコード不要の変換が必要な場合 |
| アップストリームノードの出力から何かを計算したい | コードを書かずに視覚的なマッパーが必要な場合 |
| 変換が複雑であるか、ステートフルである | 変換は単純な再形成です |
関連ページ
- 変数とデータ フロー —
$vars、式の構文、変数のスコープ設定 - HTTP 要求ノード — 一般的なアップストリーム データ ソース
- 意思決定ノード — スクリプト出力に基づく分岐