---
title: "Codeunit 5986 Serv-Amounts Mgt."
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/5986-serv-amounts-mgt/
type: codeunit
id: 5986
name: "Serv-Amounts Mgt."
app: "Base Application"
namespace: Microsoft.Service.Posting
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/5986-serv-amounts-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 5986 Serv-Amounts Mgt.

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/5986-serv-amounts-mgt/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Service.Posting |
| Versions | 17-28 |
| Source file | Service/Posting/ServAmountsMgt.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| Initialize | (Code[10]) | - | public | 17-28 | - | - |
| GetDimensions | (Integer, var Record Dimension Buffer) | - | public | 17-28 | - | - |
| Finalize | () | - | public | 17-28 | - | - |
| FillInvPostingBuffer | (var Record Invoice Post. Buffer, var Record Service Line, var Record Service Line, Record Service Header) | - | public | 17-25 | Pending 19.0 | Replaced by FillInvoicePostBuffer(). |
| DivideAmount | (Option, Decimal, var Record Service Header, var Record Service Line, var Record VAT Amount Line, var Record VAT Amount Line) | - | public | 17-28 | - | - |
| RoundAmount | (Decimal, var Record Service Header, var Record Service Line, var Record Service Line, var Record Service Line, var Record Service Line, var Record Service Line) | - | public | 17-28 | - | - |
| ReverseAmount | (var Record Service Line) | - | public | 17-28 | - | - |
| InvoiceRounding | (var Record Service Header, var Record Service Line, var Record Service Line, var Boolean, Boolean, Integer) | - | public | 17-28 | - | - |
| RoundingLineInserted | () | Boolean | public | 17-28 | - | - |
| GetRoundingLineNo | () | Integer | public | 17-28 | - | - |
| SumServiceLines | (var Record Service Header, Option, var Record Service Line, var Record Service Line, var Decimal, var Text[30], var Decimal, var Decimal, var Decimal) | - | public | 17-28 | - | - |
| SumServiceLinesTemp | (var Record Service Header, var Record Service Line, Option, var Record Service Line, var Record Service Line, var Decimal, var Text[30], var Decimal, var Decimal, var Decimal) | - | public | 17-28 | - | - |
| GetServiceLines | (var Record Service Header, var Record Service Line, Option) | - | public | 17-28 | - | - |
| MAX | (Integer, Integer) | Integer | public | 17-28 | - | - |
| GetLastLineNo | (Record Service Line) | Integer | public | 17-28 | - | - |
| SetSuppressCommit | (Boolean) | - | public | 17-28 | - | - |
| AmountsDifferByMoreThanRoundingPrecision | (Decimal, Decimal, Decimal) | Boolean | public | 17-28 | - | - |
| FillInvoicePostBuffer | (var Record Invoice Post. Buffer, var Record Service Line, var Record Service Line, Record Service Header) | - | public | 19-25 | Pending 20.0 | Replaced by new implementation in ServicePostInvoice codeunit |
| RunOnAfterUpdateInvoiceRounding | (Record Service Header, var Record Service Line, var Record Service Line, Boolean, var Integer, var Boolean) | - | internal | 27-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAfterDivideAmount | (var Record Service Header, var Record Service Line, Option, Decimal, var Record VAT Amount Line, var Record VAT Amount Line) | 17-28 | - | - |
| Integration event | OnAfterFillInvoicePostBuffer | (var Record Invoice Post. Buffer, Record Service Line, var Record Invoice Post. Buffer, Boolean) | 17 | - | - |
| Integration event | OnAfterIncrAmount | (var Record Service Line, Record Service Line) | 17-28 | - | - |
| Integration event | OnAfterReverseAmount | (var Record Service Line) | 17-28 | - | - |
| Integration event | OnAfterUpdateInvPostBuffer | (var Record Invoice Post. Buffer) | 17-18 | - | - |
| Integration event | OnBeforeFillInvPostingBuffer | (var Record Invoice Post. Buffer, var Record Service Line, var Record Service Line, Record Service Header, var Boolean) | 17-26 | Pending 19.0 | Replaced by event OnBeforeFillInvoicePostBuffer(). |
| Integration event | OnBeforeDivideAmount | (var Record Service Header, var Record Service Line, Option, Decimal, var Record VAT Amount Line, var Record VAT Amount Line) | 17-28 | - | - |
| Integration event | OnBeforeInvoiceRoundingAmount | (var Record Service Header, var Decimal, Boolean, var Decimal, Boolean) | 17-28 | - | - |
| Integration event | OnBeforeRoundAmount | (var Record Service Header, var Record Service Line, Decimal) | 17-28 | - | - |
| Integration event | OnBeforeUpdateInvPostBuffer | (var Record Invoice Post. Buffer) | 17-26 | Pending 20.0 | Replaced by new implementation event in codeunit ServicePostInvoice |
| Integration event | OnRoundAmountOnBeforeIncrAmount | (var Record Service Line, Record Service Line, Record Service Line, Date, Boolean) | 17-28 | - | - |
| Integration event | OnSumServiceLines2OnBeforeSetTypeFilters | (var Record Service Line, Record Service Header, Option, var Boolean) | 17-28 | - | - |
| Integration event | OnAfterFillInvoicePostBuffer | (var Record Invoice Post. Buffer, Record Service Line, var Record Invoice Post. Buffer, Boolean, Record Service Line) | 18-26 | Pending 20.0 | Replaced by new implementation event in codeunit ServicePostInvoice |
| Integration event | OnBeforeInvPostingBufferCalcInvoiceDiscountAmount | (var Record Invoice Post. Buffer, var Record Service Line, var Record Service Line, Record Service Header, var Boolean) | 18-26 | Pending 20.0 | Replaced by new implementation event in codeunit ServicePostInvoice |
| Integration event | OnBeforeInvPostingBufferCalcLineDiscountAmount | (var Record Invoice Post. Buffer, var Record Service Line, var Record Service Line, Record Service Header, var Boolean) | 18-26 | Pending 20.0 | Replaced by new implementation event in codeunit ServicePostInvoice |
| Integration event | OnAfterFillInvoicePostBufferProcedure | (var Record Invoice Post. Buffer, Record Service Line, var Record Invoice Post. Buffer, Boolean, Record Service Line) | 19-26 | Pending 20.0 | Replaced by new implementation event in codeunit ServicePostInvoice |
| Integration event | OnAfterUpdateInvPostBuffer | (var Record Invoice Post. Buffer, var Record Invoice Post. Buffer) | 19-26 | Pending 20.0 | Replaced by new implementation event in codeunit ServicePostInvoice |
| Integration event | OnBeforeFillInvoicePostBuffer | (var Record Invoice Post. Buffer, var Record Service Line, var Record Service Line, Record Service Header, var Boolean) | 19-26 | Pending 20.0 | Replaced by new implementation event in codeunit ServicePostInvoice |
| Integration event | OnDivideAmountOnAfterCalcLineAmountExpected | (var Record Service Line, var Decimal, var Decimal) | 20-28 | - | - |
| Integration event | OnInvoiceRoundingAmountOnBeforeCheckUseTempData | (var Record Service Header, var Record Service Line) | 23-28 | - | - |
| Integration event | OnInvoiceRoundingAmountOnAfterCheckUseTempData | (var Record Service Header, var Record Service Line) | 23-28 | - | - |
| Integration event | OnSumServiceLines2OnBeforeInvoiceRounding | (var Record Service Header, var Record Service Line, var Record Service Line, var Record Service Line, Option, var Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnAfterInvoiceRounding | (Record Service Header, var Record Service Line, var Record Service Line, Boolean, Decimal, Record Currency, var Integer, var Boolean, var Boolean, var Integer) | 25-28 | - | - |
| Integration event | OnDivideAmountOnBeforeTempVATAmountLineRemainderModify | (var Record Service Line, var Record Service Header, var Record Currency, var Record VAT Amount Line, var Record VAT Amount Line) | 26-28 | - | - |
| Integration event | OnRoundAmountOnBeforeCalculateLCYAmounts | (var Record Service Line, var Record Service Line, Record Service Header, Record Service Line, Record Service Line, var Record Service Line, var Boolean) | 27-28 | - | - |
| Integration event | OnAfterUpdateInvoiceRounding | (Record Service Header, var Record Service Line, var Record Service Line, Record Currency, Boolean, var Integer, var Boolean, var Boolean, var Integer) | 27-28 | - | - |
| Integration event | OnDivideAmountOnSalesTaxCalculation | (var Record Service Line, Decimal, Option, Record Currency) | 28 | - | - |
| Integration event | OnDivideAmountOnAfterGetTempVATAmountLine | (var Record Service Line, var Record VAT Amount Line) | 28 | - | - |
| Integration event | OnAfterInitialize | () | 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.
