---
title: "Table 5964 Service Contract Line"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/table/5964-service-contract-line/
type: table
id: 5964
name: "Service Contract Line"
app: "Base Application"
namespace: Microsoft.Service.Contract
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/table/5964-service-contract-line/source/29/"
checked: 2026-09-20
subject: "Microsoft Dynamics 365 Business Central"
license: "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link."
---

# Table 5964 Service Contract Line

Jonas Paprotka, https://jonas-paprotka.de/ref/table/5964-service-contract-line/

| | |
| --- | --- |
| App | Base Application |
| Namespace | Microsoft.Service.Contract |
| Versions | 17-28 |
| Source file | Service/Contract/ServiceContractLine.Table.al |

## Fields

| Id | Name | Type | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| 1 | Contract Type | Enum Service Contract Type | 17-28 | - | - |
| 2 | Contract No. | Code[20] | 17-28 | - | - |
| 3 | Line No. | Integer | 17-28 | - | - |
| 4 | Contract Status | Enum Service Contract Status | 17-28 | - | - |
| 5 | Service Item No. | Code[20] | 17-28 | - | - |
| 6 | Description | Text[100] | 17-28 | - | - |
| 7 | Serial No. | Code[50] | 17-28 | - | - |
| 8 | Service Item Group Code | Code[10] | 17-28 | - | - |
| 9 | Customer No. | Code[20] | 17-28 | - | - |
| 10 | Ship-to Code | Code[10] | 17-28 | - | - |
| 11 | Item No. | Code[20] | 17-28 | - | - |
| 12 | Unit of Measure Code | Code[10] | 17-28 | - | - |
| 13 | Response Time (Hours) | Decimal | 17-28 | - | - |
| 14 | Last Planned Service Date | Date | 17-28 | - | - |
| 15 | Next Planned Service Date | Date | 17-28 | - | - |
| 16 | Last Service Date | Date | 17-28 | - | - |
| 17 | Last Preventive Maint. Date | Date | 17-28 | - | - |
| 18 | Invoiced to Date | Date | 17-28 | - | - |
| 19 | Credit Memo Date | Date | 17-28 | - | - |
| 20 | Contract Expiration Date | Date | 17-28 | - | - |
| 21 | Service Period | DateFormula | 17-28 | - | - |
| 22 | Line Value | Decimal | 17-28 | - | - |
| 23 | Line Discount % | Decimal | 17-28 | - | - |
| 24 | Line Amount | Decimal | 17-28 | - | - |
| 28 | Variant Code | Code[10] | 17-28 | - | - |
| 29 | Starting Date | Date | 17-28 | - | - |
| 30 | New Line | Boolean | 17-28 | - | - |
| 31 | Credited | Boolean | 17-28 | - | - |
| 32 | Line Cost | Decimal | 17-28 | - | - |
| 33 | Line Discount Amount | Decimal | 17-28 | - | - |
| 34 | Profit | Decimal | 17-28 | - | - |

## Keys

