SlideShare a Scribd company logo
1 of 21
Node-red+JSONataで
function地獄からの卒業
きみも JSONataが つかえるフレンズ になろうよ!
はらだ かずひろ
自己紹介
• 原田一弘(はらだ かずひろ)
• 株式会社ウフルに2016年新卒入社
• 社会学部出身(ジブリ映画で卒論かきました)
• 社会人1年目は、マイコン書いたり、はんだづけした
り、LoRaWAN触らせていただいたり、BLEとにら
めっこしたり。。
• 曰くNative Node-redderらしい
• 最近はNintendo Switchとアイドルにお熱
• そろそろビジネス用のtwitter垢をつくります。。
簡単なfunctionを書きがち
JSONata?
• Version 0.16 released 11 January 2017
• ChangeノードとSwitchノードに追加
• Functionを使わなくても簡単なmsg整形が可能になった
結構下の方にあった
dataだけを配列として
取り出したい。。。
なにこれ すごーい
こんなダミーデータを用意。
JSONオブジェクトからの様々な
参照方法を紹介(*’ω’*)
index指定で持ってこれる!
msg.payload.Address.Street & ‘ , ’ & msg.payload.Address.City
じゃなくていい!
*指定も可能!
他階層のtype
(;つД⊂)ゴシゴシ
JSONata Functions について
• 選ぶ!insertを押す!引数を設定でおしまい!
• functionsのリストから選べるものが実装済み。
こんなデータからkeyだけ抜き出したい。。
change nodeで使えそうなfunctions
• $keys(object)
オブジェクトのkeyを抜き出し
• $spread(object)
オブジェクトをkeyとvalueを一つの要素にした配列を生成
• $lookup(object,key)
• オブジェクトの中からkeyを検索しvalueを返す
• $append(array,array)
• ふたつの配列を結合
• $number(arg),$string(arg)
• 数値変換、文字列変換
“test”:
{
“abc” : 123,
“def” : 456
}
[abc,def]
[{“abc”:123},{“def”:456}]
switch nodeで使えそうなfunctions
• $exist(arg)
• 引数が存在するかをt/fで返す。
• $Boolean(arg)
• いろいろt/f判定ができる→
• $count(array)
• 配列の要素数を返す
• $max(array), $min(array)…
• いろいろ数字関係
高度なfunctions
• 右記二つは説明がないがnode-redで実装済み
• 今回mapは使えることを確認した
諸注意
• 公式のJSONataリファレンスのものがすべて使えるわけではな
い。
• $trimなどnode-redで実装されていないfunctionもある
• functionsの選択リストにあるものは使える
• Operatorsも非対応なものがある
• ~>, ..など高度なもの
• flowやglobalの値は参照できない(?)
• 直打ちだと効かなかった
• 一度msg値にsetすればよい
参考にしたとこ
• 公式サイト:http://jsonata.org/
• github https://github.com/jsonata-js/jsonata
• npm https://www.npmjs.com/package/jsonata
• JSONata Tech Talk
• https://www.youtube.com/watch?v=c6VHGlAJEaU
JSONataを適度に使いこなして
作業効率あげれるフレンズになろう!
special thanks いらすとや

More Related Content

What's hot

Node RED で実現する製造業の DX
Node RED で実現する製造業の DXNode RED で実現する製造業の DX
Node RED で実現する製造業の DX雅治 新澤
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうRyuji Tsutsui
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
Node-RED TIPS:functionノード間で関数を共有する方法
Node-RED TIPS:functionノード間で関数を共有する方法Node-RED TIPS:functionノード間で関数を共有する方法
Node-RED TIPS:functionノード間で関数を共有する方法Kazuki Saito
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NETterurou
 
プロのためのNode-RED再入門
プロのためのNode-RED再入門プロのためのNode-RED再入門
プロのためのNode-RED再入門Makoto SAKAI
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!Tetsutaro Watanabe
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説Livesense Inc.
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築gree_tech
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門masayoshi takahashi
 
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤株式会社MonotaRO Tech Team
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Etsuji Nakai
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割Recruit Lifestyle Co., Ltd.
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容sairoutine
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術dena_study
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...NTT DATA Technology & Innovation
 
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまでShuichi Tsutsumi
 

What's hot (20)

Node RED で実現する製造業の DX
Node RED で実現する製造業の DXNode RED で実現する製造業の DX
Node RED で実現する製造業の DX
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
Node-RED TIPS:functionノード間で関数を共有する方法
Node-RED TIPS:functionノード間で関数を共有する方法Node-RED TIPS:functionノード間で関数を共有する方法
Node-RED TIPS:functionノード間で関数を共有する方法
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
プロのためのNode-RED再入門
プロのためのNode-RED再入門プロのためのNode-RED再入門
プロのためのNode-RED再入門
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
 

