Dataverseで列数の多いデータソースを使用していると特定の列だけ(ほぼID列のみ)しか取得・表示されずにアプリがバグってしまうことがありました。
近日公開の機能を眺めていたらこの原因が明示的な列選択という機能であることがわかったので、解決策とともに紹介します。
明示的な列の選択をオンにすると勝手に特定の列の値が空の状態でテーブル値を取得する
近日公開の機能のプレビュー機能に「明示的な列の選択」という機能があり、この機能が原因で正しく値が取得できていなかったようです。
パフォーマンス向上のために必要な機能なのかもしれませんが、必要な列を取得できていないことで後述する対策が必要となり、アプリのロジックが複雑になってしまいました。
同じ事象に遭遇した方は何列くらいのテーブルで発生したかを教えてほしいです。私のケースでは200列くらいのテーブルを使用していました。
LookUp関数を使用する
明示的な列の選択が適切に動作していない状態でも必ずID列は取得できているので、LookUp関数でID列をキーにしてレコードや値を取得するのが有効です。
必要な列が少ない場合はこの方法が確実ですが、Power Platform要求数の制限には注意しましょう。
ShowColumns関数を使用する
たしか委任の制限に引っかかるので2000行以下でしか使用できませんが、必要な列が多い場合はShowColumns関数で必要な列を明示的に指定するのも有効です。
ColumnName関数を使用すると列の一覧を取得できます。
コメント