Advanced Price Management

Release: Advanced Price Management – 26.0.9600.61766

Description

This release delivers multiple improvements to the Price Analysis feature in Advanced Price Management. Key enhancements include a new option to skip zero-price lines during analysis calculation, automatic consolidation of duplicate analysis lines, and a critical fix for discount amount calculations. These changes improve clarity, accuracy, and usability of the Price Analysis module, especially relevant for Food & Beverage customers managing complex pricing structures with recurring sales lines, multiple units of measure, and tiered discounts.

User Stories

Title Description Setup Instructions Impact on previous version
[23608] – Price analysis: Consolidation of Duplicate Lines The Price Analysis feature now automatically detects and consolidates duplicate entries when multiple price records are strictly identical for the same item and pricing attributes (Item, Unit of Measure, Gross Price, Discount, Price Unit, etc.). Only one line is displayed when all attributes are identical, providing a cleaner and more readable view. Impacted objects: Table 8120277 (isaAPM_Analysis Header), Codeunit 8120278 (isaAPM_Analysis Price) – procedure HasDuplicateAnalysisLine. No specific setup required; deduplication is automatic during price calculation. No breaking change. Previously displayed duplicate lines will now be consolidated automatically. Existing analysis results may show fewer lines after recalculation.
[23773] – Add Skip 0 Price lines option on Create Price Analysis report A new boolean parameter “Skip Zero Price Lines” has been added to the Price Analysis calculation report request page. When enabled, analysis lines with a calculated gross unit price of zero are automatically excluded from results. The setting is persisted on the Price Analysis Header for reuse when triggering “Calculate Prices” from the Price Analysis Card. Impacted objects: Table 8120277 (field 312 “Skip Zero Price Lines”), Report 8120269 (isaAPM_CalcAnalysisPrice), Page 8120284 (isaAPM_Price Analysis Card), Codeunit 8120278 (isaAPM_Analysis Price). Enable the option on the report request page or programmatically via SetSkipZeroPriceLines. No breaking change. The new field defaults to false, preserving existing behavior.

Bugs

Title Description Impact on previous version
[23581] – Price analysis: The conversion of units of measure between the sales price list and recurring sales lines is not calculated correctly When a price analysis was calculated with recurring sales lines and items having multiple units of measure, the gross unit price differed from the sales order result. The root cause was that the quantity was not balanced with the sale unit of measure of the standard sales code. Fix: The analysis line is now created with the Standard Sales Code Unit of Measure, and when the price is calculated, the Standard Sales Code UoM is superseded by the Sales Price Unit of Measure Code, which is the relevant UoM for determining prices and discounts. Verified in Codeunit 8120278 (isaAPM_Analysis Price). Medium risk. Recalculated analysis lines may show different gross unit prices than before due to correct UoM conversion. Users should recalculate existing analyses to get accurate results.
[23612] – Price analysis: The results of the price analysis show quantities not defined in the prices, discounts, and recurring sales lines The price analysis displayed quantity entries that were not defined in the associated price lists, discount structures, or recurring sales lines. Fix: Refactored the GenerateAnalysisLine procedure into smaller helper procedures (BuildQtyListFromPriceConditions, AddQtyFromPriceBuffer, ConvertMinimumToQty, InsertAnalysisLinesForQtyList) to ensure only quantities explicitly defined in price conditions are generated. Added duplicate prevention checks before insertion. Verified in Codeunit 8120278. Low risk. Recalculated analyses may show fewer quantity lines, limited to those actually defined in price/discount/recurring line setups.
[23825] – Price analysis: The total discount amount is sometimes incorrect When analyzing price results (e.g., Quantity = 50), the Discount Global Amount showed the total line discount amount instead of the per-unit discount amount. For example, Discount Global Amount was 1.46 but the sum of individual discount levels was only 0.03. Fix: The Discount Global Amount is now calculated per sales unit of measure by dividing the Line Discount Amount by the Quantity. In the example: 1.46 / 50 = 0.029 (rounded), resulting in correct Net Unit Price = Gross Unit Price - Discount Total Amount. Verified in Codeunit 8120278 procedure UpdateAnalysisLineFromSalesLine. Medium breaking risk. The Discount Global Amount values will change for all recalculated analysis lines. Previously, values represented total line amounts; now they represent per-unit amounts. Users and integrations relying on the old Discount Global Amount semantics must be updated.

Events

No event added or updated in this release.

Previous