0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Power Automate「JSONで解析」の出力を変数にセットするのに躓いたメモ

Last updated at Posted at 2025-09-04

はじめに

Power Automateで外部ストレージからJSON形式で返ってきたデータを変数にセットする際は、「JSONの解析」を噛ませてフロー内に読ませてやる必要があります。
その「JSONの解析」の出力内容を変数にセットするのに2時間ほど格闘したので、メモとして残します。

問題の状況

Salesforceのレコードを「SOQLクエリを実行する」アクションで取得するとJSONの形式で値が返ってきます。
JSONの返却値は、フロー内で動的値として扱うために「JSON」の解析を噛ませるわけですが、そのJSON内に配列の要素がある場合、PowerAutomateでは「for each」のアクションが自動的に挟まる仕様となってます。便利ですね。
image.png

しかしながらこの状態だと「JSONで定義されてないですよ」のエラーが出てしまいます。

image.png

問題の原因

エラーが言ってる通りなんですけど、今回の場合「[body]?[body]?[records]」なんて要素は見つからねえぜ、ってことですね。
それが、先ほど自動で生成された「for each」が「outputs('JSON_の解析')?['body']?['body']?['records']」と、なぜか['body']が二つ重なった状態で設定されてしまっています。
こいつを修正してやれば万事解決です。

解決方法

「for each」の内容を以下に変更してやります。

変更前:「outputs('JSON_の解析')?['body']?['body']?['records']」
変更後:「outputs('JSON_の解析')?['body']?['records']」
image.png

はい、いけましたね。
image.png
今回はSalesforce側にデータがなかったので、スキップとなって問題ない箇所です。

あとがき

まあ見る限り、普通にバグですね。
今回のように、まだまだPowerAutomateはバグが多くて随時修正されている状態です。
もう数か月したら、もう少し使いやすくなってるだろうと期待したいですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?