Power PlatformでDX推進を目指すプロぺリアDX支援のメインビジュアル プロぺリアDX支援

即使える!Power Platform技術紹介

「なるべく短時間で」「効果の高い本質的な知識を」「煩わしい広告なしに」獲得!

Power Automateで動的コンテンツにない値を自力で取得する方法

本記事でわかること

基本構文:body('アクション名')?['出力名']?['ネスト']

アクションで値が取得できているはずなのに、動的なコンテンツに出てこなくて利用できない。
そんなときは、自力で式を書くことで、ほとんどの値は取得できるようになります!
実行履歴(アクションの出力JSON)を見て、欲しい値がどのキーに入っているかを確認し、外側から順に掘っていけばOKです。
基本形は次のとおり。

body('アクション名')?['出力の名前1']?['出力の名前2']

解説:body('アクション名') がそのアクションの本文を指し、?['キー'] でそのキーを指定ながら階層を下がっていきます。

Point! 実行履歴の JSON を「辞書」だと思って、外側 → 内側 と順にキーを指定すれば、ほしい値は大抵取れます。

実行履歴のJSON(未加工の出力の表示)の見方・考え方

実行履歴で出力を開くと JSON が表示されます。ごちゃっとしていて少し怖いですが、基本は下記だけ押さえれば OK:

  • { } はオブジェクト(キー: 値 の集合。複数列がある「行」に近い。)
  • [ ] は配列(オブジェクトの集合のようなもの。「テーブル」に近い。)
  • キー名(列名のようなもの)をたどって値に到達するイメージ
body: {
  "user": {
    "profile": { "name": "Taro", "email": "taro@example.com" },
    "roles": [{"Value" : "admin"},{"Value" : "editor"},{"Value" : "viewer"}]
  }
}

上の例だと name を取りたい場合は:

body('アクション名')?['user']?['profile']?['name']

JSONオブジェクトの直感的な構成イメージ↓

JSONの構成の画像

テーブルの中に行があって、行の中に列があって...を繰り返すイメージです。

式の作り方:外枠から順に指定していく(手順)

  1. 実行履歴で対象のアクションを選択
  2. 左のペインから「未加工の出力を表示する>」を選択
  3. 右のペインから、欲しい値があるキーの位置を探す
  4. 外側のキーから順に ?['キー'] をつなげる。※配列なら [index] で指定したり、first()関数などで更に絞り込み。
  5. 編集画面に戻り、式エディタにコピーして動作確認 → 実行履歴で値を確認して微調整。
JSONの取得方法の画像

配列から取り出す例

body('アクション名')?['items']?[5]?['title']  // items 配列の6番目の要素の title ※番号は0始まり
  または
first(body('アクション名')?['items'])?['title']  // items 配列の1番最初の要素の title

? の有無による違いと短縮表記

?['キー'] を使うと「キーが存在しない場合でもエラーにならず null を返す」安全なアクセスになります。
実運用では、外部 API や任意のアクションでキーが欠ける可能性があるので 安全側として ? を付けることを推奨します。

/* 安全アクセス */
body('アクション名')?['data']?['user']?['email']

/* 非安全アクセス(キーが無いと評価エラー) */
body('アクション名')['data']['user']['email']

また、ネストが深い場合はスラッシュで短く書けることがあります(エディタのサポート状況による)。

body('アクション名')?['data/user/email']
Point! 実行履歴の JSON を見ながら ?['キー'] を一段ずつ追加していけば、式はほぼ確実に組めます。まずは安全アクセスで試してみてください。

実務で効く小技(Tips)

  • Null チェック:coalesce() を使えば null をデフォルト値に置き換え可能。
    coalesce(body('アクション名')?['user']?['name'], '名前不明')
  • 数値・日付の変換:int(), float(), toString(), formatDateTime() 等で型整形。
  • 複雑な JSON は一度ペーストして整形:出力 JSON を外部の JSON ビューアに貼ってキーを探すと早いです。
  • デバッグのコツ:式を一気に書かず、外側 → 中 → 内 の順で小さく動かして確認する(段階的デバッグ)。
Point! coalesce() と安全アクセス(?)を組み合わせると堅牢な式になります。まずは小さく組んで、実行履歴で確認→拡張がベスト。

まとめ

Power Automate の式は JSON を「外側から掘る」思考で組み立てれば直感的に書けます。
実行履歴を参照してキー名を特定し、body('アクション名')?['...'] を段階的に拡張していきましょう。エラーを怖れずに実行→確認を繰り返すのが上達の近道です。

⚙️ Power Automate の式作成やデバッグが必要なら
相談やハンズオンで実務に即したサポートを行います。まずは気軽にご相談ください。

あなたの仕事にも、変化を。

無料相談から、DXの第一歩を踏み出しませんか?

お問い合わせ ブログ一覧