4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerAutomateでオブジェクト配列のプロパティの値をjoinする

Last updated at Posted at 2021-07-12

概要

Power Automateで以下のようなオブジェクト配列があったとき、指定のプロパティの値をカンマ区切りなどで結合する方法です(join)

例えば以下のようなもの。
SharePointのユーザー型のフィールドで複数値可としていると、以下のような値が格納されています。
フィールドの値の中身を確認するには「作成」アクションを使って確認します。
※参考

[
    {
      "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
      "Claims": "i:0#.f|membership|user1@tenant.onmicrosoft.com",
      "DisplayName": "Tomioka",
      "Email": "user1@tenant.onmicrosoft.com",
      "以下":"略"
    },
    {
      "@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
      "Claims": "i:0#.f|membership|user2@tenant.onmicrosoft.com",
      "DisplayName": "Takanashi",
      "Email": "user2@tenant.onmicrosoft.com",
      "以下":"略"
    }
]

そこからEmailプロパティの値であるメールアドレスを抜き出し、
以下のように;区切りで文字列を結合します。

user1@tenant.onmicrosoft.com;user2@tenant.onmicrosoft.com

使いどころの例です。
承認アクション(Approvals)で、承認者が複数ある場合はメールアドレスを;区切りで入力する必要があります。
担当者には先ほどの;区切りのメールアドレスが入ります。
image.png

方法1 データ操作を使った方法

以下のような2アクションを使います。
image.png

①選択アクション

まず選択アクションで「開始」部分にオブジェクト配列が入ったフィールドを設定。
今回の場合はSharePointで用意したユーザー列です。
image.png

次に、以下アイコンの「マップをテキストモードに切り替え」をクリックします。
image.png

「マップ」にプロパティを設定します。
今回の場合はSharePointのユーザー列 Emailです。
image.png

これで以下のような文字列の配列になります。
オブジェクト配列から任意のプロパティの値をセレクトして新しい配列/又はオブジェクト配列にするアクションですね。

[
    "user1@tenant.onmicrosoft.com",
    "user2@tenant.onmicrosoft.com"
]

②結合アクション
あとは配列をカンマ区切りで結合するだけです。

結合アクションで「結合する配列」に先ほどの出力を。
「次を使用して結合」には区切り文字、今回の場合;を入力します。
表示は「結合」ですがアクション一覧画面では「参加」となっているこいつです。
image.png
※join関数でも可

方法2 変数とApply to eachを使った方法

そのまんまです。
まず文字列変数を初期化。
次に文字列変数への追加で、取得したいプロパティを設定。今回の場合はSharePointユーザー列のEmailです。
image.png

Emailは上記のJSONの通り、配列内の要素であるため参照を設定すると勝手にApply to eachが付きます。
配列の要素を一要素ずつループで参照し、メールアドレス + ; を変数に追加していく流れです。
方法1よりは直感的かもしれません。

デメリットとしては「変数の初期化」アクションがスコープの中に入らないこと、
Apply to eachが若干遅いことでしょうか・・

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?