📑

Power Apps のコンボボックスに出てくる「委任の警告」を解消する

2024/02/29に公開

はじめまして、百合宮桜です。
会社で勧められて、なんとなく登録したので書いてみます。
今回のテーマは「コンボボックスで出てくる委任の警告の原因と解消法」です。
よろしくお願いいたします。

コンボボックスで委任の警告が出ている理由

コンボボックスを設定すると、委任の警告が出ます。

これは SearchItem に対して、委任の警告が出ています。
SearchItem がどこにあるのかというと、フィールドの中に入っているんですね。

そして、SearchItem が何を表しているかというと、簡単に言うと検索キーです。
コンボボックスはデータソースを検索して、選択する候補を絞り込むことができます。
デフォルトではデータソースにあるレコードが全部表示されますが

コンボボックスに「A」と入力すると、「A」が含まれているレコードだけが抽出されていますね。

この検索を行う時に、レコード数がデータ行の制限での設定数よりも多いと、

「正しく検索できない可能性がある」というのが委任の警告が出ている理由です。

どうすれば良いのか?

検索をしない設定にする

デフォルトでは「検索の許可」がオンになっているので、クリックしてオフにします。

そうすると、委任の警告は消えますが、検索によるレコードの絞り込みはできなくなります。

委任できる関数の式を書く

検索部分の委任処理ができていないから、委任の警告が出るのです。
ということは検索部分を委任処理できるようにすれば、万事解決ですね。
なので、検索部分を委任処理できるように Items プロパティを変更します。
以下の様に式を書くと、検索部分をデータソース側(今回はSharePoint)に委任できます。

でもまだ委任の警告は消えていません。

先ほど書いた式はコンボボックスに入力された文字から始まる値だけに候補を絞り込んでほしいという意味です。
なのでコンボボックスに「何らかの文字が入力された」という前提の式なんですね。
この式だけではコンボボックスに何も入力されていない時はどうしたら良いのか分からないので、コンボボックスに何も入力されていない時に検索を行うかどうかを指定してあげないと「委任の警告」は消えません。

ということで正解はこちらです。

Self.SearchText はコンボボックスに入力された値のことです。
IsBlank関数は空白かどうかを判定する関数ですが、頭に!をつけるといつもとは逆の空白ではない(false)かどうかという判定をするようになります。今回はこの!を利用して、IsBlank関数でコンボボックスに文字が入力されているかどうかを判定しています。

https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-isblank-isempty

そしてコンボボックスに文字が入力された時だけ項目の絞り込みを行い、コンボボックスに何も入力されていない時はデータソースをそのまま表示するという仕様に作り変えました。

コンボボックスに文字が入力されている時はその文字から始まるものだけが表示されます。

何も入力されていない時は全データの上位500件(データ行の制限での最大値)が表示されます。

こんな感じでコンボボックスの委任の警告は解消できます。
データ行の制限に引っかからない小規模のデータを取り扱うなら委任の警告が出ていても気にすることはありません。データ行の制限に引っかかるような大きなデータを検索する時はこのように解消してあげてください。

Discussion