PowerAutomateで「選択」(select)アクションを利用していると、稀に、「マップ」欄の値列(右側の列)にオブジェクト型のデータを記述しなくてはならないことがあります。
今回はこの「マップ」欄のオブジェクト型データの扱いに関する不具合のお話。
チームメンバーの方からの相談で気がついた問題です。
Problem
選択アクション「マップ」欄に貼り付けたオブジェクトの値がシリアライズされてしまう。
例えば、以下のような設定が施された選択アクションがあったとする:
これをキー値モードで表示するとこうなる。値列にオブジェクト形式のデータが記述された状態:
ここで、この選択アクションの内容を元に他の「選択」アクションを作成するとする。
問題1: まず、キー値モードで値列の内容をコピー&ペーストしてみる:
すると、パッと見は問題ないように見えるのだが、テキストモードにすると勝手にシリアライズされてしまっていることがわかる:
問題2: 次に、テキストモードでマッピング情報全体をコピー&ペーストしてみる:
再びテキストモードにするとやはりシリアライズされてしまっている:
Solution
基本的に、「クリップボードにコピー」機能を利用すること。
この方法なら勝手にシリアライズされてしまうことはない:
何らかの理由で、「クリップボードにコピー」機能を利用せず、手作業でコピー&ペーストする場合は、以下の2点を守ること:
- テキストモードを利用してコピー&ペーストする(これだけでは問題2が発生する)
- ペースト後、必ず「保存」し、さらに一度フロー詳細画面に移動、その後編集画面に戻る
どういうわけか、これでシリアライズは回避できる。
なお問題1はどうにもならないので、キー値モードでコピー&ペーストをしてはならない。