Dataverse の選択肢型について徹底的に解説する!! #Power Platform リレー
2022-02-04
azblob://2022/11/11/eyecatch/2022-02-03-dataverse-choise-000.jpeg

前回の Power Platform リレーはあおいくんの「Power AutomateでDataverseに自動採番をする方法」でした!

結果的には Dataverse 側の設定を直す方が早かったようですが、インクリメントの仕組みはいろいろ応用が利きそうで便利そうだと思いました。

さて今回は、Power Platform を使いこなすうえで避けて通れない Dataverse の選択肢型について解説いたします。

選択肢型とは

Dataverse のデータ型の一つで、予め用意した選択肢の中からどれかを選ばせることができます。

選択肢の準備も非常に簡単で、迷うことなく選択肢を追加することが可能だと思います。

選択肢を Power Apps キャンバスアプリで利用するとこんな感じです。

とっても便利!

選択肢型の難しいところ

Power Apps キャンバスアプリで作成しましたこちらの画面をご覧ください。

選択肢を選んで追加したらテーブルに表示されるという、よくあるユースケースだと思います。

ここで、選択肢が「選択肢A」のものだけテーブルに表示したいと思います。

素朴にテーブルのItemsにフィルターかければいいのかな?とやってみると……

エラーが発生します。

型に互換性がないらしいです。

なので、「選択肢A」でフィルターしたい場合には以下のように表現します。

こんなの初見でわかるわけなし……

何故こんなことになるの?

Dataverseの選択肢型は、実際に目にしている選択肢の文字列だけでなくIDも保持しているようです。

このIDは実は Dataverse の画面から確認が可能です。

IDの初期値は「908,800,000」から始まるオートナンバーですが、新規追加時に限り編集することができます。

ここで、先ほど怒られたパターンを振り返ってみましょう。

こんな感じでしょうか。

なるほど、確かにダメそう。

それではうまくいったパターンはどうかというと…

こんな感じです。

こっちの方が大丈夫そうな気配を感じますね。

(エンジニア的にはよくできた「=」だなと感心するところかもしれません)

このようにDataverse の選択肢型は内部的にはIDと選択肢名の二つのパラメータをもっています。

この二つは公式には「値」と「名前」と呼ばれているようです。

それらがよしなに使いわけられていることを念頭に、その時々に応じた選択をするのが選択肢型を攻略する鍵になりそうです。

選択肢型の使い方

ここからは具体的な使い方についてご紹介します。

Power Apps キャンバスアプリ

選択肢を選ばせたい場合

Choices(<選択肢の表示名>)

例:

選択肢型そのものを使いたい場合

[@< 選択肢の表示名 >].<使いたい選択肢の名前>

例1:

例2:

Power Automate (Dataverseコネクタ)

選択肢型の比較をしたい場合

「値」を比較する

例:

選択肢型の中身を見たい場合

item()?[‘<選択肢型の内部の名前>@OData.Community.Display.V1.FormattedValue’]

例:

「なんだこれ呪文か?こんなの覚えらんねえよ!」という方、ご安心ください。

「行を一覧にする」の「未加工の出力を表示」を押すと表示される大量のデータの中に正解が紛れています。

なので「item関数を使うぞ」ということだけ覚えておけば大丈夫です!

まとめ

Dataverse の選択肢型について仕組みと使い方をそれぞれまとめてみました。

半端な気持ちで使うと痛い目を見る選択肢型ですが、使いこなせれば便利なことは間違いありません!

本記事が少しでも選択肢型に困っている人の手助けになれば幸いです。