カスタムコンポーネントの入力プロパティでDataverseの選択肢列(OptionSetValue)を渡す方法がわからなかったのでメモ。
やりたいこと
こんな選択肢型を持つテーブルがあって、


この選択肢列をカスタムコンポーネントの入力プロパティで指定できるようにしたいときの話。


例として、コンポーネント内のギャラリーで入力プロパティを使ってフィルター(画像の赤枠部分を入力プロパティで指定)する方法を考えてみる。
まずコンポーネントの入力プロパティを「レコード型」にして選択肢を指定してみたんだけど、どうやらDataverseの選択肢列の値(OptionSetValue)はレコード型じゃないらしくエラーが発生。


じゃあ「数値型」なら、と思ったけどこれもダメ。


「テーブル型」もダメで、


最終的に「テキスト型」ならいけたんだけど、


当然ながらテキスト型だとフィルターが動作しない。。


ということで色々試行錯誤してみた。
方法1 : ドロップダウンをかませる
1つ目がドロップダウンをかませる方法。
こんな感じでカスタムコンポーネント内にドロップダウンを入れて、ItemsにChoices(選択肢)を、Defaultにさっき作成したテキスト型の入力プロパティ(ねこ種)を設定。


そしたらギャラリーのフィルターにこのドロップダウンのSelected.Valueを設定して、


Visibleをfalseにしてあげれば、


こんな感じで呼び出す画面側でDataverseの選択肢を渡せばフィルターができるようになる。


方法2 : オブジェクトに詰めて渡す
2つ目がオブジェクトに詰めて渡しちゃう方法。
入力プロパティを「レコード型」にして、「{Value:選択肢}」と書いてValue列に選択肢の値が入るように設定。

※First(Choices(選択肢))でもOK
そしたらギャラリーのフィルターをこんな感じで書いて、オブジェクトの中の選択肢の値を見るように設定。


あとは呼び出す画面側をこんな感じで書いてあげれば、選択肢を渡してフィルターできるようになる。


ということで今のところは見つかった方法は2つ。
DataverseのOptionSetValueって何型なんだろ。。。
おまけ:SPOの選択肢列で同じことをしたい場合
こんな感じでSPOの選択肢列があって同じことをしたい場合、


SPOの選択肢列は「レコード型」なので、入力プロパティを「レコード型」にしてしまって、


ギャラリーのフィルターをこんな感じで書いてあげれば、


画面側から指定することができる。
※この場合はコンボボックスもコンポーネントに入れちゃった方が早いけど。。

※この場合はコンボボックスもコンポーネントに入れちゃった方が早いけど。。

コメント