次の方法で共有


仮想テーブルの既知の制約とトラブルシューティング

この記事では、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によって提供される 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 として解析できない場合、仮想テーブルの作成は成功しますが、実行時に以下のエラーが出て失敗します:
    • Power Apps (make.powerapps.com):「テーブルを開けませんでした。 再読み込みするか、再度開いてみてください。」
    • ネットワーク追跡: 「SQL Server 文字列の主キーは、値を GUID として解析できる場合にのみサポートされます。」
  • SQLプライマリ名として使用するための非プライマリ キー文字列フィールドのないサーバー テーブル: SQLテーブルにプライマリ名として使用できる文字列フィールドがない場合、構成 手順 に次のエラーが表示されます:「テーブルにプライマリ フィールドがありません」
  • SQL ビューを使用して仮想テーブルを作成できますが、読み取り操作しか許可されません。
  • SQLサーバー コネクタの制限については、 SQLサーバー コネクタ リファレンス を参照してください。
  • ソース テーブル内のSQLデータ型のbigint列は、仮想テーブル内で10進データ型としてマップされます。 Dataverse 整数への bigint マッピングにプラットフォーム サポートが利用できる場合、仮想テーブルで以前に作成した列を削除し、新しい列を作成する必要があります。
  • 現時点では、次の列タイプを 仮想テーブル に含めることはできません。
    • 時間
    • Datetime2
    • Image
    • ジオメトリ
    • 地域
    • RowVersion
  • 次の列タイプは 仮想テーブル に含まれていますが、テキスト フィールドとしてのみ表示されます。
    • HierarchyID
    • XML
    • Sqlvariant

トラブルシューティング​​

  • ソース テーブルに多くのレコードがある場合でも、仮想テーブルにはレコードが 1 つしか表示されません。
    解決策: ソース テーブルを確認し、主キーが定義されていることを確認します。

  • Power Apps (make.powerapps.com) がテーブル リストを取得しているとき、または 選択 [完了] をクリックしてテーブルを作成するときに、次のいずれかのエラーが発生します。

    • 「セグメント msdyn_get_required_fields のリソースが見つかりません」
    • 「呼び出し中にエラーが発生しました...接続が環境に存在することを確認してください」
    • 「シーケンスは msdyn_get_required_fields のどの要素にも一致しません」
      解決策: 場合によっては、仮想コネクタ プロバイダーの最新のソリューションがない可能性があります。 仮想コネクタ プロバイダー ソリューションに更新が必要かどうかを判断するには、次の手順を実行します:
    1. 選択 ソリューション を左側のナビゲーション ペインで選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
    2. 選択 [ 履歴 ] タブ。
    3. 検索 します ConnectorProvider
    4. 情報を表示して、ソリューションを更新する必要があるかどうかを確認します。
    5. 履歴に更新が必要であることが示されている場合は、 Microsoft商用マーケットプレイス にアクセスして 仮想コネクタ プロバイダーを検索し、次に 選択 今すぐ入手 してソリューションを 環境 にインポートします。
    6. 手順に従い、仮想テーブルを再度作成します。
  • 「現在の環境で接続 'xyz' が見つかりません」というメッセージが表示されます。 接続リストを取得するとき。
    解決策: これは、ユーザーの Dataverse 環境 に多数の接続がある場合に発生します。 これは、Connector プロバイダー ソリューションのバージョン 1029 で修正されています。 仮想コネクタ プロバイダー ソリューションに更新が必要かどうかを判断するには、次の手順を実行します:

    1. 選択 ソリューション を左側のナビゲーション ペインで選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
    2. 選択 [ 履歴 ] タブ。
    3. 検索 します ConnectorProvider
    4. 情報を表示して、ソリューションを更新する必要があるかどうかを確認します。
    5. 履歴に更新が必要であることが示されている場合は、 Microsoft商用マーケットプレイス にアクセスして 仮想コネクタ プロバイダーを検索し、次に 選択 今すぐ入手 してソリューションを 環境 にインポートします。
    6. 手順に従い、仮想テーブルを再度作成します。
  • 仮想テーブル の作成中にタイムアウトが発生したことが通知されます。
    解決策: これは、他の既存のジョブによって 仮想テーブル の作成が遅れる場合に発生する可能性があります。 数分置いてからもう一度お試しください。

  • 「予期しないエラーが発生しました」という通知が表示されます
    解決策: これは、仮想テーブル データ ソース が無効な値で作成された場合に発生します。 これを解決するには、エラーの原因となっている 仮想テーブル データ ソース を見つけて削除し、仮想テーブル を再作成する必要があります。

    1. 選択 設定 (歯車アイコン) >詳細設定 から Power Apps
    2. 上部のメニューで、選択 設定 を選択します。
    3. ソリューションに移動します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
    4. 仮想テーブルを含むソリューションに移動します (ソリューションを使用していない場合は、 Common Data Services デフォルト ソリューションに移動します)。
    5. 左側のパネルに、選択 仮想テーブル データ ソース があります。
    6. 各 データ ソース (すべて VCP_DS_..." で始まります) をダブルクリックし、エラーのある それを削除 データ ソース. を見つけます。
    7. 仮想テーブル を再作成します。
  • 「このテーブルは既に存在します。テーブルを再作成しています。 プライマリフィールドとスキーマ名は変更できません。"
    解決策: このテーブルは以前に作成されています。 作成を続行するとテーブルが再作成され、データ ソース で行われたテーブルの変更が 仮想テーブル で更新されます (フィールドの追加または削除が含まれます)。 カスタム名と主フィールド値は編集できません。

  • エラー メッセージ: "primary_key_nameを空にすることはできません"
    解決策: 主キーのGUID値が含まれていないテーブルまたはリストを選択しました。 仮想テーブル を作成するには、ソース テーブルにGUID列を追加する必要があります。

  • Excel仮想テーブル を作成しましたが、 テーブル 領域 Power Appsに表示されません。
    解決策: 仮想テーブル の作成は非同期であるため、 システム ジョブでプロセスのステータスを確認できます。 名前が Microsoft.Wrm.DataProvider.Connector.Plugins.ConnectorGenerateVEPlugin で始まり、 About 列の値が新しい 仮想テーブル の名前と等しいシステム ジョブを探します。 ステータスがまだ 進行中の場合は、ジョブが完了するまで待機します。 エラーがある場合は、システム、ジョブ名のハイパーリンクを選択して詳細を取得できます。 この例では、テーブルの作成はまだ保留中です。

    テーブル作成保留中

    エラー 429 "要求が多すぎます" が原因でテーブルの作成に失敗しました。

    429エラーのためテーブルの作成に失敗しました

  • テーブル作成のシステム ジョブは成功しましたが、無効な列または欠落した列に関連するランタイム エラーが発生します。
    解決策: テーブル フィールドの作成中に障害が発生した場合、テーブル作成プロセスは失敗せず、残りのフィールドで続行されます。 これは、一部の列タイプがサポートされていない場合に、システムが 仮想テーブル の作成をブロックしないようにするためです。 エラーの詳細を取得するには、 管理>システム設定>カスタマイズ>プラグイン トレース ログへのログ記録を有効にする でログ記録を有効にし、仮想テーブル を削除して再度作成してください。

次の手順

仮想コネクタプロバイダーを使用して仮想テーブルを作成する (プレビュー)

仮想テーブルの関連付けを設定する