Effective December 1, 2020, for all 10.0+ versions of Dynamics 365 Financial Dimension Framework we are preventing deletion from the following Dimension tables:
- DimensionAttribute
- DimensionAttributeValue
- DimensionAttributeSet
- DimensionAttributeSetItem
- DimensionAttributeValueSet
- DimensionAttributeValueSetItem
- DimensionAttributeValueCombination
- DimensionAttributeValueGroupCombination
- DimensionAttributeValueGroup
- DimensionAttributeLevelValue
This change is applied directly in the database and follows the same business logic that is used within the application.
These changes protect the integrity of the financial accounting data. Any customizations or scripts will need to be immediately updated to comply with these changes. Note that updating data to blank values is not a valid solution because this corrupts data. In the future, we will also not allow table updates.
Why the changes were necessary
These tables were originally designed to be immutable data structures, which means that they are completely controlled by Microsoft or the official X++ APIs designed for extenders. This design allowed for high throughput and durable references that could stand the test of time when performing historical regulatory reporting.
Unfortunately, many extenders have worked around these guidelines to delete records from the tables directly, leading to data corruption and downstream impact. Examples of such issues include:
- Duplicate account rows in financial reports that are frequently used in year-end account reconciliation processes.
- Transactional processing failures that prevent the ability to post documents like Sales order invoices or Purchase order invoices, among others.
- Historical reporting errors and/or changes resulting in the inability to meet auditing and/or regulatory reporting requirements.
- Year-end processing that may be blocked due to out-of-balance errors.
Fixing these issues is extremely error-prone and time-consuming to both customers and Microsoft. Potential fixes also put the accounting data at risk, and greatly limit the ability to focus on go-forward improvements.
Product support
Microsoft does not provide support on customizations or direct SQL queries to the above-mentioned tables. This means that front-line support and engineering teams will not be able to help with issues caused by these customizations. If you encounter data corruption due to customizations or running direct SQL queries, contact our services team or delivery partners for assistance. It is very important that you update all customizations or direct SQL queries that delete records from these tables. In the future, Microsoft will provide a tool for self-service correction of data for targeted scenarios.
Next steps
For detailed information about financial dimensions and the risks of changing data directly, see Part 6: Advanced topics in the “Ledger account combinations” topic. To address one of the known requests of hiding or inactivating values that are no longer relevant, we will prioritize the ability to support “soft-deletions” and the corresponding removal of unused references. If you have additional requests, please share them in the Dynamics 365 Application Ideas portal.