Help us understand the problem. What is going on with this article?

#PowerAutomate の"LookUp" 番外編 (compose json dictionary)

前回の投稿

前回 PowerAutomateにおける"LookUp"では、First+Filterと、xpathによるLookUpの方法を紹介しました。

今回はよりトリッキーな感じですが、番外編としてCompose Json Dictionary Methodと呼ばれる方法を紹介します。
この方法はもともとJohn LiuのYoutubeで紹介されていたものです。

手法の概要

非常に大まかにいえば、{customerId, customerName}という列から構成される配列を、転置して1行のデータにしてしまおうというものです。
image.png
この方法にはもともと配列にID列が必要です。(転置により生成される列を一意にするため)
このような1行データ (Object)ができてしまえば、あとは outputs('Compose')?['customerId123'] のようにして各列(プロパティ)にアクセス、目的の値を取り出せます。

似たような方法は @shibatea さんの投稿 (https://qiita.com/shibatea/items/a07ecd00697d26417e70) の配列の選択アクションでも書かれています。

Compose json dictionary method

実際にやってみます。Compose json dictionaryというだけあって、Composeアクションを使います。

その前に、配列から転置後の列:値の関係にした文字列を生成します。
Selectのアクションを追加し、以下の数式を利用します。

concat('"customerId',item()?['customerId'],'":"',item()?['customerName'],'"')

手順が少し面倒なので、動画でどうぞ↓

output3.gif

この手順を行うと、以下のような結果が得られます。
image.png
なんとなく、もう少しという感じです。
あとはこれをカンマで結合して、json関数でオブジェクトに変えれば完成です。
image.png

完成!!!!
これで目的のオブジェクトができました!あとは後続のステップで outputs('Compose_3')?['customerId124'] のようにすれば、望む値が取得できます。
image.png

まとめ

今回の方法は少し難易度高めでしたが(中級くらい)、こういう方法もあるということで、知っておくと高速に処理できたりします。(for eachして中で条件式書いたりしないで済む)
特にJohnのビデオでも説明されているように、2つの配列をJoinする際に非常に高速な処理を実現できます。

ぜひ前回の方法と合わせて試してみてください!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした