一対多または多対一のテーブル リレーションシップを持つテーブル間で、列 (属性とも呼ばれます) をマップできます。 列マッピングを使用すると、別の行のコンテキストで作成された行の既定値を設定できます。
特定の取引先企業の従業員である人物に新しい取引先担当者行を追加すると仮定します。 2 つの方法でできます。
- アプリを操作して取引先担当者を一から作成するとなると、難易度が高くなります。 しかし、その場合、親アカウントを設定し、住所や電話番号など、おそらく親アカウントと同じであろういくつかの項目の情報を入力する必要があるため、時間がかかり、誤りが発生する可能性があります。
- より簡単な方法は、取引先企業テーブルから始めて、フォームの取引先担当者サブグリッドから + を選択して取引先担当者を追加することです。 このインターフェイスでは、まず、重複する行を誤って作成しないように、既存の関連連絡先を検索するようにユーザーに指示します。 既存の行が見つからない場合は、[ 新規 ] を選択して新しい連絡先行を作成できます。 新しい取引先担当者行フォームには、既定値として取引先企業からマップした属性値 (住所や電話番号など) が含まれています。 ユーザーは行を保存する前に、これらの値を編集できます。
1:N テーブル関連付けのテーブル列をマッピングすると、主テーブル行から取られたデータの特定の項目が新しい関連テーブル フォームにコピーされ、保存する前に編集できる既定値が設定されます。
注意
- これらのマッピングは、保存を行う前の行に既定値を設定するだけです。 保存する前に値を編集できます。 転送されるデータは、その時点のデータです。 ソース データが後で変更された場合、データは同期されません。
- これらのマッピングは、ワークフローまたはダイアログ プロセスを使用して作成された関連行には適用されません。 コードを使用して作成された新しい行には自動的に適用されませんが、開発者は
InitializeFrom(InitializeFrom Function または InitializeFromRequest クラス) という特殊なメッセージを使用して、使用可能なマッピングを使用して新しい行を作成できます。 - これらのマッピングは、親検索列を除いて、アプリに Microsoft Dataverse へのアクティブなネットワーク接続がないときに開かれる新しい関連テーブル フォームには適用されません。
- オフライン モードでアプリを使用している場合、テーブル間の列マッピングはサポートされていません。 詳細については、モデル駆動型アプリのモバイル オフラインの制限に記載されている制限を参照してください。
マップ可能な列を確認する
列のマッピングは、1:N または N:1 のテーブルの関連付けのコンテキストで行われるため、最初に 1:N または N:1 テーブル関係を表示する必要があります。
テーブル列を表示し、マッピングする唯一の方法は、従来のソリューション エクスプローラを使用することです。
- Power Apps にサインインし、必要な環境を選択します。
- 左パネルで、ソリューション を選択して、必要なソリューションを開きます。
- コマンド バーでクラシックに切り替えを選択します。 ソリューションは、クラシックなソリューション エクスプローラーで開きます。
- エンティティを展開し、目的のテーブルを展開し、リレーションシップ タイプ (1:N リレーションシップまたは N:1 リレーションシップ) を展開し、列マッピングを表示または編集するリレーションシップを開きます。
- 列マッピングは、テーブル リレーションシップ内では実際には定義されませんが、従来のソリューション エクスプローラーリレーションシップのユーザー インターフェイスで公開されます。 すべての 1:N のテーブル関係にあるわけではありません。 ドロップダウン リストのタイプで、マップ可能 を選択して、マッピング可能な列を持つリレーションシップのみを表示します。
- 列マッピングを表示または編集するリレーションシップをダブルクリックします。 ブラウザー ページが開き、リレーションシップのプロパティが表示されます。
- 左のナビゲーション バーで、マッピング タブを選択します。 リレーションシップマッピングが表示されます。
新しいマッピングを追加する
-
マッピング列の表示において、コマンド バーで新規を選択します。
フィールド マッピングの作成 ダイアログが表示されます。
- 取引先企業と取引先担当者テーブルのリレーションシップの address1_city など、マッピングする値を持つソース テーブル列とターゲット テーブル列を 1 つずつ選択します。
- OK を選択してダイアログを閉じます。
- 列マッピングがメタデータではないため、変更を有効にするには公開する必要があります。
自動的な列マッピングの生成
その他の操作 メニューから マッピングの生成 を選択しても、マッピングを自動的に生成できます。
カスタム テーブルを作成し、マッピングを活用したい場合は、マッピングの生成を使用します。 ただし、システム テーブルを使用してマッピングを自動生成する場合は、既定のマッピングを置き換えることになるため、問題が発生する可能性があるので注意してください。
警告
マッピングの生成 を使用してマッピングを自動的に生成すると、既存のマッピングが削除され、名前とデータ型が似ている列のみに基づいたマッピング候補に置き換えられます。 システム テーブルで使用している場合は、必要なマッピングを失う場合があります。 カスタム テーブルの場合、不要なマッピングを簡単に削除し、マッピングの生成アクションで作成されなかった他のマッピングを追加できるため、時間の節約に役立ちます。
データの種類とマッピングのルール
次の規則は、マッピングできるデータの種類を示します。
- 両方の列が同じ種類で、同じ形式である必要があります。
- ターゲット列の長さが、ソース列の長さと同じかそれ以上である必要があります。
- ターゲット列を別の列にマップすることはできません。
- ソース列がフォーム上で表示可能である必要があります。
- ターゲット列が、ユーザーがデータを入力可能な列である必要があります。
- アドレス ID 値または型
partylistの列はマップできません。 - フォームに表示されていない列との間でマップする場合、列がフォームに追加されるまでマッピングは行われません。
- 列が候補リストの場合、各オプションの整数値が同一である必要があります。
注意
オプション列をマッピングする必要がある場合、同じグローバル オプション セットを使用するように両方の列を構成するようお勧めします。 そうしないと、別々の 2 種類のオプションのセットの同期を手動で保つことが難しくなります。 各オプションの整数値が正しくマップされていない場合は、データに問題が発生する可能性があります。 詳細情報: Microsoft Dataverseのグローバル選択肢の作成と編集 (ピックリスト)
マッピングを削除する
環境に不要なアンマネージド マッピングがある場合は、マップ可能な列を表示しながら、それらを選択し、[のDelete column mappings削除] を選択できます。
メモ
システム マッピングとマネージド マッピングは、レガシ ソリューション エクスプローラーを使用してアンマネージド マッピングと同じ方法で削除することはできません。
システム マッピング
システムによって生成されたマッピングを削除することはできません。 システム生成マッピングを削除しようとすると、次のようなエラーが表示されます。"ID <GUID> を持つシステム属性マップを削除できません。'<name>' から '<name>' へ、ID <GUID> を持つエンティティマップ '<name>' から 'X<name>' に属しています。
システムによって生成されたマッピングを削除するには、マッピングに関連付けられているリレーションシップまたは参照列を削除します。マッピングも削除されます。 詳細情報: リレーションシップの削除
マネージド マッピング
マッピングが管理されている場合、マッピングを削除することはできません。 マッピングを削除するには、ターゲット環境でこのマッピングを行ったソリューションへのアップグレードを行う必要があります。 これを行うには、ソリューションの更新プログラムとして、開発環境のアンマネージド マッピングを削除します。 ソリューションをマネージドとしてエクスポートして、ダウンストリーム環境にインポートします。 詳細: ソリューションのアップグレードまたは更新
参照
ソリューション エクスプローラーを使用して 1:N (一対多) または N:1 (多対一) のテーブルの関連付けを作成および編集する
開発者ドキュメント: テーブルと列のマッピングをカスタマイズする
開発者向けドキュメント: Web API を使用して別のレコードからレコードを作成する
開発者ドキュメント: プライマリ テーブル行から既定値を設定する