Dataverse 代替キーで Lookup を張る——取込時正規化と親→子ロードオーダーの作法
基幹から来る支社コード・課コードは、テキストのまま流せば取り込みは通る。だが、後で階層クエリや集計に使おうとして詰まる。取り込みながら Lookup 関係へ変換する——その判断を先送りにすると、後工程のコストになって返ってくる。 結論から言う。代替キー(Alternate Key)を使えば、内部 GUID なしに Lookup を張れる。 親→子の順序を守り、「変換ジョブが緑(成功)」と「関係が張れた」を別物として確認する。この 3 点で、横長テキストコードは取込時に関係データに変わる。 コードと関係は別物——なぜ後回しにすると詰まるかDataverse に支社コード「A001」を文字列として格納しても、その行は「支社テーブルの A001 レコード」を参照していない。文字列の一致と Lookup 関係は別物だ。 文字列のままでは、Dataverse のリレーションシップ機能(階層ナビゲーション・関連レコード展開・ロールアップ集計)が一切使えない。基幹から来る横長コードを「いったんコードのまま流す」設計は、後で Lookup を張り直す移行コストとセットになる。 Microsoft 公式は代替キーを「外部システムとの統合で GUID を保持していない場合に一意識別する仕組み」として定義している(Define alternate keys to reference rows)。つまり、内部 GUID を知らなくても業務コードで関係を張る経路は、公式に用意されている。 代替キーで Lookup を張る——前提条件と実装の骨格代替キーとはDataverse のテーブルは、行を一意に識別する主キーとして内部 GUID を持つ。代替キー(Alternate Key)は、業務コード等の外部識別子を GUID と等価な参照先として登録する仕組みだ。代替キーを定義した列は、Lookup を張る際の解決キーとして使える。 前提条件 3 点1. 参照先テーブルに代替キーを定義する Dataflow のマッピング画面で Lookup フィールドが選択できない場合、参照先テーブルに代替キーが未定義であることがほとんどだ。まず親テーブル(支社テーブル、課テーブル等)に対して代替キーを追加し、Dataflow のマッピングを再設定する(Field mapping considerations for standard dataflows)。 2. 代替キーの型は Text 型または Number 型のみ Dataflow マッピングで利用できる代替キーの型は Text 型または Number 型に限られる。日付型・選択肢型等を代替キーとして定義している場合、Dataflow マッピングでエラーになる。業務コードが日付型フィールドで管理されている場合は Text 型で定義し直す(Field mapping considerations for standard dataflows、コミュニティ報告: Fabric Community)。 ...