D365の類似環境の差分比較

類似した複数環境統合時におけるコードレベルの差分抽出

① カスタマイズした AOT 一覧抽出

  • 使用ツール:SQL(ModelElement +ModelElementType
  • 条件:Name LIKE 'Fky%' などの接頭辞で絞り込み
  • 結果:環境A・環境BのAOT名リストを取得(差分検出のベース)

② カスタマイズされた AOT のソースコードを抽出

  • 使用ツール:ModelUtil.exe
  • 対象モデルのみをエクスポート(カスタムモデル名例:FkyCustomizations
  • .xml または .xpp ファイル群として出力
  • 補足:接頭辞ベースでファイルフィルタも可能(不要部分の除外)

公式:https://learn.microsoft.com/ja-jp/dynamics365/fin-ops-core/dev-itpro/dev-tools/models-export-import

③ ソースコードを GitHub(またはGitリポジトリ)にアップロード

  • 環境A, 環境Bそれぞれのフォルダ構成を維持して commit
  • ブランチを切る、または別フォルダ構成で push

④ VS Code で差分抽出し、カスタマイズ内容を特定

  • 拡張機能:Compare Folders / Git Graph / Diff Folders 等
  • 差分行に注目し「何をしているコードか」「追加・削除・変更の影響範囲」をレビュー
  • .xpp / .xml 内のクラス・テーブル・メソッド単位で確認

⑤ カスタマイズされていない環境に反映した場合の影響を特定

観点例:
 - テーブルフィールドの追加による既存データ構造の変更
 - メニュー追加によるUI影響
 - 業務プロセスへの影響(ワークフロー、レポートなど)

⑥ 影響がある場合は排除または回避策を策定

例:既存環境のフィールド名が同じ → 競合の回避方法を定義
  モデル依存関係の確認(Descriptor.xmlや参照リストから)
  条件付きで読み込む・IF文制御などで回避処理を設計

⑦ 統合(データおよびカスタマイズのマージ)を実施

カスタマイズコードの統一(片方の環境に反映)
データの突合とマッピング(フィールド追加や変換があれば対応)
モデルビルド、deployable package の作成
必要に応じてデータアップグレードスクリプト(X++ または Data management)

メリット

どのようにシステムが作られているか把握できるため、追加で開発する際に、コードレベルで作業がイメージでき、結果として、工数と予算算出が正確にできる。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です