---
title: "Codeunit 7000 Sales Price Calc. Mgt."
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/7000-sales-price-calc-mgt/
type: codeunit
id: 7000
name: "Sales Price Calc. Mgt."
app: "Base Application"
namespace: Microsoft.Sales.Pricing
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/7000-sales-price-calc-mgt/source/29/"
checked: 2026-09-20
subject: "Microsoft Dynamics 365 Business Central"
license: "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link."
---

# Codeunit 7000 Sales Price Calc. Mgt.

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/7000-sales-price-calc-mgt/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Sales.Pricing |
| Versions | 17-28 |
| Source file | Sales/Pricing/SalesPriceCalcMgt.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| FindSalesLinePrice | (Record Sales Header, var Record Sales Line, Integer) | - | public | 17-28 | - | - |
| FindItemJnlLinePrice | (var Record Item Journal Line, Integer) | - | public | 17-28 | - | - |
| FindServLinePrice | (Record Service Header, var Record Service Line, Integer) | - | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| FindSalesLineLineDisc | (Record Sales Header, var Record Sales Line) | - | public | 17-28 | - | - |
| FindServLineDisc | (Record Service Header, var Record Service Line) | - | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| FindStdItemJnlLinePrice | (var Record Standard Item Journal Line, Integer) | - | public | 17-28 | - | - |
| FindAnalysisReportPrice | (Code[20], Date) | Decimal | public | 17-28 | - | - |
| CalcBestUnitPrice | (var Record Sales Price) | - | public | 17-28 | - | - |
| CalcBestLineDisc | (var Record Sales Line Discount) | - | public | 17-28 | - | - |
| FindSalesPrice | (var Record Sales Price, Code[20], Code[20], Code[10], Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean) | - | public | 17-28 | - | - |
| FindSalesLineDisc | (var Record Sales Line Discount, Code[20], Code[20], Code[20], Code[20], Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean) | - | public | 17-28 | - | - |
| CopySalesPrice | (var Record Sales Price) | - | public | 17-28 | - | - |
| SetItem | (Code[20]) | - | public | 17-28 | - | - |
| SetResPrice | (Code[20], Code[10], Code[10]) | - | public | 17-28 | - | - |
| SetCurrency | (Code[10], Decimal, Date) | - | public | 17-28 | - | - |
| SetVAT | (Boolean, Decimal, Option, Code[20]) | - | public | 17-28 | - | - |
| SetUoM | (Decimal, Decimal) | - | public | 17-28 | - | - |
| SetLineDisc | (Decimal, Boolean, Boolean) | - | public | 17-28 | - | - |
| ConvertPriceToVAT | (Boolean, Code[20], Code[20], var Decimal) | - | public | 17-28 | - | - |
| ConvertPriceLCYToFCY | (Code[10], var Decimal) | - | public | 17-28 | - | - |
| GetSalesLinePrice | (Record Sales Header, var Record Sales Line) | - | public | 17-28 | - | - |
| GetSalesLineLineDisc | (Record Sales Header, var Record Sales Line) | - | public | 17-28 | - | - |
| SalesLinePriceExists | (var Record Sales Header, var Record Sales Line, Boolean) | Boolean | public | 17-28 | - | - |
| SalesLineLineDiscExists | (var Record Sales Header, var Record Sales Line, Boolean) | Boolean | public | 17-28 | - | - |
| GetServLinePrice | (Record Service Header, var Record Service Line) | - | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| GetServLineLineDisc | (Record Service Header, var Record Service Line) | - | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| ServLinePriceExists | (Record Service Header, var Record Service Line, Boolean) | Boolean | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| ServLineLineDiscExists | (Record Service Header, var Record Service Line, Boolean) | Boolean | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| ActivatedCampaignExists | (var Record Campaign Target Group, Code[20], Code[20], Code[20]) | Boolean | public | 17-28 | - | - |
| NoOfSalesLinePrice | (var Record Sales Header, var Record Sales Line, Boolean) | Integer | public | 17-28 | - | - |
| NoOfSalesLineLineDisc | (var Record Sales Header, var Record Sales Line, Boolean) | Integer | public | 17-28 | - | - |
| NoOfServLinePrice | (Record Service Header, var Record Service Line, Boolean) | Integer | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| NoOfServLineLineDisc | (Record Service Header, var Record Service Line, Boolean) | Integer | public | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| FindJobPlanningLinePrice | (var Record Job Planning Line, Integer) | - | public | 17-28 | - | - |
| JobPlanningLineFindJTPrice | (var Record Job Planning Line) | - | public | 17-28 | - | - |
| FindJobJnlLinePrice | (var Record Job Journal Line, Integer) | - | public | 17-28 | - | - |
| JobJnlLineFindJTPrice | (var Record Job Journal Line) | - | public | 17-28 | - | - |
| FindResPrice | (var Record Res. Journal Line) | - | public | 17-28 | - | - |
| SalesHeaderExchDate | (Record Sales Header) | Date | public | 18-28 | - | - |
| SalesHeaderStartDate | (var Record Sales Header, var Text[30]) | Date | public | 18-28 | - | - |
| ServHeaderExchDate | (Record Service Header) | Date | public | 18-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| ServHeaderStartDate | (Record Service Header, var Text[30]) | Date | public | 18-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| RunOnAfterCalcBestUnitPrice | (var Record Sales Price, var Record Sales Price) | - | internal | 28 | - | - |
| RunOnAfterCalcBestUnitPriceAsItemUnitPrice | (var Record Sales Price, var Record Item) | - | internal | 28 | - | - |
| RunOnAfterCalcLineAmount | (Record Sales Price, var Decimal, var Decimal) | - | internal | 28 | - | - |
| RunOnAfterFindSalesPrice | (var Record Sales Price, var Record Sales Price, Decimal, Decimal, Code[20], Code[20], Code[10], Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean) | - | internal | 28 | - | - |
| RunOnAfterFindSalesLineDisc | (var Record Sales Line Discount, Code[20], Code[20], Code[20], Code[20], Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean) | - | internal | 28 | - | - |
| RunOnAfterFindServLinePrice | (var Record Service Line, var Record Service Header, var Record Sales Price, var Record Resource Price, var Record Service Cost, Integer) | - | internal | 28 | - | - |
| RunOnAfterFindServLineResPrice | (var Record Service Line, var Record Resource Price, var Boolean, Integer, var Boolean) | - | internal | 28 | - | - |
| RunOnAfterFindServLineDisc | (var Record Service Line, var Record Service Header, var Record Sales Line Discount) | - | internal | 28 | - | - |
| RunOnAfterServLinePriceExists | (var Record Service Line) | - | internal | 28 | - | - |
| RunOnAfterServLineLineDiscExists | (var Record Service Line) | - | internal | 28 | - | - |
| RunOnBeforeCalcBestLineDisc | (var Record Sales Line Discount, Record Item, var Boolean, Decimal, Decimal) | - | internal | 28 | - | - |
| RunOnBeforeCalcBestUnitPrice | (var Record Sales Price, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeConvertPriceToVAT | (var Record VAT Posting Setup, var Decimal, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeCopySalesPriceToSalesPrice | (var Record Sales Price, var Record Sales Price, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeFindSalesPrice | (var Record Sales Price, var Record Sales Price, var Decimal, var Decimal, var Code[20], var Code[20], var Code[10], var Code[20], var Code[20], var Code[10], var Code[10], var Code[10], var Date, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeFindSalesLineDisc | (var Record Sales Line Discount, var Code[20], Code[20], var Code[20], var Code[20], var Code[20], var Code[20], var Code[10], var Code[10], var Code[10], var Date, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeFindServLinePrice | (var Record Service Line, Record Service Header, Integer, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeFindServLineDisc | (var Record Service Header, var Record Service Line, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeGetServLinePrice | (Record Service Header, var Record Service Line, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeGetServLineDisc | (var Record Service Header, var Record Service Line, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeNoOfServLineLineDisc | (var Record Service Header, var Record Service Line, Boolean, var Integer, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeNoOfServLinePrice | (var Record Service Header, var Record Service Line, Boolean, var Integer, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeServLinePriceExists | (var Record Service Line, var Record Service Header, var Record Sales Price, Boolean, var Boolean) | - | internal | 28 | - | - |
| RunOnBeforeServLineLineDiscExists | (var Record Service Line, var Record Service Header, var Record Sales Line Discount, Boolean, var Boolean) | - | internal | 28 | - | - |
| RunOnFindSalesLineDiscOnAfterSetFilters | (var Record Sales Line Discount) | - | internal | 28 | - | - |
| RunOnBeforeCalcBestUnitPriceConvertPrice | (var Record Sales Price, var Boolean, Record Item) | - | internal | 28 | - | - |
| RunOnCalcBestUnitPriceOnBeforeCalcBestUnitPriceConvertPrice | (var Record Sales Price, Decimal, var Boolean, var Record Item) | - | internal | 28 | - | - |
| RunOnSetResPriceOnAfterInit | (var Record Resource Price) | - | internal | 28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAfterCalcBestUnitPrice | (var Record Sales Price, var Record Sales Price) | 17-27 | - | - |
| Integration event | OnAfterCalcBestUnitPriceAsItemUnitPrice | (var Record Sales Price, var Record Item) | 17-28 | - | - |
| Integration event | OnAfterCalcLineAmount | (Record Sales Price, var Decimal) | 17-18 | - | - |
| Integration event | OnAfterCopyJobResPriceToJobJnlLine | (var Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnAfterFindItemJnlLinePrice | (var Record Item Journal Line, var Record Sales Price, Integer, Boolean) | 17-28 | - | - |
| Integration event | OnAfterFindJobJnlLineResPrice | (var Record Job Journal Line, var Record Resource Price) | 17-21 | - | - |
| Integration event | OnAfterFindJobJnlLineLineDisc | (var Record Job Journal Line, var Record Sales Line Discount) | 17-28 | - | - |
| Integration event | OnAfterFindJobPlanningLineLineDisc | (var Record Job Planning Line, var Record Sales Line Discount) | 17-28 | - | - |
| Integration event | OnAfterFindJobPlanningLineResPrice | (var Record Job Planning Line, var Record Resource Price) | 17-21 | - | - |
| Integration event | OnAfterFindStdItemJnlLinePrice | (var Record Standard Item Journal Line, var Record Sales Price, Integer) | 17-28 | - | - |
| Integration event | OnAfterFindSalesLinePrice | (var Record Sales Line, var Record Sales Header, var Record Sales Price, var Record Resource Price, Integer) | 17-18 | - | - |
| Integration event | OnAfterFindSalesLineLineDisc | (var Record Sales Line, var Record Sales Header, var Record Sales Line Discount) | 17-28 | - | - |
| Integration event | OnAfterFindSalesPrice | (var Record Sales Price, var Record Sales Price, Decimal, Decimal, Code[20], Code[20], Code[10], Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean) | 17-28 | - | - |
| Integration event | OnAfterFindSalesLineItemPrice | (var Record Sales Line, var Record Sales Price, var Boolean, Integer) | 17-28 | - | - |
| Integration event | OnAfterFindSalesLineResPrice | (var Record Sales Line, var Record Resource Price) | 17-24 | - | - |
| Integration event | OnAfterFindSalesLineDisc | (var Record Sales Line Discount, Code[20], Code[20], Code[20], Code[20], Code[20], Code[20], Code[10], Code[10], Code[10], Date, Boolean) | 17-28 | - | - |
| Integration event | OnAfterFindServLinePrice | (var Record Service Line, var Record Service Header, var Record Sales Price, var Record Resource Price, var Record Service Cost, Integer) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnAfterFindServLineResPrice | (var Record Service Line, var Record Resource Price) | 17-21 | - | - |
| Integration event | OnAfterFindServLineDisc | (var Record Service Line, var Record Service Header, var Record Sales Line Discount) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnAfterGetSalesLinePrice | (var Record Sales Header, var Record Sales Line, var Record Sales Price) | 17-28 | - | - |
| Integration event | OnAfterGetSalesLineLineDisc | (var Record Sales Line, var Record Sales Line Discount) | 17-28 | - | - |
| Integration event | OnAfterJobJnlLineFindJTPriceGLAccount | (var Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnAfterJobJnlLineFindJTPriceItem | (var Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnAfterJobJnlLineFindJTPriceResource | (var Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnAfterJobJnlLineLineDiscExists | (var Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnAfterJobPlanningLineLineDiscExists | (var Record Job Planning Line) | 17-28 | - | - |
| Integration event | OnAfterSalesLineLineDiscExists | (var Record Sales Line, var Record Sales Header, var Record Sales Line Discount, Boolean) | 17-28 | - | - |
| Integration event | OnAfterSalesLinePriceExists | (var Record Sales Line, var Record Sales Header, var Record Sales Price, Boolean) | 17-28 | - | - |
| Integration event | OnAfterServLinePriceExists | (var Record Service Line) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnAfterServLineLineDiscExists | (var Record Service Line) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnBeforeActivatedCampaignExists | (var Record Campaign Target Group, Code[20], Code[20], Code[20], var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeCalcBestLineDisc | (var Record Sales Line Discount, Record Item, var Boolean, Decimal, Decimal) | 17-28 | - | - |
| Integration event | OnBeforeCalcBestUnitPrice | (var Record Sales Price, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeConvertPriceToVAT | (var Record VAT Posting Setup) | 17 | - | - |
| Integration event | OnBeforeCopyJobItemPriceToJobJnlLine | (var Record Job Journal Line, Record Job Item Price, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeCopyJobItemPriceToJobPlanLine | (var Record Job Planning Line, Record Job Item Price, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeCopySalesPriceToSalesPrice | (var Record Sales Price, var Record Sales Price, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindAnalysisReportPrice | (Code[20], Date, var Decimal, var Boolean) | 17-24 | - | - |
| Integration event | OnBeforeFindItemJnlLinePrice | (var Record Item Journal Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindJobJnlLinePrice | (var Record Job Journal Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindJobPlanningLinePrice | (var Record Job Planning Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindJobJnlLineResPrice | (var Record Job Journal Line, var Record Resource Price) | 17-28 | - | - |
| Integration event | OnBeforeFindSalesPrice | (var Record Sales Price, var Record Sales Price, var Decimal, var Decimal, var Code[20], var Code[20], var Code[10], var Code[20], var Code[20], var Code[10], var Code[10], var Code[10], var Date, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindSalesLinePrice | (var Record Sales Line, Record Sales Header, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindSalesLineDisc | (var Record Sales Line Discount, var Code[20], Code[20], var Code[20], var Code[20], var Code[20], var Code[20], var Code[10], var Code[10], var Code[10], var Date, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindSalesLineLineDisc | (var Record Sales Line, var Record Sales Header, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeFindServLinePrice | (var Record Service Line, Record Service Header, Integer, var Boolean) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnBeforeFindServLineDisc | (var Record Service Header, var Record Service Line, var Boolean) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnBeforeFindStdItemJnlLinePrice | (var Record Standard Item Journal Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeGetSalesLinePrice | (var Record Sales Header, var Record Sales Line, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeGetSalesLineLineDisc | (var Record Sales Header, var Record Sales Line, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeGetServLinePrice | (Record Service Header, var Record Service Line, var Boolean) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnBeforeGetServLineDisc | (var Record Service Header, var Record Service Line, var Boolean) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnBeforeJobJnlLineLineDiscExists | (var Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnBeforeJobPlanningLineLineDiscExists | (var Record Job Planning Line) | 17-28 | - | - |
| Integration event | OnBeforeJobPlanningLineFindJTPrice | (var Record Job Planning Line, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeNoOfSalesLineLineDisc | (var Record Sales Header, var Record Sales Line, Boolean, var Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeNoOfSalesLinePrice | (var Record Sales Header, var Record Sales Line, Boolean, var Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeNoOfServLineLineDisc | (var Record Service Header, var Record Service Line, Boolean, var Integer, var Boolean) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnBeforeNoOfServLinePrice | (var Record Service Header, var Record Service Line, Boolean, var Integer, var Boolean) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnBeforeSalesLineLineDiscExists | (var Record Sales Line, var Record Sales Header, var Record Sales Line Discount, Date, Decimal, Decimal, Boolean, var Boolean) | 17-27 | - | - |
| Integration event | OnBeforeSalesLinePriceExists | (var Record Sales Line, var Record Sales Header, var Record Sales Price, Record Currency, Decimal, Date, Decimal, Decimal, Boolean, var Boolean) | 17-27 | - | - |
| Integration event | OnBeforeServLinePriceExists | (var Record Service Line, var Record Service Header, var Record Sales Price, Boolean, var Boolean) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnBeforeServLineLineDiscExists | (var Record Service Line, var Record Service Header, var Record Sales Line Discount, Boolean, var Boolean) | 17-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnGetCustNoForSalesHeader | (var Record Sales Header, var Code[20]) | 17-28 | - | - |
| Integration event | OnFindJobJnlLinePriceOnBeforeJobJnlLineFindJTPrice | (var Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnFindSalesLineDiscOnAfterSetFilters | (var Record Sales Line Discount) | 17-28 | - | - |
| Integration event | OnFindSalesLineLineDiscOnBeforeCalcLineDisc | (var Record Sales Header, Record Sales Line, var Record Sales Line Discount, Decimal, Decimal, var Boolean) | 17-27 | - | - |
| Integration event | OnJobJnlLineFindJTPriceOnAfterSetJobItemPriceFilters | (var Record Job Item Price, Record Job Journal Line) | 17-28 | - | - |
| Integration event | OnJobPlanningLineFindJTPriceOnAfterSetJobGLAccPriceFilters | (var Record Job G/L Account Price, Record Job Planning Line) | 17-28 | - | - |
| Integration event | OnJobPlanningLineFindJTPriceOnAfterSetJobItemPriceFilters | (var Record Job Item Price, Record Job Planning Line) | 17-28 | - | - |
| Integration event | OnJobPlanningLineFindJTPriceOnAfterSetJobResPriceFilters | (var Record Job Resource Price, Record Job Planning Line) | 17-28 | - | - |
| Integration event | OnFindJobPlanningLinePriceOnBeforeJobPlanningLineFindJTPrice | (var Record Job Planning Line, var Record Resource Price) | 17-28 | - | - |
| Integration event | OnFindSalesLinePriceOnAfterSetResPrice | (var Record Sales Line, var Record Resource Price) | 17-28 | - | - |
| Integration event | OnBeforeConvertPriceToVAT | (var Record VAT Posting Setup, var Decimal, var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeSalesHeaderStartDate | (var Record Sales Header, var Text[30], var Date, var Boolean) | 18-28 | - | - |
| Integration event | OnBeforeSalesLinePriceExistsProcedure | (var Record Sales Header, var Record Sales Line, Boolean, Record Sales Price, var Boolean, var Boolean) | 18-19 | - | - |
| Integration event | OnFindJobJnlLinePriceOnBeforeResourceGetJob | (var Record Job Journal Line, var Boolean) | 18-28 | - | - |
| Integration event | OnFindSalesLinePriceOnItemTypeOnAfterSetUnitPrice | (var Record Sales Header, var Record Sales Line, var Record Sales Price, Integer, Boolean) | 18-28 | - | - |
| Integration event | OnBeforeCalcBestUnitPriceConvertPrice | (var Record Sales Price, var Boolean, Record Item) | 18-28 | - | - |
| Integration event | OnCalcBestUnitPriceOnBeforeCalcBestUnitPriceConvertPrice | (var Record Sales Price, Decimal, var Boolean) | 18-24 | - | - |
| Integration event | OnAfterCalcLineAmount | (Record Sales Price, var Decimal, var Decimal) | 19-28 | - | - |
| Integration event | OnAfterFindSalesLinePrice | (var Record Sales Line, var Record Sales Header, var Record Sales Price, var Record Resource Price, Integer, Boolean) | 19-27 | - | - |
| Integration event | OnAfterSalesLinePriceExistsProcedure | (var Record Sales Header, var Record Sales Line, Record Resource, var Text[30], var Boolean, var Boolean) | 20-28 | - | - |
| Integration event | OnBeforeSalesLinePriceExistsProcedure | (var Record Sales Header, var Record Sales Line, Boolean, var Record Sales Price, var Boolean, var Boolean) | 20-28 | - | - |
| Integration event | OnFindSalesLinePriceOnAfterSetLineDisc | (var Record Sales Line) | 20-27 | - | - |
| Integration event | OnAfterFindJobJnlLineResPrice | (var Record Job Journal Line, var Record Resource Price, Integer, var Boolean) | 22-28 | - | - |
| Integration event | OnAfterFindJobPlanningLineResPrice | (var Record Job Planning Line, var Record Resource Price, Integer, var Boolean, var Boolean) | 22-28 | - | - |
| Integration event | OnAfterFindServLineResPrice | (var Record Service Line, var Record Resource Price, var Boolean, Integer, var Boolean) | 22-28 | Pending 28.0 | Moved to codeunit ServPriceCalcMgt |
| Integration event | OnSetResPriceOnAfterInit | (var Record Resource Price) | 23-28 | - | - |
| Integration event | OnFindSalesLinePriceOnCalcBestUnitPrice | (Record Sales Line, var Record Sales Price) | 23-28 | - | - |
| Integration event | OnBeforeValidateLineDiscountOnSalesLine | (var Record Sales Line, var Record Sales Line Discount, var Boolean) | 24-28 | - | - |
| Integration event | OnAfterFindSalesLineResPrice | (var Record Sales Line, var Record Resource Price, Integer) | 25-28 | - | - |
| Integration event | OnBeforeFindAnalysisReportPrice | (Code[20], Date, var Decimal, var Boolean, var Boolean) | 25-28 | - | - |
| Integration event | OnCalcBestUnitPriceOnBeforeCalcBestUnitPriceConvertPrice | (var Record Sales Price, Decimal, var Boolean, var Record Item) | 25-27 | - | - |
| Integration event | OnAfterCalcBestUnitPrice | (var Record Sales Price, var Record Sales Price, Boolean) | 28 | - | - |
| Integration event | OnAfterFindSalesLinePrice | (var Record Sales Line, var Record Sales Header, var Record Sales Price, var Record Resource Price, Integer, var Boolean, Decimal, Decimal, Decimal, Boolean, Boolean, Boolean, Code[20], Option, Decimal, Decimal) | 28 | - | - |
| Integration event | OnBeforeCopySalesLineDiscToSalesLineDisc | (var Record Sales Line Discount, var Record Sales Line Discount, var Boolean) | 28 | - | - |
| Integration event | OnBeforeSalesLineLineDiscExists | (var Record Sales Line, var Record Sales Header, var Record Sales Line Discount, Date, Decimal, Decimal, Boolean, var Boolean, Codeunit Sales Price Calc. Mgt.) | 28 | - | - |
| Integration event | OnBeforeSalesLinePriceExists | (var Record Sales Line, var Record Sales Header, var Record Sales Price, Record Currency, Decimal, Date, Decimal, Decimal, Boolean, var Boolean, Codeunit Sales Price Calc. Mgt.) | 28 | - | - |
| Integration event | OnFindSalesLineDiscOnAfterCopyItemDiscGroup | (var Record Sales Line Discount, var Record Sales Line Discount) | 28 | - | - |
| Integration event | OnFindSalesLineLineDiscOnBeforeCalcLineDisc | (var Record Sales Header, Record Sales Line, var Record Sales Line Discount, var Decimal, var Decimal, var Boolean) | 28 | - | - |
| Integration event | OnFindSalesLinePriceOnAfterSetLineDisc | (var Record Sales Line, var Decimal, var Decimal) | 28 | - | - |
| Integration event | OnCalcBestUnitPriceOnBeforeCalcBestUnitPriceConvertPrice | (var Record Sales Price, Decimal, var Boolean, var Record Item, Decimal, var Record Sales Price, var Boolean, Option, Boolean, Decimal, Boolean, Date, Decimal, Record Currency, Decimal, Code[20]) | 28 | - | - |

## Source

Symbols: Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972, https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json, highest build per major on 2026-09-20.
AL source 29: https://github.com/microsoft/BCApps, MIT, releases/29.x at a66254c3b8b5bb1cea290dc8f9d097aec4381153.

Jonas Paprotka, 2026-09-20.
