logologo
スタート
マニュアル
開発
プラグイン
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
スタート
マニュアル
開発
プラグイン
API
logologo
ワークフロー
概要
クイックスタート

トリガー

概要
データテーブルイベント
定期タスク
操作前イベント
操作後イベント
カスタムアクションイベント
承認
Webhook

ノード

概要

AI

LLM

フロー制御

条件
複数条件分岐
ループ
変数
並列分岐
ワークフロー呼び出し
フロー出力
JSON変数マッピング
遅延
終了

計算

計算
日付計算
JSON計算

データ操作

データ追加
データ更新
データ検索
データ削除
SQL操作

手動処理

手動処理
承認
CC

拡張タイプ

HTTPリクエスト
JavaScriptスクリプト
通知
メール送信
レスポンス
レスポンスメッセージ
変数
実行履歴
バージョン管理
詳細設定

拡張機能開発

概要
拡張トリガータイプ
拡張ノードタイプ
APIリファレンス
Previous Page日付計算
Next Pageデータ追加
TIP

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

#JSON 計算

This feature is provided by the plugin «ワークフロー: JSON計算»

#はじめに

このノードは、さまざまなJSON計算エンジンを活用し、上流ノードから生成される複雑なJSONデータを計算したり、構造を変換したりして、後続のノードで利用しやすい形に整えます。例えば、SQL操作やHTTPリクエストノードの結果を、このノードで必要な値や変数形式に変換し、次のノードでスムーズに利用できるようにします。

#ノードの作成

ワークフロー設定画面で、フロー内のプラス(「+」)ボタンをクリックすると、「JSON 計算」ノードを追加できます。

Create Node

ヒント

通常、「JSON 計算」ノードは、他のデータノードの下に作成して解析を行うのが一般的です。

#ノードの設定

#解析エンジン

JSON 計算ノードは、さまざまな解析エンジンを通じて異なる構文をサポートしています。ご自身の好みや各エンジンの特徴に基づいて、最適なエンジンを選択できます。現在、以下の3種類の解析エンジンに対応しています。

  • JMESPath
  • JSONPath Plus
  • JSONata

Engine Selection

#データソース

データソースは、上流ノードの結果、またはワークフローのコンテキスト内のデータオブジェクトのいずれかになります。通常、SQLノードやHTTPリクエストノードの結果のように、組み込みの構造を持たないデータオブジェクトが該当します。

Data Source

ヒント

通常、コレクション関連ノードのデータオブジェクトは、コレクション設定情報によってすでに構造化されているため、JSON 計算ノードで解析する必要はほとんどありません。

#解析式

解析要件と選択した解析エンジンに基づいて、カスタムの解析式を定義します。

Parsing Expression

ヒント

エンジンごとに異なる解析構文が提供されます。詳細については、リンク先のドキュメントを参照してください。

v1.0.0-alpha.15 以降のバージョンでは、式で変数を使用できるようになりました。変数は、実際のエンジンが実行される前に事前解析され、文字列テンプレートのルールに従って具体的な文字列値に置き換えられます。その後、式の他の静的文字列と結合されて最終的な式が形成されます。この機能は、例えばJSONコンテンツの一部を動的なキーで解析する必要がある場合など、式を動的に構築したいときに非常に便利です。

#プロパティマッピング

計算結果がオブジェクト(またはオブジェクトの配列)である場合、プロパティマッピングを利用して、必要なプロパティを子変数としてマッピングし、後続のノードで利用できるようにすることができます。

Property Mapping

ヒント

オブジェクト(またはオブジェクトの配列)の結果に対してプロパティマッピングを行わない場合、オブジェクト全体(またはオブジェクトの配列全体)がノードの結果に単一の変数として保存されます。そのため、オブジェクトのプロパティ値を直接変数として利用することはできません。

#例

解析対象のデータが、先行するSQLノードでクエリされた注文データのセットであると仮定します。

[
  {
    "id": 1,
    "products": [
      {
        "id": 1,
        "title": "Product 1",
        "price": 100,
        "quantity": 1
      },
      {
        "id": 2,
        "title": "Product 2",
        "price": 120,
        "quantity": 2
      }
    ]
  },
  {
    "id": 2,
    "products": [
      {
        "id": 3,
        "title": "Product 3",
        "price": 130,
        "quantity": 1
      },
      {
        "id": 4,
        "title": "Product 4",
        "price": 140,
        "quantity": 2
      }
    ]
  }
]

データ内の2つの注文それぞれの合計金額を解析・計算し、対応する注文IDと組み合わせてオブジェクトとして構成し、注文の合計金額を更新したい場合は、以下のように設定します。

Example - Parse SQL Configuration

  1. JSONata 解析エンジンを選択します。
  2. SQL ノードの結果をデータソースとして選択します。
  3. JSONata 式 $[0].{"id": id, "total": products.(price * quantity)} を使用して解析します。
  4. プロパティマッピングを選択し、id と total を子変数としてマッピングします。

最終的な解析結果は以下のようになります。

[
  {
    "id": 1,
    "total": 340
  },
  {
    "id": 2,
    "total": 410
  }
]

その後、結果として得られた注文配列をループ処理し、各注文の合計金額を更新します。

Update the total price of the corresponding order