こんにちは。日本マイクロソフトの向井です。
こちらの記事では、Power Automate でDataverse の選択肢(オプションセット)のラベルを取得する方法をご紹介します。
Power Automate で選択肢型のデータを取得して表示させたいとき、内部の値(数字)は簡単に取得できますが、ラベル(テキスト)の部分を取得して表示するのは意外と難しかったので、こちらに方法をまとめておきます。
1. 下準備
今回のフローはDataverseのレコードが作成・更新・削除された時をトリガーにしています。
トリガーに使う申請というテーブルの中に承認ステータスという選択肢型の列があります。
表示させたい選択肢のラベルが格納されている場所を探すために、一度フローを実行します。
フローには必ず1つ以上のアクションが必要なので、今回はTeamsコネクターの「チャットまたはチャネルでメッセージを投稿する」を使用しました。※アクションは何でも大丈夫です。
このフローを保存し、実行します。
フローの実行履歴を確認します。
先ほど実行したものの詳細を開きます。
トリガーの出力のところの、未加工出力の表示をクリックします。
承認ステータスのラベルが格納されている場所を確認し、メモ帳などにコピーしておきます。
コピーしたら右上の編集ボタンからフローの編集画面に戻ります。
ちなみに今回作成したフローのように、動的なコンテンツから選択肢型の列を選択すると、画像のように内部の値が取得されます。
2. 「作成」アクションを使用し、選択肢のラベルを取得する
トリガーの後に新しいアクションを追加します。
組み込み>データ操作>作成 を選択します。
一度、入力欄に、使用したい選択肢列を動的コンテンツから選択し、入力します。
この動的コンテンツをコピーします。
張り付けたものはこのようなコードになっていると思います。
@{triggerOutputs()?['body/cr30e_status']}
ここから先頭の @{ と最後の } を消します。
そうすると、こんな感じになっていると思います。
triggerOutputs()?['body/cr30e_status']
['body/○○']
となっているところの○○を 1. でメモ帳にコピーしておいた値に変更します。
すると、こんな感じになると思います。
triggerOutputs()?['body/_cr30e_status_label']
この状態でOKを押します。
すると、これ以降のアクションで動的コンテンツから「出力」というものが選べるようになっています。
この「出力」に選択肢のラベル(テキスト部分)が入っています。
3. テスト
最初に作成したフローのTeamsアクションのMessageを出力に変更し、テストしてみます。
保存し、フローを実行します。