本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Dataverse の選択肢型について徹底的に解説する!! #Power Platform リレー」を再編集したものです。
さて今回は、Power Platformを使いこなすうえで避けて通れないDataverseの選択肢型について解説いたします。
選択肢型とは
Dataverse のデータ型のひとつで、予め用意した選択肢の中からどれかを選ばせることができます。
選択肢の準備も非常に簡単で、迷うことなく選択肢を追加することが可能だと思います。
選択肢をPower Appsキャンバスアプリで利用するとこんな感じです。
とっても便利!
選択肢型の難しいところ
Power Appsキャンバスアプリで作成しましたこちらの画面をご覧ください。
選択肢を選んで追加したらテーブルに表示されるという、よくあるユースケースだと思います。
ここで、選択肢が「選択肢A」のものだけテーブルに表示したいと思います。
素朴にテーブルのItemsにフィルターかければいいのかな? とやってみると……
エラーが発生します。
型に互換性がないらしいです。
なので、「選択肢A」でフィルターしたい場合には以下のように表現します。
こんなの初見でわかるわけなし……
何故こんなことになるの?
Dataverseの選択肢型は、実際に目にしている選択肢の文字列だけでなくIDも保持しているようです。
このIDは実はDataverseの画面から確認が可能です。
IDの初期値は「908,800,000」から始まるオートナンバーですが、新規追加時に限り編集することができます。
ここで、先ほど怒られたパターンを振り返ってみましょう。
こんな感じでしょうか。
なるほど、確かにダメそう。
それではうまくいったパターンはどうかというと…
こんな感じです。
こっちの方が大丈夫そうな気配を感じますね。
(エンジニア的にはよくできた「=」だなと感心するところかもしれません)
このようにDataverse の選択肢型は内部的にはIDと選択肢名の2つのパラメーターをもっています。
この2つは公式には「値」と「名前」と呼ばれているようです。
それらがよしなに使いわけられていることを念頭に、その時々に応じた選択をするのが選択肢型を攻略する鍵になりそうです。
選択肢型の使い方
ここからは具体的な使い方についてご紹介します。
Power Appsキャンバスアプリ
選択肢を選ばせたい場合
Choices(<選択肢の表示名>)
例:
選択肢型そのものを使いたい場合
[@< 選択肢の表示名 >].<使いたい選択肢の名前>
例1:
例2:
Power Automate(Dataverseコネクタ)
選択肢型の比較をしたい場合
「値」を比較する
例:
選択肢型の中身を見たい場合
item()?[‘<選択肢型の内部の名前>@OData.Community.Display.V1.FormattedValue’]
例:
「なんだこれ呪文か?こんなの覚えらんねえよ!」という方、ご安心ください。
「行を一覧にする」の「未加工の出力を表示」を押すと表示される大量のデータの中に正解が紛れています。
なので「item関数を使うぞ」ということだけ覚えておけば大丈夫です!
まとめ
Dataverseの選択肢型について仕組みと使い方をそれぞれまとめてみました。
半端な気持ちで使うと痛い目を見る選択肢型ですが、使いこなせれば便利なことは間違いありません!
本記事が少しでも選択肢型に困っている人の手助けになれば幸いです。
佐藤 晴輝/FIXER
フロントからバック、ネットワークまである程度触れるガジェットオタクです。
好きな言語は C# で IoT と画像処理が得意です。