System fields like CreatedDateTime, ModifiedBy, and DataAreaId are read-only by default during export. Here's how to override them.
Every table in D365 Finance & Operations has a set of system-managed fields — CreatedDateTime, CreatedBy, ModifiedDateTime, ModifiedBy, DataAreaId, Partition, and RecId. The kernel populates these automatically on insert and update. You never touch them in normal transactional code.
But data migration is not normal transactional code.
When you're exporting data from one D365 environment and importing it into another — or feeding it to an external data warehouse — you often need those system timestamps and user IDs to travel with the record. An audit trail that shows every record as "created by Admin at 2026-05-14 09:00" because the import job ran at 9 AM is not an audit trail at all. Similarly, when importing historical data, you may need to set CreatedDateTime to the original value from the source system.
This post covers how to expose, modify, and control system field values during data entity export and import in D365 F&O — the right way.
In this article
- Understanding system fields and their default behavior
- Exposing system fields on a data entity
- Modifying system field values during export
- Security and audit considerations