Recently uploaded

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Recently uploaded (10)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

Node-red+JSONataでfunction地獄からの卒業

Editor's Notes

  1. 自己紹介 昨年からnode-redや弊社のenebularを使ってフローを作る業務を行っていますが、
  2. 一部抜粋ですが、こんな感じのフローを書いています。 functionの内部で複雑な処理をおこなっておりますが、一部 こんな感じでstringをオブジェクトにする処理や、配列からkeyのみ取り出す処理など、msgの改変のみをしている箇所もあったりします。 これを何度も書いたりすることが多いのですが、今回お話しさせていただくもので、この辺の作業効率がグンと上がります。 それが
  3. JSONataです。 今年に入って追加されたニクいやつで、 expressionとしてchange node とswitch nodeのリストの中にあります。
  4. そもそもJSONataとは、npmとして提供されていて 今年1月11日に行われたアップデートでNoder-red上に実装されました。 先ほども申しましたがswitch change node expressionとして追加されています。 リリースノートのJSONata項を意訳すると、これまでFunction nodeでないとできなかった簡単なmsg整形をすることが可能になりました。 リリースノートの例として挙げられてるのは絶対温度と相対温度、つまりケルビンから℃の変換をchange nodeのみで変換しているメソッドです。 ちなみにこのJSONataの項ですがかなり下の方にありました。
  5. 最近IoT関連のフローをつくることが多いのですが、 数あるセンサから、timestamp,id,dataのような項目が送られてきて 一定周期で平均する。なんてことをよくやります。 今まではfunction nodeでfor in構文を回してdataだけの配列を作って処理したりしていました が、しかし jsonataを使うと msg.payload.dataでdataのみの配列をつくることができます。
  6. 他にもこんな書き方ができますよというのをいくつか消化します。 ということでこのようなダミーデータを用意しました。 人の名前と住所や電話番号などのデータですね。
  7. オブジェクトの中の配列の最後の要素をとってきたい。 そんなときも、change nodeでjsonataを使い、index指定することで、取ってくることができます。
  8. 住所のデータが町と通りで別れていて、とってくるときも Addressの下にStreetとCityがあるのですが、 このように書けば、きちんととって来れます。 このように、それぞれ長々と書かなくても平気です
  9. 最後にこのtypeのvalueを抜き出します。 pauyloadの下にあるphone、Emailの下にそれぞれtypeが定義されているのですが msg.payload.*.typeと*指定することで、配列でとってくることができます。 個人的にこれすごい感動しました。
  10. こんな感じで皆さんもJSONataを使って、作業効率をあげてみませんか? Expressionを開くと、このようにeditorが開くので、長いものを打つときはこちらから入力してください。 ん? なんかしたの方に
  11. functionsがあります! プルダウン・・・すると
  12. 結構種類ある!!!
  13. ってことで、Jsonata functionsについて残り時間説明いたします。 プルダウンから、functionを選んで、insertすれば引数指定されますので、書き換えておしまいです。 大概のものについては説明が書いてありますが、Jsonataの公式のドキュメントに例も載っています。 key functionでは、オブジェクトの中からkeyのみを抜き出し配列にするfunctionです。 switchnodeやchangenodeで使えそうなfunctionをいくつか紹介していきます。
  14. まずはchange nodeです ・先ほどのkeyはオブジェクトからkeyのみの配列を生成します。 スプレッドはオブジェクトをkeyとvalueを1つの要素にした配列を生成します。 lookupも使えます。オブジェクトからkeyを検索して、中身を返します。 あとは配列を結合するappendやvalue変換のnumber,stringが使用頻度高そうだなと思ったので、詳しくは公式リファレンスからご覧ください。
  15. そしてswitch node で使えそうなのは 引数が存在するかをt/fで返すexist、 ルールにのっとってt/f判定ができるBoolean 配列の要素数を返すcountや、マックス、ミニマム、サムなどの数字関係は閾値判定をするときに気軽に使うことができます。
  16. 最後に高度なfunctionとして、mapとreduceが用意されていて、 こちら他の言語と同じように使えると思いますが、今回mapのみ動作を確認しました。 mapはfunctionとarrayを引数にします。 自分でfunctionを定義して、配列の要素ひとつひとつにそのfunctionを適応します。 私がやってみたのは、JSONataでtripleという3倍するfunctionを定義して、 1~10の数字が入った配列に3をかけてみました。 これがchangenodeで2行ほど書くだけで実装できます。
  17. ちょっと、気づいた注意点です。 公式のリファレンスの中にtrimなどのfunctionが定義されていますが、noderedの選択リストで選べるもの以外は実装されていませんでした。 Operatorsといって、特殊な書き方をするものも一部使えませんでした。 そして、Jsonataの構文上ではflowやglobalの値は参照できませんでした。一度msg値にsetしてから使うようにすれば解決するかと思います。