Power Apps 「ネットワークからデータを取得中にエラーが発生しました」対処その1|Dataverseから値の取得

キャンバスアプリでDataverseのリレーションを扱っているとたびたび「ネットワークからデータを取得中にエラーが発生しました」が発生するので、その対処方法をメモ。

スポンサーリンク

ネットワークからデータを取得中にエラーが発生しました

キャンバスアプリでDataverseのリレーションを扱っているとたびたびこのエラーが出る。

このエラーは「データ取得中に何かしらエラーがあったよ」というざっくりとしたエラーメッセージなので、原因はさまざま。

今回は確実にエラーが発生する1例があったので、その対処方法をメモ。

やろうとしたこと

こんな感じのテーブルとリレーションがDataverse上にあったとき、
「食事履歴」を画面上で選択したら、その「キャットフード」の「企業名(3階層親)」を画面に表示する、ということをやってみる。
ざっくり画面を作るとこんな感じ。

エラーが発生する式

順次レコードを取得するため、こんな感じで単純にWith関数で順次レコードを取得しようとすると、表題のエラーが発生する。

対処方法

先に対処方法を書くと、こんな感じでShowColumns関数を使用して式内で使用する列を明示的に指定してあげること。

以下対処方法発見までの試行錯誤なので、興味のある方だけ。

試行錯誤

まず試したのは中間(テーブル「ブランド」)をすっ飛ばしたのがよくないのかな。。と思って、「ブランド」も取得してみたけど同じエラーが発生。
きちんとAsで指定してあげればいけるかなと思ったけど、それでもだめ。
ここで初めてエラーログを確認したところ、「Could not find a property named ‘cr861_brand’ on type ‘Microsoft.Dynamics.CRM.cr861_brand」というプロパティが見つかりませんエラーが発生している。
テーブル「ブランド」内に論理名「cr861_brand」の列は確かに存在しないので(指定したい列は「cr861_brandid」)、
式の書き方が悪いのかと思い全て論理名で指定したけど、それでもダメ。。
ということで対処方法にもある「ShowColumnsで明示的に列を指定する」方法に行き着く。

「Could not find a property named ~ on type ‘Microsoft.Dynamics.CRM.~」以外のエラーメッセージを見たことが何度かあって、今回のエラー以外のときはこの対処でいけるか微妙なので、また再現したときに対処を探ろうかと。。

おまけ:一度変数に入れればエラーは発生しない

今回みたいにWith関数とかで直接企業名を表示せず、一度変数に入れてしまえばエラーは発生しない。

ギャラリー選択とかボタンクリックとかのイベントがきちんとある場合は、上記の変数に入れる方法でも対処可能。

関連記事

コメント

タイトルとURLをコピーしました