MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

Selectアクションで配列を変換する

今回は、このあと書く投稿のための準備的なものです。

Adaptive Cardsや、LINEのFlex message (カルーセル表示) を表示するときのように、繰り返しの構造を、Power Autoamteで作成する場合の方法です。

例えば、画像では、Plannerのタスク一覧をもとに、それぞれAdaptive Cardsに必要な書式、Flex messageに必要な書式のオブジェクト配列を作成しています。

f:id:mofumofu_dance:20200514234425p:plain

何かの配列データから、別の書式に変換するときに役立つのが選択 (Select)アクションです。

f:id:mofumofu_dance:20200514234658p:plain

簡単なSelectアクションの使い方

選択アクションはとても優れもので、最も率直に思いつくのが、列 (プロパティ) の追加・削除です。

f:id:mofumofu_dance:20200514235333p:plain

これだけでもずいぶんうれしいアクションです。方法はいたって簡単で、SelectアクションのFromに何らか、複雑な構造の配列を入れて、Mapでほしいプロパティを指定してあげればいいだけです。

f:id:mofumofu_dance:20200514235527p:plain

もう少し使い込む

Adaptive Cardsの例では、このAdaptive Cardsを表示するために以下のようなオブジェクトが配列に含まれています。 (多少省略しています)

{
    "type": "Container",
    "items": [
        {
            "type": "TextBlock",
            "text": "TaskTitle", //ここにタスクのタイトル
            "wrap": true
        },
        {
            "facts": [
                {
                    "title": "DueDate",
                    "value": "2020-05-20" //ここにタスクの期限日
                },
                {
                    "title": "Status",
                    "value": "Not Started" //ここにタスクのステータス
                }
            ],
            "type": "FactSet",
            "separator": true
        }
    ],
    "style": "accent"
}

このような、少し複雑なオブジェクトの繰り返し (配列) から、最初の図のようなAdaptive Cardsを作っています。

この場合にもSelectを使います。図解は以下。

  1. まずはSelectアクションのMap部分をテキストモードに切り替えます
  2. 必要な構造 (たとえば上のJSON) をコピペします
  3. あとはPlannerタスクに基づいて表示したい箇所を、動的コンテンツで置き換えます

f:id:mofumofu_dance:20200515001909p:plain

実行結果を見てみると、想定通りのマッピングで配列が生成されていることが分かります。

f:id:mofumofu_dance:20200515002702p:plain

おわり

選択アクションは万能で、ある配列からまったく構造の違う配列を作成するときにも活躍します。 繰り返し部分の構造が分かっているなら、テキストモードにして、まずはコピペしてみましょう。 あとはもう少し凝ったことをするなら、動的なコンテンツの挿入部分で、数式を使うというのも考えられます。

何よりも、選択アクションは、Apply to eachのようなループ処理を伴わないのでとても高速です。(トライ&エラーしやすい)

ぜひ選択アクションと仲良くなってみてください!