| Name | Fields | Versions |
| --- | --- | --- |
| Key1, clustered | Contract Type, Contract No., Line No. | 17-28 |
| Key2 | Contract No., Line No., Contract Type | 17-28 |
| Key3 | Service Item No., Contract Status | 17-28 |
| Key4 | Contract Type, Contract No., Credited, New Line | 17-28 |
| Key5 | Customer No., Ship-to Code | 17-28 |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| SetupNewLine | () | - | public | 17-28 | - | - |
| CalculateNextServiceVisit | () | - | public | 17-28 | - | - |
| UpdateContractAnnualAmount | (Boolean) | - | public | 17-28 | - | - |
| HideDialogBox | (Boolean) | - | public | 17-28 | - | - |
| TestStatusOpen | () | - | public | 17-28 | - | - |
| GetStatusCheckSuspended | () | Boolean | public | 17-28 | - | - |
| SuspendStatusCheck | (Boolean) | - | public | 17-28 | - | - |
| ShowComments | () | - | public | 17-28 | - | - |
| ValidateServicePeriod | (Date) | - | public | 17-28 | - | - |
| CreditMemoBaseExists | () | Boolean | public | 17-28 | - | - |
| LogContractLineChanges | (Record Service Contract Line) | - | public | 17-28 | - | - |
| SelectMultipleServiceItems | () | - | public | 24-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAfterCalculateNextServiceVisit | (Record Service Contract Header, Record Service Mgt. Setup) | 17-28 | - | - |
| Integration event | OnAfterGetServiceItem | (Record Service Contract Line, var Record Service Item) | 17-28 | - | - |
| Integration event | OnAfterSetupNewLine | (var Record Service Contract Line, Record Service Contract Header) | 17-28 | - | - |
| Integration event | OnAfterTestStatusOpen | (Record Service Contract Line, Integer) | 17-28 | - | - |
| Integration event | OnBeforeCheckServContractHeader | (Record Service Contract Header, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeValidateContractExpirationDate | (var Record Service Contract Line, var Record Service Contract Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeValidateLineAmount | (var Record Service Contract Line, var Record Service Contract Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeValidateLineDiscountPercent | (var Record Service Contract Line, var Record Service Contract Line, Integer, var Boolean) | 17-28 | - | - |
| Integration event | OnCalculateOtherLineAmountsOnAfterSetFilters | (var Record Service Contract Line) | 17-28 | - | - |
| Integration event | OnValidateServiceItemNoOnBeforeCheckSameItemExist | (var Record Service Contract Line, var Boolean) | 17-28 | - | - |
| Integration event | OnValidateServiceItemNoOnBeforeCheckSameCustomer | (Record Service Item, var Record Service Contract Header, var Boolean) | 17-28 | - | - |
| Integration event | OnValidateServiceItemNoOnBeforeModify | (Record Service Item, Record Service Contract Header) | 17-28 | - | - |
| Integration event | OnBeforeCreditMemoBaseExists | (Record Service Contract Line, var Boolean, var Boolean) | 18-28 | - | - |
| Integration event | OnUpdateContractAnnualAmountOnAfterGetServContractHeader | (var Record Service Contract Line, Record Service Contract Header, var Boolean) | 18-28 | - | - |
| Integration event | OnValidateServiceItemNoOnAfterCalcServiceItemNoIsNotEmpty | (var Record Service Contract Line, var Boolean) | 18-21 | - | - |
| Integration event | OnValidateServiceItemNoOnAfterInit | (var Record Service Contract Line, Record Service Contract Line) | 18-28 | - | - |
| Integration event | OnAfterLogContractLineChanges | (var Record Service Contract Line, Record Service Contract Line) | 20-28 | - | - |
| Integration event | OnBeforeCheckCreditMemoDate | (var Record Service Contract Line, Record Service Contract Line, var Boolean) | 20-28 | - | - |
| Integration event | OnValidateServiceItemNoOnAfterServContractLineSetFiltersWithContractStatus | (var Record Service Contract Line, var Record Service Contract Line) | 20-28 | - | - |
| Integration event | OnValidateServiceItemNoOnAfterCalcServiceItemNoIsNotEmpty | (var Record Service Contract Line, var Boolean, Record Service Contract Line, var Boolean) | 22-28 | - | - |
| Integration event | OnValidateServiceItemNoOnBeforeOnValidate | (var Record Service Contract Line, Record Service Contract Line, var Boolean) | 22-28 | - | - |
| Integration event | OnValidateServiceItemNoOnBeforeCheckServContractHeaderStatus | (var Record Service Contract Line, Record Service Contract Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeSetupNewLine | (var Record Service Contract Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeCalculateNextServiceVisit | (var Record Service Contract Line, var Boolean) | 22-28 | - | - |
| Integration event | OnBeforeSelectMultipleServiceItems | (var Record Service Contract Line) | 24-28 | - | - |
| Integration event | OnAfterSelectMultipleServiceItems | (var Record Service Contract Line) | 24-28 | - | - |
| Integration event | OnBeforeAddServiceItems | (var Record Service Contract Line, Text, var Boolean) | 24-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.
