Search やFilter 関数を使って検索をしようとすると、たまに青いアンダーラインや黄色い三角マークが出る時があると思います。
目次
原因
データソースには、委任できる関数と委任できない関数があります。
そのデータソースごとに決められた記述の仕方(Syntax)でコードを書く必要があります。
委任とはイメージとしては以下のとおりです。
Power Apps のメモリ内に置いていないような外部のデータソースを処理する時、データソースにも伝わる関数を伝えて、データソース側で処理&結果だけもらう仕組み=委任です。
したがって、伝わる関数と伝わらない関数があります。伝わらないと、アンダーラインが出たりするわけです。
委任できるデータベース
Dataverse、SharePoint、SQL Serverをデータソースとした場合、委任がサポートされます。逆に言えば、Power Apps 内のメモリで処理されず、データソース側で処理が実行されるということです。
したがって、繰り返しになりますが、Syntaxを意識する必要があります。
OneDrive上などにおいたExcelを利用する場合、Power Apps のメモリ内にて処理されるため委任はサポートされません。つまり委任を意識したコードを書く必要はないということです。
委任できる関数
委任できる関数は主に以下です。
Filter()
Search()
LookUp()
IsBlank()
StartsWith()
EndsWith()
TrimEnds()
And()
その他数学式(=, <, >等)
詳細は以下の公式ページにも記述されています。
対処方法
Search 関数でアンダーラインが出た際には、以下のようにFilter 関数に変換して試してください。
Filter 関数で前方一致条件は委任可能です。
ソースコードも参考に載せておきます。
Filter(mascomdict, StartsWith(Title, SearchTextBox.Text))
以下は環境によってかえる必要がある項目なので読み替えていただければと思います。
- mascomdict はデータソース
- SearchTextBoxは検索キーワードを入れるテキスト入力コントロールの名前
- Title は検索列(フィルター列)
以上ご覧頂きありがとうございました。
ご参考になれば幸いです。