仮想テーブルの既知の制約とトラブルシューティング
この記事では、Microsoft Dataverse で仮想テーブルを使用する際の既知の制限事項とトラブルシューティングのヒントについて説明します。
既知の制限
以下は、仮想コネクタ プロバイダーを使用して作成された仮想テーブルの既知の制限の一覧です。
一般
- 使用するテーブルまたはリストには、少なくともプライマリフィールドとして使用する文字列フィールドと、GUID フィールドを 1 つずつ含まれている必要があります。 これらの文字列フィールドがないと、仮想テーブルを作成できず、テーブルの詳細の取得段階でエラーが生成されます。
- SharePoint すべてのリストに存在する非表示の数値 ID フィールドを使用します
- SQL は GUID または整数フィールドを使用できます
- Excel には GUID フィールドが必要です
- Dataverse は Dataverse と互換性のあるデータ型を含む列のみを作成することができます。 この日付には、次のデータ型が含まれます:
- String
- 複数行テキスト (メモ)
- 整数
- 10 進法
- 浮動
- 日付/時刻
- はい/いいえ (ブール値)
- 選択 (複数選択値)
- ハイパーリンク/Url
- 仮想テーブルでサポートされていないデータ型:
- ファイルと添付ファイル
- Image
- 参照
- 仮想テーブルのテキスト列に使用できる最大文字数は 4000 文字です。 ソース テーブルの最大文字数の制限がこの値より大きい場合、最大文字数の制限を超える作成/更新操作は検証エラーになり、操作は失敗します。
- 仮想テーブル クエリは、返されるレコードが 1,000 に制限されています。 仮想テーブルと 1:N または N 個のカスタム・マルチテーブル (多相型) リレーションシップがある場合、この制限を超えるクエリは失敗し、エラーが表示されます。 この制限の回避策として、クエリでフィルター処理を使用してレコードセットを減らす方法があります。
- Dataverse は、ローカルに保存されたデータの監査データのみを実行および保存するため、仮想テーブルでは監査機能を使用できません。
- ロールアップと計算フィールドは、仮想テーブルに対して計算することはできません。 これは、ロールアップが Dataverse ではサーバー サイドの計算であり、ローカルにデータを保存する必要があるためです。
- マイクロソフトのが提供する Microsoft Entra ID は、読み取りアクセスのみを許可します。
- Dataverse 仮想テーブルは、Dataverse の通常の最大値を超えるフィールドに値を表示することができます。 この動作は、表示される値がローカルに保存されていないために発生します。 たとえば、 Dataverse 整数の最大値は100,000,000,000ですが、 SharePoint から 9,000,000,000,000 を取得して表示できます。 しかし、ユーザーが Dataverse で許容される最大サイズよりも大きなサイズに数値を編集しようとすると、最大サイズを超えるためレコードを保存できないことを示すエラーが提供されます。
- テーブル データのインポートおよびエクスポート機能は、仮想テーブルではサポートされていません。
各データ ソース
以下は、各データ ソースの制限です。
- SQL 仮想テーブルは、機能のために主キーとして GUID または整数フィールドを使用できます。
- 主キーのない SQL Server テーブル: 文字列以外のフィールドを主キーとして選択できます。 仮想テーブルは正常に作成されます。 次のエラー メッセージが表示され、RetrieveMultiple は機能し、他の操作は失敗します (SQL コネクタから送信されます):「APIM 要求は成功しませんでした : BadRequest : テーブルに主キーがありません」。 機能的には、GUID または整数フィールドを主キーとして使用する必要があります。
- 文字列主キーを持つ SQL Server テーブル: SQL 文字列主キーは、仮想テーブルの主キーで使用できる唯一のオプションになります。 SQL Server 文字列の主キーは、値を GUID として解析できる場合にのみサポートされます。 GUID として解析できない場合、仮想テーブルの作成は成功しますが、実行時に以下のエラーが出て失敗します:
- Maker Portal: 「テーブルを開けませんでした。 再読み込みするか、再度開いてみてください。」
- ネットワーク追跡: 「SQL Server 文字列の主キーは、値を GUID として解析できる場合にのみサポートされます。」
- プライマリ名として使用できる非主キー文字列フィールドのない SQL Server テーブル: SQL テーブルにプライマリ名として使用できる文字列フィールドがない場合、構成ステップで次のエラーが表示されます: "プライマリフィールドがあります"
- SQL ビューを使用して仮想テーブルを作成できますが、読み取り操作しか許可されません。
- SQL Server コネクタの制限: SQL Server コネクタ参照 をご覧ください。
- ソース テーブルの SQL データ型 bigint 列は、Dataverse 仮想テーブルで 10 進数のデータ型としてマップされます。 整数への bigint マッピングにプラットフォーム サポートが利用できる場合、仮想テーブルで以前に作成した列を削除し、新しい列を作成する必要があります。
- 現時点では、次の列タイプを仮想テーブルに含めることはできません:
- 時間
- Datetime2
- Image
- ジオメトリ
- 地域
- RowVersion
- 次の列タイプは仮想テーブルに含まれていますが、テキスト フィールドとしてのみ表示されます:
- HierarchyID
- XML
- Sqlvariant
トラブルシューティング
ソース テーブルに多くのレコードがある場合でも、仮想テーブルにはレコードが 1 つしか表示されません。
解決方法: ソース テーブルをチェックして、主キーが定義されていることを確認します。Power Apps (make.powerapps.com) がテーブル リストを取得しているとき、または 終了 を選択してテーブルを作成すると、次のいずれかのエラーが発生します:
- "セグメント
msdyn_get_required_fields
のリソースが見つかりません" - 「呼び出し中にエラーが発生しました...接続が環境に存在することを確認してください」
- "シーケンスは
msdyn_get_required_fields
の要素に一致しません"
解決策: 場合によっては、仮想コネクタ プロバイダーに対する最新のソリューションがない場合があります。 仮想コネクタ プロバイダー ソリューションに更新が必要かどうかを判断するには、次の手順を実行します:
- 左側のナビゲーション ペインで ソリューション を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
- 履歴タブを選択します。
- ConnectorProvider を検索します。
- 情報を表示して、ソリューションを更新する必要があるかどうかを確認します。
- 履歴からアップデートが必要な場合は、Microsoft コマーシャル マーケットプレース で 仮想コネクタ プロバイダー を検索し、Get it now を選択してソリューションをご利用の環境にインポートします。
- 手順に従い、仮想テーブルを再度作成します。
- "セグメント
「現在の環境で接続 'xyz' が見つかりません」というメッセージが表示されます。 接続のリストを取得する際。
ソリューション: これは、ユーザー Dataverse 環境に多数の接続がある場合に発生します。 これは、Connector プロバイダー ソリューションのバージョン 1029 で修正されています。 更新バージョンは、2023 年 2 月 20 日までにすべてのリージョンに公開される予定です。 仮想コネクタ プロバイダー ソリューションに更新が必要かどうかを判断するには、次の手順を実行します:- 左側のナビゲーション ペインで ソリューション を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
- 履歴タブを選択します。
- ConnectorProvider を検索します。
- 情報を表示して、ソリューションを更新する必要があるかどうかを確認します。
- 履歴からアップデートが必要な場合は、Microsoft コマーシャル マーケットプレース で 仮想コネクタ プロバイダー を検索し、Get it now を選択してソリューションをご利用の環境にインポートします。
- 手順に従い、仮想テーブルを再度作成します。
仮想テーブルの作成中にタイムアウトが発生した旨の通知が表示されます。
ソリューション: これは、他の既存のジョブが原因で仮想テーブルの作成が遅れた場合に発生する可能性があります。 数分置いてからもう一度お試しください。「予期しないエラーが発生しました」と通知される
ソリューション: これは、仮想テーブル データ ソース が無効な値で作成された場合に発生します。 これを解決するには、エラーの原因となっている仮想テーブル データ ソース を見つけて削除し、仮想テーブルを再作成する必要があります。- Power Apps から、設定 (歯車アイコン) > 高度な設定を選択します。
- 上部メニューで、設定 を選択します。
- ソリューション に移動します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
- 仮想テーブルを含むソリューションに移動します (ソリューションを使用していない場合は、 Common Data Services デフォルト ソリューションに移動します)。
- 左側のパネルで、仮想テーブル データ ソース を選択します。
- 各データ ソース (すべて VCP_DS_..." で始まります) をダブルクリックし、エラーのあるものを見つけたら、そのデータ ソースを削除します。
- 仮想テーブルを再作成します。
「このテーブルは既に存在します。テーブルを再作成しています。 プライマリフィールドとスキーマ名は変更できません。"
解決策: このテーブルは以前に作成されています。 作成を続行すると、テーブルが再作成されます。これにより、データ ソース で行われたテーブルの変更が仮想テーブルで更新されます (これには、フィールドの追加または削除が含まれます)。 カスタム名と主フィールド値は編集できません。エラー メッセージ: "primary_key_nameを空にすることはできません"
解決策: 主キーの GUID 値を含まないテーブルまたはリストを選択しました。 仮想テーブルを作成するには、ソース テーブルに GUID 列を追加する必要があります。Excel 仮想テーブルを作成しましたが、「テーブル」 に表示されません。
解決策: 仮想テーブルの作成は非同期であるため、システム ジョブでプロセスの状態を確認できます。 名前がMicrosoft.Wrm.DataProvider.Connector.Plugins.ConnectorGenerateVEPlugin
で始まり、Regarding 列の値が新しい仮想テーブルの名前と等しいシステム ジョブを探します。 状態がまだ進行中の場合は、ジョブが完了するのを待ちます。 エラーが発生した場合は、ジョブ名が「ハイパーリンク」のシステムをクリックして詳細を取得できます。 この例では、テーブルの作成はまだ保留中です。エラー 429 "要求が多すぎます" が原因でテーブルの作成に失敗しました。
テーブル作成のシステム ジョブは成功しましたが、無効な列または不足している列に関連するランタイム エラーが発生します
ソリューション: テーブルのフィールド作成に失敗した場合、テーブル作成のプロセスは失敗せず、他のフィールドを続行しようとします。 これは、一部の列タイプがサポートされていない場合に仮想テーブルの作成をブロックしたくないためです。 エラーの詳細を取得するには、管理> システム設定 > カスタマイズ > プラグイン トレース ログを有効にする でログを有効にしてから、仮想テーブルを削除して、作成を再試行します。