Advanced Attributes Management
Notes for release 25.0.9599.71116
Release: Advanced Attributes Management – 25.0.9599.71116
Description
This release delivers a significant performance improvement for the Advanced Attributes Management extension. The core change addresses the unnecessary invocation of DeleteAttributeValueMapping when processing temporary table records (e.g., during RefreshTempLines in Codeunit 90). By skipping deletion attempts on invalid or temporary records, the release eliminates approximately 86% of processing time during CalcInvDiscount, resulting in a gain of ~3.4 seconds per operation.
Additionally, deprecated method calls (TypeHelper.GetCultureName()) have been replaced with the current Language.GetCurrentCultureName() across multiple attribute type codeunits, ensuring forward compatibility with Business Central platform updates.
User Stories
| Title | Description | Setup Instructions | Impact on previous version |
|---|---|---|---|
| [23559] – Performance impact: Call DeleteAttributeValueMapping in temporary table | The DeleteAttributeValueMapping procedure was being called during RefreshTempLines (Cu90) even for temporary records, causing significant performance degradation. This change adds early-exit validation in DeleteAttributeValueMapping to skip processing when TableID <= 0 or SystemID is a null GUID. The result is a ~86% performance gain (~3.4 seconds saved) during CalcInvDiscount. Additionally, deprecated TypeHelper.GetCultureName() calls were replaced with Language.GetCurrentCultureName() in codeunits briAAT_TypeDate (8120616), briAAT_TypeDecimal (8120614), and briAAT_TypeInteger (8120615), and syntax corrections were applied. |
No setup required. The performance optimization is applied automatically upon upgrade. Impacted objects: Codeunit 8120618 (briAAT_AttributeMgt), Codeunit 8120616 (briAAT_TypeDate), Codeunit 8120614 (briAAT_TypeDecimal), Codeunit 8120615 (briAAT_TypeInteger). | No breaking changes. Low risk: internal logic change in DeleteAttributeValueMapping adds an early-exit guard for temporary records. Deprecated TypeHelper.GetCultureName() replaced — no impact on external integrations. |
Bugs
No bug fixed in this release.
Events
No event added or updated in this release.