Advanced Price Management
Release: Advanced Price Management – 26.0.9599.61617
Description
This release introduces a comprehensive set of new Integration Events in the Advanced Price Management (APM) Excel Import/Export engine. These events enable Business Central developers to extend the standard APM Excel Import/Export functionality by adding custom columns, injecting custom data during export, extending import validation, reading custom field values from incoming Excel rows, and mapping those values into temporary and final APM tables. This is especially valuable for customers in the Food & Beverage industry who commonly extend APM pricing structures (price headers, price lines, discounts, fees, item substitutions, and free items) with custom fields specific to their business needs.
User Stories
| Title | Description | Setup Instructions | Impact on previous version |
|---|---|---|---|
| [23654] – Extend Excel Import/Export to Support Custom Fields via New Events | Introduces 42 new IntegrationEvents across two codeunits (isaAPM_ImportExportExcelHelper and isaAPM_ImportExportManagement) that allow developers to: add custom columns to Excel exports, inject custom data into those columns, extend import validation to accept custom columns, read custom field values from incoming Excel rows, and map those values into temporary and final APM records for price headers, price lines, price levels, discount levels, discount fee levels, grouped line discounts, free items, free item details, and item substitutions. |
No setup required. Developers subscribe to the new IntegrationEvents to extend Excel Import/Export behavior. Impacted objects: Codeunit 8120288 isaAPM_ImportExportExcelHelper, Codeunit 8120287 isaAPM_ImportExportManagement. |
No breaking changes. All changes are additive (new events only). Existing behavior is fully preserved. No migration required. |
Bugs
No bug fixed in this release.
Events
| Status | Type | Object Name | Event Name | Description |
|---|---|---|---|---|
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnBeforeWriteSheet | Enables subscribers to add custom columns and data to the Excel buffer before the price header sheet is written during export operations |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnAfterReadAdvancedPriceHeaderSheet | Enables subscribers to read additional custom field values from the Excel buffer after standard price header fields have been read during import |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnAfterReadLevelsExcelRow | Enables subscribers to read additional custom field values from the Excel buffer after standard level fields have been read from price, discount, and fee rows during import |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnAfterReadFreeItemExcelRow | Enables subscribers to read additional custom field values from the Excel buffer after standard free item fields have been read during import |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnAfterReadSubstitutionItemExcelRow | Enables subscribers to read additional custom field values from the Excel buffer after standard item substitution fields have been read during import |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnBeforeValidateAdvancedPriceHeaderSheetStructure | Enables subscribers to extend validation logic and accept custom columns in the price header sheet structure |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnBeforeValidatePriceLevelSheetStructure | Enables subscribers to extend validation logic and accept custom columns in the price level sheet structure |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnBeforeValidateDiscountLevelSheetStructure | Enables subscribers to extend validation logic and accept custom columns in the discount level sheet structure |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnBeforeValidateDiscountFeeLevelSheetStructure | Enables subscribers to extend validation logic and accept custom columns in the discount fee level sheet structure |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnBeforeValidateGroupedLineDiscountLevelSheetStructure | Enables subscribers to extend validation logic and accept custom columns in the grouped line discount sheet structure |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnBeforeValidateFreeItemSheetStructure | Enables subscribers to extend validation logic and accept custom columns in the free item sheet structure |
| New | IntegrationEvent | isaAPM_ImportExportExcelHelper | OnBeforeValidateItemSubstitutionSheetStructure | Enables subscribers to extend validation logic and accept custom columns in the item substitution sheet structure |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddPriceLevelExcelLine | Enables subscribers to add custom column data to the Excel buffer after a price level row has been exported |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddEmptyPriceLevelExcelLine | Enables subscribers to add custom column data to the Excel buffer when exporting a price line with no associated price levels |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddDiscountLevelExcelLine | Enables subscribers to add custom column data to the Excel buffer after a discount level row has been exported |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddEmptyDiscountLevelExcelLine | Enables subscribers to add custom column data to the Excel buffer when exporting a price line with no associated discount levels |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddDiscountFeeLevelExcelLine | Enables subscribers to add custom column data to the Excel buffer after a discount fee level row has been exported |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddEmptyDiscountFeeLevelExcelLine | Enables subscribers to add custom column data to the Excel buffer when exporting a price line with no associated discount fee levels |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddGroupedLineDiscountExcelLine | Enables subscribers to add custom column data to the Excel buffer after a grouped line discount row has been exported |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddEmptyGroupedLineDiscountExcelLine | Enables subscribers to add custom column data when exporting a price line with no associated grouped line discount levels |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddFreeItemExcelLine | Enables subscribers to add custom column data to the Excel buffer after a free item row has been exported |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddEmptyFreeItemExcelLine | Enables subscribers to add custom column data to the Excel buffer when exporting a price line with no associated free item records |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddSubstitutionExcelLine | Enables subscribers to add custom column data to the Excel buffer after an item substitution row has been exported |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnAfterAddEmptySubstitutionExcelLine | Enables subscribers to add custom column data when exporting a price line with no associated item substitution records |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforePriceHeaderInsert | Enables subscribers to read custom field values from Excel and populate temporary price header fields before insertion during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforePriceHeaderModify | Enables subscribers to transfer custom field values from temporary price header to the final price header record before modification |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeTempPriceLevelInsert | Enables subscribers to read custom field values from Excel and populate temporary price level fields before insertion during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeLevelPriceInsert | Enables subscribers to transfer custom field values from temporary price level to the final price level record before insertion |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeTempDiscountLevelInsert | Enables subscribers to read custom field values from Excel and populate temporary discount level fields before insertion during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeLevelDiscountInsert | Enables subscribers to transfer custom field values from temporary discount level to the final discount level record before insertion |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeTempDiscountFeeLevelInsert | Enables subscribers to read custom field values from Excel and populate temporary discount fee level fields before insertion during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeLevelDiscountFeeInsert | Enables subscribers to transfer custom field values from temporary discount fee level to the final discount fee level record before insertion |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeTempGroupedLineDiscountLevelInsert | Enables subscribers to read custom field values from Excel and populate temporary grouped line discount level fields before insertion during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeTempLevelGroupedLineDiscountInsert | Enables subscribers to transfer custom field values from temporary grouped line discount level to the final record during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeTempFreeItemInsert | Enables subscribers to read custom field values from Excel and populate temporary free item fields before insertion during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeTempFreeItemDetailsInsert | Enables subscribers to read custom field values from Excel and populate temporary free item detail fields before insertion during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeFreeItemInsert | Enables subscribers to transfer custom field values from temporary free item to the final free item record before insertion |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeFreeItemDetailsInsert | Enables subscribers to transfer custom field values from temporary free item details to the final free item details record before insertion |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeItemSubstitutionInsert | Enables subscribers to execute custom logic before the item substitution creation process begins during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeItemSubstitutionLevelInsert | Enables subscribers to transfer custom field values from temporary item substitution to the final item substitution record before insertion |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforeCreateTempPriceLineInsert | Enables subscribers to read custom field values from Excel and populate temporary price line fields before insertion during import |
| New | IntegrationEvent | isaAPM_ImportExportManagement | OnBeforePriceLineFromTempPriceLine | Enables subscribers to transfer custom field values from temporary price line to the final price line record before insertion |