web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :

O25DE4: Change Tracking in Data Entities and latest changes

Ajit kumar G Profile Picture Ajit kumar G 534

<for my reference only: O25 = October 2025; DE4 = with Data Entity Tag;>

If you’ve ever worked on data integrations or migrations in Dynamics 365 Finance & Operations (F&O), you know the pain of moving large datasets repeatedly. Enter Change Tracking - a feature that feels small but makes a huge difference.


What is Change Tracking?

Change Tracking lets you detect and export only what changed since the last sync, instead of dumping the entire dataset every time. This is used by Microsoft already in the out-of-the-box frameworks :

  • Inbuild Integrations with Microsoft CRM or BI scenario. Could be used for integration towards external apps.
  • Incremental data migration using DMF during cutovers.
  • BYOD exports where performance matters.

Why It Exists

Without Change Tracking:

  • Every export = full dataset.
  • More time, more cost, more risk of throttling. 
  • Most costs (per transfer / transaction).
With Change Tracking:
  • Only inserts, updates, and (sometimes) deletes are exported.
  • Faster, lighter, and easier to schedule.
  • Lesser costs.

Types of Change Tracking in F&O

There are now two flavors of Change Tracking:


1. Classic Change Tracking (Entity-level)

Configured in Data Management workspace for BYOD and DMF scenarios.

  • Options:
    • None → No tracking.
    • Primary Table → Tracks changes only in the root table.
    • Entire Entity → Tracks changes across all tables in the entity.
    • Custom Query → Tracks changes based on a developer-defined query (great for complex joins).
  • Use cases: BYOD incremental push, DMF exports.
  • Limitations: Doesn’t support row-level versioning; deletes tracked only for BYOD and Dataverse virtual entities.

2. Row Version Change Tracking (Modern approach)

Generally Available in 10.0.34+, prerequisite / required for the several newer functionalities. Also a lot more important information is in MS Learn site: https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/rowversion-change-track 

  • prereq for Data archival 
  • prereq for Synapse integration
  • prereq for Mobile offline
  • prereq for Relevance search
  • Future Dataverse-based sync frameworks.

How it works:

  • Adds a rowversion column to tables.
  • SQL Server increments a counter for every insert/update.
  • Changes detected by comparing previous vs current rowversion.
  • Prerequisite: Enable Sql row version change tracking configuration key in License configuration (maintenance mode required).

Important:

  • Row version tracking does not allow custom queries. Entities using custom queries must be refactored.
  • Direct SQL DML statements that try to update rowversion will break—test in sandbox first.

Performance Considerations

  • Change Tracking adds overhead—don’t enable it on every entity “just in case.”
  • For large transactional tables (e.g., InventTrans), consider:
    • Primary Table option for minimal churn.
    • Custom Query for classic CT (not rowversion).
  • Monitor batch jobs and SQL performance after enabling.

How to Enable Change Tracking

Classic CT (BYOD/DMF)

  1. Go to Data Management → Data Entities.
  2. Select your entity → Change Tracking.
  3. Choose:
    • Primary Table
    • Entire Entity
    • Custom Query
  4. Save and publish.
You should be easily able to see what entities are enabled with Change Tracking from Data Management > Entities. (Important to remember to refresh the entity list from Framework parameters, if you haven't done this already)


Row Version CT

  1. Enable Sql row version change tracking in License configuration (maintenance mode).
  2. Set Allow Row Version Change Tracking = Yes on tables/entities.
  3. Sync database (adds rowversion column).
  4. Validate in Data Management and Power Platform integration.

Using Change Tracking in Data Projects

  • In Export projects, choose Incremental Push.
  • First run exports all records; subsequent runs export only changes.
  • Perfect for BYOD or scheduled DMF jobs.

New in 2025

  • Fabric Link & Synapse Link require row version CT for incremental sync.
  • Manage Tables in Fabric Link lets you choose which tables to sync—only those with CT enabled will appear.
  • Deletes now tracked for BYOD and Dataverse virtual entities (root table only).

Wrap-Up

Change Tracking is one of those features that quietly powers big things:

  • Faster integrations.
  • Smarter exports.
  • Future-ready for Fabric and Dataverse sync.

If you’re enabling it:

  • Pick the right type (classic vs rowversion).
  • Test in sandbox.
  • Keep performance in mind.

Lycka till / Good luck. 


This was originally posted here.

Comments

*This post is locked for comments