---
id: object/table/5902
type: object
title: Table 5902 "Service Line"
summary: Table 5902 "Service Line" in Base Application (Microsoft.Service.Document). 156 fields, 117 public procedures, 193 events. Present since at least BC23, still in BC30, changed in BC24-28, BC30.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "30"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 965e05539ab01a8f0b8cbbbc000450fefd371df26681c9e4f0095ba7e53b252f
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Service/Document/ServiceLine.Table.al
    title: src/Layers/W1/BaseApp/Service/Document/ServiceLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/value-chain-howto-service
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/sustainability-management/sustainability-value-chain
  localizations:
    - localization/ca
    - localization/mx
    - localization/us
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/12290
object_type: table
object_id: 5902
name: Service Line
namespace: Microsoft.Service.Document
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "30"
source_major: "29"
obsolete: null
countries:
  - ca
  - mx
  - us
ms_search_form_ids: []
counts:
  fields: 156
  procedures: 381
  events: 193
  subscribers: 0
relations:
  out: 63
  referenced_by: 13
  pages: 9
  extended_by: 3
  event_subscribers: 18
  calls: 25
  called_by: 0
  implements: 0
---

# Table 5902 "Service Line"

> Table 5902 "Service Line" in Base Application (Microsoft.Service.Document). 156 fields, 117 public procedures, 193 events. Present since at least BC23, still in BC30, changed in BC24-28, BC30.

Base Application · Microsoft.Service.Document · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Service/Document/ServiceLine.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 5905 "Service Lines"](../page/5905.md) (1 Learn page), [Page 5934 "Service Invoice Subform"](../page/5934.md) (1), [Page 5936 "Service Credit Memo Subform"](../page/5936.md) (1), [Page 5966 "Service Quote Lines"](../page/5966.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Service Line |
| DataClassification | CustomerContent |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Document Type | Enum "Service Document Type" | Specifies the type of the service document associated with this line. | enum [Enum 5900 "Service Document Type"](../enum/5900.md) |
| 2 | Customer No. | Code[20] | Specifies the number of the customer who owns the items to be serviced under the service order. | TableRelation [Table 18 "Customer"](../table/18.md); not editable |
| 3 | Document No. | Code[20] | Specifies the service order number associated with this line. | TableRelation [Table 5900 "Service Header"](../table/5900.md) ("Service Header"."No." where("Document Type" = field("Document Type"))) |
| 4 | Line No. | Integer | Specifies the number of the line. |  |
| 5 | Type | Enum "Service Line Type" | Specifies the type of the service line. | enum [Enum 5902 "Service Line Type"](../enum/5902.md) |
| 6 | No. | Code[20] | Specifies the number of the involved entry or record, according to the specified number series. | TableRelation [Table 15 "G/L Account"](../table/15.md), [Table 27 "Item"](../table/27.md), [Table 7 "Standard Text"](../table/7.md) (if (Type = const(" ")) "Standard Text" else if (Type = const("G/L Account")) "G/L Account" else if (Type = const(Item), "Document Type" = filter(<> "Credit Memo")) Item where(Blocked = const(false), "Service Blocked" = const(false)) else if (Type = const(Item), "Document Type" = filter("Credit Memo"...) |
| 7 | Location Code | Code[10] | Specifies the inventory location from where the items on the line should be taken and where they should be registered. | TableRelation [Table 14 "Location"](../table/14.md) |
| 8 | Posting Group | Code[20] | Specifies the inventory posting group assigned to the item. | TableRelation [Table 94 "Inventory Posting Group"](../table/94.md) (if (Type = const(Item)) "Inventory Posting Group"); not editable |
| 11 | Description | Text[100] | Specifies the description of an item, resource, cost, or a standard text on the line. |  |
| 12 | Description 2 | Text[50] | Specifies information in addition to the description. |  |
| 13 | Unit of Measure | Text[50] | Specifies the name of the item or resource's unit of measure, such as piece or hour. |  |
| 15 | Quantity | Decimal | Specifies the number of item units, resource hours, cost on the service line. |  |
| 16 | Outstanding Quantity | Decimal | — | not editable |
| 17 | Qty. to Invoice | Decimal | Specifies the quantity of the items, resources, costs, or general ledger account payments, which should be invoiced. |  |
| 18 | Qty. to Ship | Decimal | Specifies the quantity of items that remain to be shipped. |  |
| 22 | Unit Price | Decimal | Specifies the price of one unit of the item or resource. You can enter a price manually or have it entered according to the Price/Profit Calculation field on the related card. |  |
| 23 | Unit Cost (LCY) | Decimal | Specifies the cost, in LCY, of one unit of the item or resource on the line. <small>via [Page 5905 "Service Lines"](../page/5905.md)</small> |  |
| 25 | VAT % | Decimal | Specifies the VAT percentage used to calculate Amount Including VAT on this line. | not editable |
| 27 | Line Discount % | Decimal | Specifies the discount percentage that is granted for the item on the line. |  |
| 28 | Line Discount Amount | Decimal | Specifies the discount amount that is granted for the item on the line. |  |
| 29 | Amount | Decimal | — | not editable |
| 30 | Amount Including VAT | Decimal | Specifies the net amount, including VAT, for this line. | not editable |
| 32 | Allow Invoice Disc. | Boolean | Specifies if the invoice line is included when the invoice discount is calculated. |  |
| 34 | Gross Weight | Decimal | — |  |
| 35 | Net Weight | Decimal | — |  |
| 36 | Units per Parcel | Decimal | — |  |
| 37 | Unit Volume | Decimal | — |  |
| 38 | Appl.-to Item Entry | Integer | Specifies the number of the item ledger entry that the document or journal line is applied to. |  |
| 40 | Shortcut Dimension 1 Code | Code[20] | Specifies the code for Shortcut Dimension 1, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(1), Blocked = const(false))) |
| 41 | Shortcut Dimension 2 Code | Code[20] | Specifies the code for Shortcut Dimension 2, which is one of two global dimension codes that you set up in the General Ledger Setup window. | TableRelation [Table 349 "Dimension Value"](../table/349.md) ("Dimension Value".Code where("Global Dimension No." = const(2), Blocked = const(false))) |
| 42 | Customer Price Group | Code[10] | — | TableRelation [Table 6 "Customer Price Group"](../table/6.md) (Customer Price Group); not editable |
| 45 | Job No. | Code[20] | Specifies the number of the related project. | TableRelation Job."No." |
| 46 | Job Task No. | Code[20] | Specifies the number of the related project task. | TableRelation [Table 1001 "Job Task"](../table/1001.md) ("Job Task"."Job Task No." where("Job No." = field("Job No."))) |
| 47 | Job Line Type | Enum "Job Line Type" | Specifies the type of journal line that is created in the Project Planning Line table from this line. | enum [Enum 1002 "Job Line Type"](../enum/1002.md) |
| 52 | Work Type Code | Code[10] | Specifies a code for the type of work performed by the resource registered on this line. | TableRelation [Table 200 "Work Type"](../table/200.md) (Work Type) |
| 57 | Outstanding Amount | Decimal | — | not editable |
| 58 | Qty. Shipped Not Invoiced | Decimal | — | not editable |
| 59 | Shipped Not Invoiced | Decimal | — | not editable |
| 60 | Quantity Shipped | Decimal | Specifies how many units of the item on the line have been posted as shipped. | not editable |
| 61 | Quantity Invoiced | Decimal | Specifies how many units of the item on the line have been posted as invoiced. | not editable |
| 63 | Shipment No. | Code[20] | Specifies the number of the correspondent shipment in the posted shipment list. |  |
| 64 | Shipment Line No. | Integer | — | not editable |
| 65 | Order No. | Code[20] | — |  |
| 68 | Bill-to Customer No. | Code[20] | Specifies the number of the customer that you send or sent the invoice or credit memo to. | TableRelation [Table 18 "Customer"](../table/18.md); not editable |
| 69 | Inv. Discount Amount | Decimal | Specifies the total calculated invoice discount amount for the line. | not editable |
| 74 | Gen. Bus. Posting Group | Code[20] | Specifies the vendor's or customer's trade type to link transactions made for this business partner with the appropriate general ledger account according to the general posting setup. | TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md) (Gen. Business Posting Group) |
| 75 | Gen. Prod. Posting Group | Code[20] | Specifies the item's product type to link transactions made for this item with the appropriate general ledger account according to the general posting setup. | TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md) (Gen. Product Posting Group) |
| 77 | VAT Calculation Type | Enum "Tax Calculation Type" | — | enum [Enum 254 "Tax Calculation Type"](../enum/254.md); not editable |
| 78 | Transaction Type | Code[10] | — | TableRelation [Table 258 "Transaction Type"](../table/258.md) (Transaction Type) |
| 79 | Transport Method | Code[10] | — | TableRelation [Table 259 "Transport Method"](../table/259.md) (Transport Method) |
| 80 | Attached to Line No. | Integer | — | TableRelation [Table 5902 "Service Line"](../table/5902.md) ("Service Line"."Line No." where("Document Type" = field("Document Type"), "Document No." = field("Document No."))); not editable |
| 81 | Exit Point | Code[10] | — | TableRelation [Table 282 "Entry/Exit Point"](../table/282.md) (Entry/Exit Point) |
| 82 | Area | Code[10] | — | TableRelation [Table 284 "Area"](../table/284.md) |
| 83 | Transaction Specification | Code[10] | — | TableRelation [Table 285 "Transaction Specification"](../table/285.md) (Transaction Specification) |
| 85 | Tax Area Code | Code[20] | Specifies the tax area that is used to calculate and post sales tax. | TableRelation [Table 318 "Tax Area"](../table/318.md) (Tax Area) |
| 86 | Tax Liable | Boolean | Specifies if the customer or vendor is liable for sales tax. |  |
| 87 | Tax Group Code | Code[20] | Specifies the tax group that is used to calculate and post sales tax. | TableRelation [Table 321 "Tax Group"](../table/321.md) (Tax Group) |
| 88 | VAT Clause Code | Code[20] | — | TableRelation [Table 560 "VAT Clause"](../table/560.md) (VAT Clause) |
| 89 | VAT Bus. Posting Group | Code[20] | Specifies the VAT specification of the involved customer or vendor to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup. | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group) |
| 90 | VAT Prod. Posting Group | Code[20] | Specifies the VAT specification of the involved item or resource to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup. | TableRelation [Table 324 "VAT Product Posting Group"](../table/324.md) (VAT Product Posting Group) |
| 91 | Currency Code | Code[10] | Specifies the currency code for the amounts on this line. | TableRelation [Table 4 "Currency"](../table/4.md); not editable |
| 92 | Outstanding Amount (LCY) | Decimal | — | not editable |
| 93 | Shipped Not Invoiced (LCY) | Decimal | — | not editable |
| 95 | Reserved Quantity | Decimal | Specifies how many item units on this line have been reserved. | FlowField: - sum("Reservation Entry".Quantity where("Source ID" = field("Document No."), "Source Ref. No." = field("Line No."), "Source Type" = const(5902), #pragma warning disable AL0603 "Source Subtype" = field("Document Type"), #pragma warning restore "Reservation Status" = const(Reservation))); not editable |
| 96 | Reserve | Enum "Reserve Method" | Specifies whether a reservation can be made for items on this line. | enum [Enum 100 "Reserve Method"](../enum/100.md) |
| 99 | VAT Base Amount | Decimal | Specifies the amount that serves as a base for calculating the Amount Including VAT field. | not editable |
| 100 | Unit Cost | Decimal | — | not editable |
| 101 | System-Created Entry | Boolean | — | not editable |
| 103 | Line Amount | Decimal | Specifies the net amount, excluding any invoice discount amount, that must be paid for products on the line. |  |
| 104 | VAT Difference | Decimal | — | not editable |
| 105 | Inv. Disc. Amount to Invoice | Decimal | — | not editable |
| 106 | VAT Identifier | Code[20] | — | not editable |
| 145 | Pmt. Discount Amount | Decimal | — |  |
| 480 | Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable |
| 950 | Time Sheet No. | Code[20] | — | TableRelation [Table 950 "Time Sheet Header"](../table/950.md) (Time Sheet Header) |
| 951 | Time Sheet Line No. | Integer | — | TableRelation [Table 951 "Time Sheet Line"](../table/951.md) ("Time Sheet Line"."Line No." where("Time Sheet No." = field("Time Sheet No."))) |
| 952 | Time Sheet Date | Date | — | TableRelation [Table 952 "Time Sheet Detail"](../table/952.md) ("Time Sheet Detail".Date where("Time Sheet No." = field("Time Sheet No."), "Time Sheet Line No." = field("Time Sheet Line No."))) |
| 1019 | Job Planning Line No. | Integer | Specifies the project planning line number associated with this line. This establishes a link that can be used to calculate actual usage. |  |
| 1030 | Job Remaining Qty. | Decimal | Specifies the quantity that remains to complete a project. |  |
| 1031 | Job Remaining Qty. (Base) | Decimal | Project Remaining Qty. (Base) <small>caption</small> |  |
| 1032 | Job Remaining Total Cost | Decimal | Specifies the remaining total cost, as the sum of costs from project planning lines associated with the order. | not editable |
| 1033 | Job Remaining Total Cost (LCY) | Decimal | Specifies the remaining total cost for the project planning line associated with the service order. <small>via [Page 5905 "Service Lines"](../page/5905.md)</small> | not editable |
| 1034 | Job Remaining Line Amount | Decimal | Specifies the net amount of the project planning line. | not editable |
| 5402 | Variant Code | Code[10] | Specifies the variant of the item on the line. | TableRelation [Table 5401 "Item Variant"](../table/5401.md) (if (Type = const(Item), "Document Type" = filter(<> "Credit Memo")) "Item Variant".Code where("Item No." = field("No."), Blocked = const(false), "Service Blocked" = const(false)) else if (Type = const(Item), "Document Type" = filter("Credit Memo")) "Item Variant".Code where("Item No." = field("No.")...) |
| 5403 | Bin Code | Code[20] | Specifies the bin where the items are picked or put away. | TableRelation [Table 7302 "Bin Content"](../table/7302.md) (if ("Document Type" = filter(Order \| Invoice), "Location Code" = filter(<> ''), Type = const(Item)) "Bin Content"."Bin Code" where("Location Code" = field("Location Code"), "Item No." = field("No."), "Variant Code" = field("Variant Code")) else if ("Document Type" = filter("Credit Memo"), "Location ...) |
| 5404 | Qty. per Unit of Measure | Decimal | — | not editable |
| 5405 | Planned | Boolean | — | not editable |
| 5407 | Unit of Measure Code | Code[10] | Specifies how each unit of the item or resource is measured, such as in pieces or hours. By default, the value in the Base Unit of Measure field on the item or resource card is inserted. | TableRelation [Table 204 "Unit of Measure"](../table/204.md), [Table 205 "Resource Unit of Measure"](../table/205.md), [Table 5404 "Item Unit of Measure"](../table/5404.md) (if (Type = const(Item)) "Item Unit of Measure".Code where("Item No." = field("No.")) else if (Type = const(Resource)) "Resource Unit of Measure".Code where("Resource No." = field("No.")) else "Unit of Measure") |
| 5408 | Qty. Rounding Precision | Decimal | — | not editable |
| 5409 | Qty. Rounding Precision (Base) | Decimal | — | not editable |
| 5415 | Quantity (Base) | Decimal | Specifies the quantity of items, resource time, costs, or general ledger account payments, expressed in base units of measure. <small>via [Page 5904 "Service Line List"](../page/5904.md)</small> |  |
| 5416 | Outstanding Qty. (Base) | Decimal | Specifies the quantity of registered items, resource time, costs, or payments to the general ledger account that have not been shipped. <small>via [Page 5904 "Service Line List"](../page/5904.md)</small> | not editable |
| 5417 | Qty. to Invoice (Base) | Decimal | — |  |
| 5418 | Qty. to Ship (Base) | Decimal | — |  |
| 5458 | Qty. Shipped Not Invd. (Base) | Decimal | — | not editable |
| 5460 | Qty. Shipped (Base) | Decimal | — | not editable |
| 5461 | Qty. Invoiced (Base) | Decimal | — | not editable |
| 5495 | Reserved Qty. (Base) | Decimal | Specifies the quantity of registered items that have been reserved. <small>via [Page 5999 "Available - Service Lines"](../page/5999.md)</small> | FlowField: - sum("Reservation Entry"."Quantity (Base)" where("Source ID" = field("Document No."), "Source Ref. No." = field("Line No."), "Source Type" = const(5902), #pragma warning disable AL0603 "Source Subtype" = field("Document Type"), #pragma warning restore "Reservation Status" = const(Reservation))); not editable |
| 5700 | Responsibility Center | Code[10] | — | TableRelation [Table 5714 "Responsibility Center"](../table/5714.md) (Responsibility Center); not editable |
| 5702 | Substitution Available | Boolean | Specifies whether a substitute is available for the item. | FlowField: exist("Item Substitution" where(Type = const(Item), "No." = field("No."), "Substitute Type" = const(Item))); not editable |
| 5709 | Item Category Code | Code[20] | — | TableRelation [Table 5722 "Item Category"](../table/5722.md) (Item Category) |
| 5710 | Nonstock | Boolean | Specifies that the item is a catalog item. | not editable |
| 5750 | Whse. Outstanding Qty. (Base) | Decimal | — | FlowField: sum("Warehouse Shipment Line"."Qty. Outstanding (Base)" where("Source Type" = const(5902), #pragma warning disable AL0603 "Source Subtype" = field("Document Type"), #pragma warning restore "Source No." = field("Document No."), "Source Line No." = field("Line No."))); not editable |
| 5725 | Item Reference No. | Code[50] | Specifies the referenced item number. If you enter a cross reference between yours and your vendor's or customer's item number, then this number will override the standard item number when you enter the reference number on a service document. |  |
| 5726 | Item Reference Unit of Measure | Code[10] | Reference Unit of Measure <small>caption</small> | TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) (if (Type = const(Item)) "Item Unit of Measure".Code where("Item No." = field("No."))) |
| 5727 | Item Reference Type | Enum "Item Reference Type" | — | enum [Enum 5726 "Item Reference Type"](../enum/5726.md) |
| 5728 | Item Reference Type No. | Code[30] | — |  |
| 5752 | Completely Shipped | Boolean | — | not editable |
| 5790 | Requested Delivery Date | Date | — |  |
| 5791 | Promised Delivery Date | Date | — |  |
| 5792 | Shipping Time | DateFormula | — |  |
| 5794 | Planned Delivery Date | Date | Specifies the planned date that the shipment will be delivered at the customer's address. If the customer requests a delivery date, the program calculates whether the items will be available for delivery on this date. If the items are available, the planned delivery date will be the same as the requ... |  |
| 5796 | Shipping Agent Code | Code[10] | — | TableRelation [Table 291 "Shipping Agent"](../table/291.md) (Shipping Agent) |
| 5797 | Shipping Agent Service Code | Code[10] | — | TableRelation [Table 5790 "Shipping Agent Services"](../table/5790.md) ("Shipping Agent Services".Code where("Shipping Agent Code" = field("Shipping Agent Code"))) |
| 5811 | Appl.-from Item Entry | Integer | Specifies the number of the item ledger entry that the document or journal line is applied from. |  |
| 5902 | Service Item No. | Code[20] | Specifies the service item number linked to this service line. | TableRelation [Table 5940 "Service Item"](../table/5940.md) (if ("Document Type" = filter(<> "Credit Memo")) "Service Item"."No." where(Blocked = filter(<> All)) else if ("Document Type" = filter("Credit Memo")) "Service Item"."No.") |
| 5903 | Appl.-to Service Entry | Integer | Specifies the service ledger entry number this line is applied to. | not editable |
| 5904 | Service Item Line No. | Integer | Specifies the service item line number linked to this service line. | TableRelation [Table 5901 "Service Item Line"](../table/5901.md) ("Service Item Line"."Line No." where("Document Type" = field("Document Type"), "Document No." = field("Document No."))) |
| 5905 | Service Item Serial No. | Code[50] | Specifies the service item serial number linked to this line. |  |
| 5906 | Service Item Line Description | Text[100] | Specifies the description of the service item line in the service order. | FlowField: lookup("Service Item Line".Description where("Document Type" = field("Document Type"), "Document No." = field("Document No."), "Line No." = field("Service Item Line No."))); not editable |
| 5907 | Serv. Price Adjmt. Gr. Code | Code[10] | Specifies the service price adjustment group code that applies to this line. | TableRelation [Table 6082 "Service Price Adjustment Group"](../table/6082.md) (Service Price Adjustment Group); not editable |
| 5908 | Posting Date | Date | Specifies the date when the service line should be posted. |  |
| 5909 | Order Date | Date | — | not editable |
| 5910 | Needed by Date | Date | Specifies the date when you require the item to be available for a service order. |  |
| 5916 | Ship-to Code | Code[10] | Specifies a code for an alternate shipment address if you want to ship to another address than the one that has been entered automatically. This field is also used in case of drop shipment. | TableRelation [Table 222 "Ship-to Address"](../table/222.md) ("Ship-to Address".Code where("Customer No." = field("Customer No."))); not editable |
| 5917 | Qty. to Consume | Decimal | Specifies the quantity of items, resource hours, costs, or G/L account payments that should be consumed. |  |
| 5918 | Quantity Consumed | Decimal | Specifies the quantity of items, resource hours, costs, or general ledger account payments on this line, which have been posted as consumed. | not editable |
| 5919 | Qty. to Consume (Base) | Decimal | — |  |
| 5920 | Qty. Consumed (Base) | Decimal | — | not editable |
| 5928 | Service Price Group Code | Code[10] | — | TableRelation [Table 6080 "Service Price Group"](../table/6080.md) (Service Price Group) |
| 5929 | Fault Area Code | Code[10] | Specifies the code of the fault area associated with this line. | TableRelation [Table 5915 "Fault Area"](../table/5915.md) (Fault Area) |
| 5930 | Symptom Code | Code[10] | Specifies the code of the symptom associated with this line. | TableRelation [Table 5916 "Symptom Code"](../table/5916.md) (Symptom Code) |
| 5931 | Fault Code | Code[10] | Specifies the code of the fault associated with this line. | TableRelation [Table 5918 "Fault Code"](../table/5918.md) ("Fault Code".Code where("Fault Area Code" = field("Fault Area Code"), "Symptom Code" = field("Symptom Code"))) |
| 5932 | Resolution Code | Code[10] | Specifies the code of the resolution associated with this line. | TableRelation [Table 5919 "Resolution Code"](../table/5919.md) (Resolution Code) |
| 5933 | Exclude Warranty | Boolean | Specifies that the warranty discount is excluded on this line. |  |
| 5934 | Warranty | Boolean | Specifies that a warranty discount is available on this line of type Item or Resource. | not editable |
| 5936 | Contract No. | Code[20] | Specifies the number of the contract, if the service order originated from a service contract. | TableRelation [Table 5965 "Service Contract Header"](../table/5965.md) ("Service Contract Header"."Contract No." where("Contract Type" = const(Contract))) |
| 5938 | Contract Disc. % | Decimal | Specifies the contract discount percentage that is valid for the items, resources, and costs on this line. | not editable |
| 5939 | Warranty Disc. % | Decimal | Specifies the percentage of the warranty discount that is valid for the items or resources on this line. | not editable |
| 5965 | Component Line No. | Integer | — |  |
| 5966 | Spare Part Action | Option | Specifies whether the item was used to replace the whole service item, one of the service item components, installed as a new component, or used as a supplementary tool. | OptionCaption: ,Permanent,Temporary,Component Replaced,Component Installed |
| 5967 | Fault Reason Code | Code[10] | Specifies the code of the fault reason for this service line. | TableRelation [Table 5917 "Fault Reason Code"](../table/5917.md) (Fault Reason Code) |
| 5968 | Replaced Item No. | Code[20] | — | TableRelation [Table 27 "Item"](../table/27.md), [Table 5940 "Service Item"](../table/5940.md) (if ("Replaced Item Type" = const(Item)) Item else if ("Replaced Item Type" = const("Service Item")) "Service Item") |
| 5969 | Exclude Contract Discount | Boolean | Specifies that the contract discount is excluded for the item, resource, or cost on this line. |  |
| 5970 | Replaced Item Type | Enum "Replaced Service Item Component Type" | — | enum [Enum 5943 "Replaced Service Item Component Type"](../enum/5943.md) |
| 5994 | Price Adjmt. Status | Option | — | OptionCaption: ,Adjusted,Modified; not editable |
| 5997 | Line Discount Type | Enum "Service Line Discount Type" | Specifies the type of the line discount assigned to this line. | enum [Enum 5998 "Service Line Discount Type"](../enum/5998.md); not editable |
| 5999 | Copy Components From | Option | — | OptionCaption: None,Item BOM,Old Service Item,Old Serv.Item w/o Serial No. |
| 6608 | Return Reason Code | Code[10] | Specifies the code explaining why the item was returned. | TableRelation [Table 6635 "Return Reason"](../table/6635.md) (Return Reason) |
| 7000 | Price Calculation Method | Enum "Price Calculation Method" | — | enum [Enum 7000 "Price Calculation Method"](../enum/7000.md) |
| 7001 | Allow Line Disc. | Boolean | — |  |
| 7002 | Customer Disc. Group | Code[20] | — | TableRelation [Table 340 "Customer Discount Group"](../table/340.md) (Customer Discount Group) |
| 7300 | Qty. Picked | Decimal | — | not editable |
| 7301 | Qty. Picked (Base) | Decimal | — | not editable |
| 7302 | Completely Picked | Boolean | — | not editable |
| 7303 | Pick Qty. (Base) | Decimal | — | not editable |

## Keys

- Key1: Document Type, Document No., Line No. (clustered)
- Key2: Type, No., Order Date
- Key3: Service Item No., Type, Posting Date
- Key4: Document Type, Bill-to Customer No., Currency Code, Document No.
- Key5: Document Type, Document No., Service Item No.
- Key6: Document Type, Document No., Service Item Line No., Serv. Price Adjmt. Gr. Code
- Key7: Document Type, Document No., Service Item Line No., Type, No.
- Key8: Type, No., Variant Code, Location Code, Needed by Date, Document Type, Shortcut Dimension 1 Code, Shortcut Dimension 2 Code
- Key9: Appl.-to Service Entry
- Key10: Document Type, Document No., Service Item Line No., Component Line No.
- Key11: Fault Reason Code
- Key12: Document Type, Customer No., Shipment No., Document No.
- Key13: Document Type, Document No., Location Code
- Key14: Document Type, Document No., Type, No.
- Key15: Document No., Document Type
- Key16: SystemModifiedAt

## Events published

- `OnAfterInitDefaultDimensionSources(var ServiceLine: Record "Service Line"; var DefaultDimSource: List of [Dictionary of [Integer, Code[20]]]; FieldNo: Integer)` (integration)
- `OnAfterAssignHeaderValues(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header")` (integration)
- `OnAfterAssignStdTxtValues(var ServiceLine: Record "Service Line"; StandardText: Record "Standard Text")` (integration)
- `OnAfterAssignGLAccountValues(var ServiceLine: Record "Service Line"; GLAccount: Record "G/L Account"; ServiceHeader: Record "Service Header")` (integration)
- `OnAfterAssignServCostValues(var ServiceLine: Record "Service Line"; ServiceCost: Record "Service Cost")` (integration)
- `OnAfterAssignItemValues(var ServiceLine: Record "Service Line"; Item: Record Item; xServiceLine: Record "Service Line"; CallingFieldNo: Integer; ServiceHeader: Record "Service Header")` (integration)
  - subscribers: [Codeunit 5012 "Service Declaration Mgt."](../codeunit/5012.md) OnAfterAssignItemValuesInServiceLine, [Codeunit 6285 "Sust. Service Subscriber"](../codeunit/6285.md) OnAfterAssignItemValues
- `OnAfterAssignServItemValues(var ServiceLine: Record "Service Line"; ServiceItem: Record "Service Item"; ServiceItemComp: Record "Service Item Component"; HideReplacementDialog: Boolean)` (integration)
- `OnAfterAssignResourceValues(var ServiceLine: Record "Service Line"; Resource: Record Resource)` (integration)
  - subscribers: [Codeunit 5012 "Service Declaration Mgt."](../codeunit/5012.md) OnAfterAssignResourceValuesInServiceLine, [Codeunit 6285 "Sust. Service Subscriber"](../codeunit/6285.md) OnAfterAssignResourceValues
- `OnAfterCalcLineAmount(var ServiceLine: Record "Service Line"; var LineAmount: Decimal)` (integration)
- `OnAfterCalculateDiscount(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterCalcInvDiscToInvoice(var ServiceLine: Record "Service Line"; OldInvDiscAmtToInv: Decimal)` (integration)
- `OnAfterCheckApplFromItemLedgEntry(var ServiceLine: Record "Service Line"; var ItemLedgerEntry: Record "Item Ledger Entry")` (integration)
- `OnAfterClearFields(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; TempServiceLine: Record "Service Line" temporary; CallingFieldNo: Integer)` (integration)
- `OnAfterGetItemTranslation(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header"; ItemTranslation: Record "Item Translation")` (integration)
- `OnAfterGetLineWithPrice(var LineWithPrice: Interface "Line With Price")` (integration)
- `OnAfterGetSKU(ServiceLine: Record "Service Line"; var Result: Boolean)` (integration)
- `OnAfterGetStrMenuDefaultValue(var DefaultValue: Integer)` (integration)
- `OnAfterGetUnitCost(var ServiceLine: Record "Service Line"; Item: Record Item)` (integration)
- `OnAfterFilterLinesWithItemToPlan(var ServiceLine: Record "Service Line"; var Item: Record Item)` (integration)
- `OnAfterFindLinesForReservation(var ServiceLine: Record "Service Line"; ReservationEntry: Record "Reservation Entry"; AvailabilityFilter: Text; Positive: Boolean)` (integration)
- `OnAfterMaxQtyToConsume(var ServiceLine: Record "Service Line"; var Result: Decimal)` (integration)
- `OnAfterMaxQtyToConsumeBase(var ServiceLine: Record "Service Line"; var Result: Decimal)` (integration)
- `OnAfterResourseFindCost(var ServiceLine: Record "Service Line"; var ResourceCost: Record "Resource Cost")` (integration)
- `OnAfterTestStatusOpen(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header")` (integration)
- `OnAfterSetHideCostWarning(var ServiceLine: Record "Service Line"; var HideCostWarning: Boolean)` (integration)
- `OnAfterSetHideWarrantyWarning(var ServiceLine: Record "Service Line"; var HideWarrantyWarning: Boolean)` (integration)
- `OnAfterValidateServiceItemLineNumber(var Rec: Record "Service Line"; var ServiceLine: Record "Service Line")` (integration)
- `OnAfterUpdateUnitPrice(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; CalledByFieldNo: Integer; CurrFieldNo: Integer)` (integration)
- `OnAfterUpdateVATAmounts(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterUpdateAmounts(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterUpdateVATOnLines(var ServHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line"; QtyType: Option General,Invoicing,Shipping)` (integration)
- `OnAfterCalcVATAmount(VATAmountLine: Record "VAT Amount Line"; NewAmount: Decimal; NewBase: Decimal; var VATAmount: Decimal)` (integration)
- `OnAfterCalcVATAmountLines(var ServHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line"; QtyType: Option General,Invoicing,Shipping,Consuming)` (integration)
- `OnAfterInitOutstanding(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterInitOutstandingAmount(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header"; Currency: Record Currency)` (integration)
- `OnAfterInitQtyToInvoice(var ServiceLine: Record "Service Line"; CurrFieldNo: Integer)` (integration)
- `OnAfterInitQtyToShip(var ServiceLine: Record "Service Line"; CurrFieldNo: Integer)` (integration)
- `OnAfterInitQtyToConsume(var ServiceLine: Record "Service Line"; CurrFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnAfterSalesTaxCalculate(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header"; Currency: Record Currency)` (integration)
- `OnAfterSalesTaxCalculateReverse(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header"; Currency: Record Currency)` (integration)
- `OnAfterSetHideReplacementDialog(var ServiceLine: Record "Service Line"; var HideReplacementDialog: Boolean)` (integration)
- `OnAfterShowNonstock(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterValidateShortcutDimCode(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20])` (integration)
- `OnBeforeApplyDiscount(ServiceHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckVATCalculationType(var ServiceLine: Record "Service Line"; VATPostingSetup: Record "VAT Posting Setup"; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckQtyToInvoicePositive(var ServiceLine: Record "Service Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckQtyToShipPositive(var ServiceLine: Record "Service Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckQtyToConsumePositive(var ServiceLine: Record "Service Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeInitQtyToShip(var ServiceLine: Record "Service Line"; CurrFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromItem(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromServItem(var ServiceLine: Record "Service Line"; ServiceItem: Record "Service Item"; ServItemComponent: Record "Service Item Component"; var IsHandled: Boolean; var HideReplacementDialog: Boolean; ServItemLine: Record "Service Item Line"; var Select: Integer; var ReplaceServItemAction: Boolean)` (integration)
- `OnBeforeCreateDim(var ServiceLine: Record "Service Line"; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeGetDefaultBin(var ServiceLine: Record "Service Line"; CallingFieldNo: Integer; var IsHandled: Boolean; ReplaceServItemAction: Boolean)` (integration)
- `OnBeforeGetSKU(var ServiceLine: Record "Service Line"; var Result: Boolean; var IsHandled: Boolean; var SKU: Record "Stockkeeping Unit")` (integration)
- `OnBeforeInitServHeaderShipToCode(var ServiceLine: Record "Service Line"; var ServHeader: Record "Service Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeInitHeaderDefaults(var ServiceLine: Record "Service Line"; var ServHeader: Record "Service Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeTestBinCode(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeTestQuantityPositive(var ServiceLine: Record "Service Line"; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeTestQtyFromLineDiscountAmount(var ServiceLine: Record "Service Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeTestQtyFromLineAmount(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeLookupShortcutDimCode(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeTestStatusOpen(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header")` (integration)
- `OnBeforeUpdateAmounts(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateLineDiscPct(var ServiceLine: Record "Service Line"; Currency: Record Currency; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateUnitPrice(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; CalledByFieldNo: Integer; CurrFieldNo: Integer)` (integration)
- `OnBeforeUpdateUnitPriceProcedure(var ServiceLine: Record "Service Line"; CalledByFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateUnitPriceByField(var ServiceLine: Record "Service Line"; CalledByFieldNo: Integer; CalcCost: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateVATAmounts(var ServiceLine: Record "Service Line")` (integration)
- `OnBeforeValidateNeededByDate(var ServHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateResponsibilityCenter(var Rec: Record "Service Line"; var DimMgt: Codeunit DimensionManagement; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateServiceItemNo(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateServiceItemLineNumber(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantity(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantityInvIsBalanced(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantityShipIsBalanced(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantityConsumeIsBalanced(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateShortcutDimCode(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; FieldNumber: Integer; var ShortcutDimCode: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQuantityBase(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; FieldNumber: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQtyToConsumeBase(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; FieldNumber: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQtyToInvoiceBase(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; FieldNumber: Integer; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateQtyToShipBase(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; FieldNumber: Integer; var IsHandled: Boolean)` (integration)
- `OnCalcVATAmountLinesOnAfterCalcLineTotals(var VATAmountLine: Record "VAT Amount Line"; ServHeader: Record "Service Header"; ServiceLine: Record "Service Line"; Currency: Record Currency; QtyType: Option General,Invoicing,Shipping; var TotalVATAmount: Decimal)` (integration)
- `OnCheckItemAvailableOnBeforeCheckNonStock(var ServiceLine: Record "Service Line"; FieldNumber: Integer; var IsHandled: Boolean)` (integration)
- `OnCopyFromResourceOnAfterCheckResource(var ServiceLine: Record "Service Line"; Resource: Record Resource)` (integration)
- `OnCopyFromCostOnAfterCalcShouldShowConfirm(var ServiceLine: Record "Service Line"; ServiceCost: Record "Service Cost"; HideCostWarning: Boolean; var ShouldShowConfirm: Boolean)` (integration)
- `OnInitQtyToShipOnBeforeInitQtyToInvoice(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnInitQtyToInvoiceOnBeforeCalcInvDiscToInvoice(var ServiceLine: Record "Service Line"; CurrentFieldNo: Integer)` (integration)
- `OnInitHeaderDefaultsOnAfterAssignLocationCode(var ServiceLine: Record "Service Line"; ServHeader: Record "Service Header")` (integration)
- `OnReplaceServItemOnCopyFromReplacementItem(var ServiceLine: Record "Service Line")` (integration)
- `OnValidateContractNoOnBeforeContractDiscountFind(var ServiceLine: Record "Service Line"; var ContractServDisc: Record "Contract/Service Discount"; ServItem: Record "Service Item")` (integration)
- `OnValidateServiceItemLineNoOnBeforeValidateContractNo(var ServiceLine: Record "Service Line"; ServItemLine: Record "Service Item Line")` (integration)
- `OnValidateVariantCodeOnAssignItem(var ServiceLine: Record "Service Line"; Item: Record Item)` (integration)
- `OnValidateNoOnAfterCopyFields(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header")` (integration)
- `OnValidateVATProdPostingGroupOnAfterCopyFields(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header")` (integration)
- `OnValidateUnitOfMeasureCodeOnBeforeValidateQuantity(var ServiceLine: Record "Service Line"; Item: Record Item)` (integration)
- `OnValidateVariantCodeOnAssignItemVariant(var ServiceLine: Record "Service Line"; ItemVariant: Record "Item Variant")` (integration)
- `OnValidateQuantityOnAfterCalcQuantityBase(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line")` (integration)
- `OnBeforeCheckIfCanBeModified(ServiceLine: Record "Service Line"; var IsHandled: Boolean; xServiceLine: Record "Service Line")` (integration)
- `OnBeforeCheckItemAvailable(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; CalledByFieldNo: Integer; var IsHandled: Boolean; CurrFieldNo: Integer)` (integration)
- `OnBeforeShowItemSub(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeShowNonstock(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeShowReservation(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnDeleteOnAfterServiceLineSetFilter(var ServiceLine2: Record "Service Line"; var ServiceLine: Record "Service Line")` (integration)
- `OnAfterCreateDim(var ServiceLine: Record "Service Line"; CurrFieldNo: Integer; xServiceLine: Record "Service Line")` (integration)
- `OnAfterShowDimensions(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line")` (integration)
- `OnBeforeShowDimensions(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnLookupServiceItemNoOnAfterServItemSetFilters(var ServiceLine: Record "Service Line"; ServHeader: Record "Service Header"; var ServItem: Record "Service Item")` (integration)
- `OnReplaceServItemOnAfterAssignVariantCode(var ServiceLine: Record "Service Line"; ServItemReplacement: Page "Service Item Replacement"; SerialNo: Code[50]; var IsHandled: Boolean)` (integration)
- `OnInsertItemTrackingOnBeforeCreateEntry(var Rec: Record "Service Line")` (integration)
- `OnBeforeValidateVATProdPostingGroup(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnShowNonstockOnAfterUpdateFromNonstockItem(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line")` (integration)
- `OnUpdateAmountsOnAfterCalcShouldCheckCrLimit(var ServiceLine: Record "Service Line"; IsCustCrLimitChecked: Boolean; CurrentFieldNo: Integer; var ShouldCheckCrLimit: Boolean)` (integration)
- `OnBeforeGetCPGInvRoundAcc(ServiceHeader: Record "Service Header"; var AccountNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnValidateApplToItemEntryOnBeforeShowNotOpenItemLedgerEntryMessage(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var ItemLedgerEntry: Record "Item Ledger Entry"; CurrentFieldNo: Integer)` (integration)
- `OnValidateReturnReasonCodeOnBeforeValidateLocationCode(var ServiceLine: Record "Service Line"; ReturnReason: Record "Return Reason"; var ShouldValidateLocationCode: Boolean)` (integration)
- `OnValidateAmountOnAfterCalculateNormalVAT(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header"; Currency: Record Currency)` (integration)
- `OnCalcVATAmountLinesOnBeforeUpdateLines(var TotalVATAmount: Decimal; Currency: Record Currency; ServiceHeader: Record "Service Header"; var VATAmountLine: Record "VAT Amount Line" temporary; var IsHandled: Boolean)` (integration)
- `OnValidateAmountIncludingVATOnAfterCalculateNormalVAT(var ServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header"; Currency: Record Currency)` (integration)
- `OnUpdateCalcVATAmountLines(var ServiceHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line"; QtyType: Option General,Invoicing,Shipping,Consuming; isShip: Boolean; var IsHandled: Boolean)` (integration)
- `OnValidateQuantityOnBeforeResetAmounts(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line")` (integration)
  - subscribers: [Codeunit 6285 "Sust. Service Subscriber"](../codeunit/6285.md) OnValidateQuantityOnBeforeResetAmounts
- `OnBeforeUpdateVATOnLines(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; ServiceHeader: Record "Service Header"; var VATAmountLine: Record "VAT Amount Line" temporary; QtyType: Option General,Invoicing,Shipping; var IsHandled: Boolean)` (integration)
- `OnUpdateAmountsOnAfterCalcExpectedLineAmount(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var ExpectedLineAmount: Decimal)` (integration)
- `OnUpdateVATAmountsIfPricesInclVATOnAfterNormalVATCalc(var ServiceLine: Record "Service Line"; ServHeader: Record "Service Header"; Currency: Record Currency)` (integration)
- `OnUpdateVATAmountsIfPricesExclVATOnAfterNormalVATCalc(var ServiceLine: Record "Service Line"; ServHeader: Record "Service Header"; Currency: Record Currency)` (integration)
- `OnUpdateVATAmountOnAfterClearAmounts(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterUpdateVATOnLinesOnAfterCalcVATAmount(var ServiceLine: Record "Service Line"; var TempVATAmountLineRemainder: Record "VAT Amount Line" temporary; VATAmountLine: Record "VAT Amount Line"; var VATAmount: Decimal)` (integration, obsolete 27.0)
- `OnBeforeInitTableValuePair(var TableValuePair: Dictionary of [Integer, Code[20]]; FieldNo: Integer; var IsHandled: Boolean; var ServiceLine: Record "Service Line")` (integration)
- `OnAfterInitTableValuePair(var TableValuePair: Dictionary of [Integer, Code[20]]; FieldNo: Integer; var ServiceLine: Record "Service Line")` (integration)
- `OnBeforeCheckWarehouse(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateWithWarehouseShipOnAfterVerifyType(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnAfterCalcChargeableQty(ServiceLine: Record "Service Line"; var ChargableQty: Decimal)` (integration)
- `OnBeforeValidateJobNo(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateJobTaskNo(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnValidateFaultReasonCodeOnBeforeExcludeWarrantyDiscountCheck(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeOnDelete(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnDeleteOnBeforeServiceEntriesError(var ServiceLine: Record "Service Line"; var CheckServiceDocumentType: Boolean)` (integration)
- `OnBeforeLookupContractNo(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCalculateDiscount(var ServiceLine: Record "Service Line"; var IsHandled: Boolean; CurrentFieldNo: Integer)` (integration)
- `OnBeforeCheckErrorSelectedSI(var ServiceLine: Record "Service Line"; var ServItemLineNo: Integer; var IsHandled: Boolean)` (integration)
- `OnCheckIfServiceLineMeetsReservedFromStockSetting(QtyToPost: Decimal; ReservedFromStock: Enum "Reservation From Stock"; var Result: Boolean)` (integration)
- `OnAfterCheckItemAvailable(var ServiceLine: Record "Service Line"; CalledByFieldNo: Integer)` (integration)
- `OnInsertOnBeforeDisplayConflictError(var ServiceLine: Record "Service Line")` (integration)
- `OnInsertOnAfterDisplayConflictError(var ServiceLine: Record "Service Line")` (integration)
- `OnModifyOnAfterUpdateServiceLedgerEntry(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line")` (integration)
- `OnDeleteOnDelNonStockFSMBeforeModify(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnValidateNoOnBeforeTestFields(var ServiceLine: Record "Service Line"; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnValidateNoOnBeforeCustomerCheck(var ServiceLine: Record "Service Line")` (integration)
- `OnValidateQuantityOnBeforeGetUnitCost(var ServiceLine: Record "Service Line"; CurrentFieldNo: Integer)` (integration)
- `OnValidateQtyToShipOnBeforeQtyToShipCheck(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnValidateWorkTypeCodeOnBeforePlanPriceCalcByField(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line")` (integration)
- `OnValidateVariantCodeOnAfterUpdateReservation(var ServiceLine: Record "Service Line")` (integration)
- `OnValidateUnitOfMeasureOnAfterAssignUnitofMeasureValue(var ServiceLine: Record "Service Line")` (integration)
- `OnBeforeValidateExcludeWarranty(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; HideWarrantyWarning: Boolean; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnValidateContractNoOnBeforeAssignWarrantyDisc(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromCost(var ServiceLine: Record "Service Line"; HideCostWarning: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyFromResource(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnUpdateVATAmountsOnBeforeCalculateAmountWithNoVAT(var ServiceLine: Record "Service Line"; TotalAmount: Decimal; TotalAmountInclVAT: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckLineDiscount(var ServiceLine: Record "Service Line"; LineDisc: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeConfirmAdjPriceLineChange(var ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeAutoReserve(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; FullAutoReservation: Boolean; var ReserveServiceLine: Codeunit "Service Line-Reserve"; var IsHandled: Boolean)` (integration)
- `OnCalcVATAmountLinesOnAfterServiceLineSetFilters(var ServiceLine: Record "Service Line"; var ServiceHeader: Record "Service Header")` (integration)
- `OnBeforeSelectMultipleItems(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterSelectMultipleItems(var ServiceLine: Record "Service Line")` (integration)
- `OnBeforeAddItems(var ServiceLine: Record "Service Line"; SelectionFilter: Text; var IsHandled: Boolean)` (integration)
- `OnAfterPickDiscount(var ServiceLine: Record "Service Line"; var PriceCalculation: Interface "Price Calculation")` (integration)
- `OnAfterPickPrice(var ServiceLine: Record "Service Line"; var PriceCalculation: Interface "Price Calculation")` (integration)
- `OnBeforeCopyToItemJnlLine(var ItemJournalLine: Record "Item Journal Line"; ServiceLine: Record "Service Line"; var IsHandled: Boolean)` (integration)
- `OnAfterCopyToItemJnlLine(var ItemJournalLine: Record "Item Journal Line"; ServiceLine: Record "Service Line")` (integration)
  - subscribers: [Codeunit 5012 "Service Declaration Mgt."](../codeunit/5012.md) OnAfterCopyItemJnlLineFromServiceLine
- `OnAfterCopyToResJournalLine(var ResJournalLine: Record "Res. Journal Line"; ServiceLine: Record "Service Line")` (integration)
- `OnAfterGetVatBaseDiscountPct(var ServiceLine: Record "Service Line"; var ServiceHeader: Record "Service Header"; var Result: Decimal)` (integration)
- `OnInsertVATAmountOnBeforeInsert(var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line")` (integration)
- `OnFindVATAmountLineOnAfterSetFilters(var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line")` (integration)
- `OnUpdateVATAmountsOnAfterCalculateVATBaseAmount(var ServiceLine: Record "Service Line"; var ServiceHeader: Record "Service Header"; var Currency: Record Currency; TotalAmount: Decimal; TotalVATBaseAmount: Decimal)` (integration)
- `OnCalcVATAmountLinesOnBeforeVATAmountLineModifyInvoicing(var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line")` (integration)
- `OnCalcVATAmountLinesOnBeforeVATAmountLineModifyShipping(var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line")` (integration)
- `OnCalcVATAmountLinesOnBeforeVATAmountLineModifyElseCase(var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line")` (integration)
- `OnUpdateVATOnLinesOnAfterSetNewVATBaseAmountPriceInclVAT(var ServiceLine: Record "Service Line"; var ServiceHeader: Record "Service Header"; var VATAmountLine: Record "VAT Amount Line"; var TempVATAmountLineRemainder: Record "VAT Amount Line" temporary; NewAmount: Decimal; var NewVATBaseAmount: Decimal)` (integration)
- `OnUpdateVATOnLinesOnAfterSetNewVATBaseAmountPriceExclVAT(var ServiceLine: Record "Service Line"; var ServiceHeader: Record "Service Header"; var VATAmountLine: Record "VAT Amount Line"; var TempVATAmountLineRemainder: Record "VAT Amount Line" temporary; NewAmount: Decimal; var NewVATBaseAmount: Decimal)` (integration)
- `OnUpdateVATOnLinesOnAfterSetVATBaseAmountGeneral(var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line"; var Currency: Record Currency; NewVATBaseAmount: Decimal)` (integration)
- `OnUpdateVATOnLinesOnBeforeTempVATAmountLineRemainderModify(var TempVATAmountLineRemainder: Record "VAT Amount Line" temporary; var ServiceLine: Record "Service Line"; NewVATBaseAmount: Decimal)` (integration)
- `OnAfterOnDelete(var ServiceLine: Record "Service Line")` (integration)
- `OnBeforeCheckProdPostingGroups(var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnAfterClearVATPct(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterClearVATDifference(var ServiceLine: Record "Service Line")` (integration)
- `OnAfterCalcVATDifference(var TempVATAmountLineRemainder: record "VAT Amount Line" temporary; var VATAmountLine: Record "VAT Amount Line"; LineAmount: Decimal)` (integration)
- `OnAfterRoundVATDifference(var ServiceLine: Record "Service Line"; Currency: Record Currency)` (integration)
- `OnAfterGetVATPct(var ServiceLine: Record "Service Line"; var VATPct: Decimal)` (integration)
- `OnAfterCopyFromVATPostingSetup(var ServiceLine: Record "Service Line"; var VATPostingSetupFrom: Record "VAT Posting Setup")` (integration)
- `OnAfterCopyPrepaymentFromVATPostingSetup(var ServiceLine: Record "Service Line"; var VATPostingSetupFrom: Record "VAT Posting Setup")` (integration, obsolete 27.0)
- `OnBeforeValidateLineAmount(var ServiceLine: Record "Service Line"; xServiceLine: Record "Service Line"; Currency: Record Currency; CurrentFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnCalcVATAmountLinesOnBeforeUpdateVATAmountLine(var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line"; var TotalVATAmount: Decimal; Currency: Record Currency; var RoundingLineInserted: Boolean)` (integration)
- `OnValidateQtyToConsumeOnBeforeQtyToConsumeCheck(var ServiceLine: Record "Service Line"; var xServiceLine: Record "Service Line"; CallingFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnInitOutstandingOnAfterInitOutstandingQuantity(var ServiceLine: Record "Service Line")` (integration)

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 6459 "Serv. Document Attachment Mgt."](../codeunit/6459.md) DeleteAttachedDocumentsOnAfterDeleteServiceLine, [Codeunit 6460 "Serv. Notification Mgt."](../codeunit/6460.md) OnAfterServiceLineDeleteRecall, [Codeunit 6610 "FS Int. Table Subscriber"](../codeunit/6610.md) HandleOnAfterDeleteServiceLine
- OnAfterInsertEvent: [Codeunit 6459 "Serv. Document Attachment Mgt."](../codeunit/6459.md) DocumentAttachmentFlow_ForServiceLineInsert, [Codeunit 6460 "Serv. Notification Mgt."](../codeunit/6460.md) OnAfterServiceLineInsertSetRecId
- OnAfterRenameEvent: [Codeunit 6460 "Serv. Notification Mgt."](../codeunit/6460.md) OnAfterServiceLineRenameUpdateRecId
- OnAfterValidateEvent(No.): [Codeunit 6459 "Serv. Document Attachment Mgt."](../codeunit/6459.md) DocumentAttachmentFlow_ForServiceLineNoChange
- OnAfterValidateEvent(Service Item Line No.): [Codeunit 6459 "Serv. Document Attachment Mgt."](../codeunit/6459.md) DocumentAttachmentFlow_ForServiceLineServiceItemLineNoChange
- OnAfterValidateEvent(Service Item No.): [Codeunit 6459 "Serv. Document Attachment Mgt."](../codeunit/6459.md) DocumentAttachmentFlow_ForServiceLineServiceItemNoChange
- OnBeforeInsertEvent: [Codeunit 5999 "Service Experience Tier"](../codeunit/5999.md) BlockInsertServiceLine
- OnBeforeValidateEvent(Quantity): [Codeunit 6460 "Serv. Notification Mgt."](../codeunit/6460.md) OnServiceLineUpdateQtyTo0RecallItemNotif
- OnBeforeValidateEvent(Type): [Codeunit 6460 "Serv. Notification Mgt."](../codeunit/6460.md) OnServiceLineUpdateTypeRecallItemNotif

## Procedures

- `CheckItemAvailable(CalledByFieldNo: Integer)`
- `CreateDim(DefaultDimSource: List of [Dictionary of [Integer, Code[20]]])`
- `ValidateShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`
- `LookupShortcutDimCode(FieldNumber: Integer; var ShortcutDimCode: Code[20])`
- `ShowShortcutDimCode(var ShortcutDimCode: array[8] of Code[20])`
- `ReplaceServItem(): Boolean` (protected)
- `CalculateDiscount()`
- `GetPriceCalculationHandler(PriceType: Enum "Price Type"; ServiceHeader: Record "Service Header"; var PriceCalculation: Interface "Price Calculation")`
- `GetLineWithPrice(var LineWithPrice: Interface "Line With Price")`
- `ApplyDiscount(ServiceHeader: Record "Service Header")`
- `PickDiscount()`
- `PickPrice()`
- `CountDiscount(ShowAll: Boolean): Integer`
- `CountPrice(ShowAll: Boolean): Integer`
- `DiscountExists(ShowAll: Boolean): Boolean`
- `PriceExists(ShowAll: Boolean): Boolean`
- `UpdateAmounts()`
- `GetItem(var Item: Record Item)`
- `GetDate(): Date`
- `GetServHeader(): Record "Service Header"`
- `GetServHeader(var OutServiceHeader: Record "Service Header"; var OutCurrency: Record Currency)`
- `IsPriceCalcCalledByField(CurrPriceFieldNo: Integer): Boolean`
- `PlanPriceCalcByField(CurrPriceFieldNo: Integer)`
- `ClearFieldCausedPriceCalculation()`
- `UpdateUnitPrice(CalledByFieldNo: Integer)`
- `ApplyPrice(PriceType: Enum "Price Type"; ServiceHeader: Record "Service Header"; CalledByFieldNo: Integer)`
- `ShowDimensions()`
- `ShowReservation()`
- `ShowReservationEntries(Modal: Boolean)`
- `AutoReserve()`
- `AutoReserve(ShowReservationForm: Boolean)`
- `ClearFields()` (protected)
- `ShowNonstock()`
- `CalcLineAmount(): Decimal`
- `CopyFromServItem(ServItem: Record "Service Item")`
- `ShowItemSub()`
- `SetHideReplacementDialog(NewHideReplacementDialog: Boolean)`
- `GetHideReplacementDialog(): Boolean`
- `CheckIfServItemReplacement(ComponentLineNo: Integer)`
- `IsInbound(): Boolean`
- `OpenItemTrackingLines()`
- `InsertItemTracking()` (protected)
- `GetDefaultBin()`
- `GetItemTranslation()`
- `GetSKU(): Boolean`
- `GetUnitCost()`
- `GetRemainingQty(var RemainingQty: Decimal; var RemainingQtyBase: Decimal)`
- `GetReservationQty(var QtyReserved: Decimal; var QtyReservedBase: Decimal; var QtyToReserve: Decimal; var QtyToReserveBase: Decimal): Decimal`
- `GetSourceCaption(): Text`
- `SetReservationEntry(var ReservEntry: Record "Reservation Entry")`
- `SetReservationFilters(var ReservEntry: Record "Reservation Entry")`
- `ReservEntryExist(): Boolean`
- `AfterResourseFindCost(var ResourceCost: Record "Resource Cost")`
- `InitOutstanding()`
- `InitOutstandingAmount()`
- `InitQtyToShip()`
- `InitQtyToInvoice()`
- `MaxQtyToInvoice(): Decimal`
- `GetVatBaseDiscountPct(ServiceHeader: Record "Service Header"): Decimal` (internal)
- `ItemExists(ItemNo: Code[20]): Boolean`
- `GetCaptionClass(FieldNumber: Integer): Text[80]`
- `UpdateVATAmounts()`
- `MaxQtyToConsume(): Decimal`
- `MaxQtyToConsumeBase(): Decimal`
- `InitQtyToConsume()`
- `SetServHeader(NewServHeader: Record "Service Header")`
- `SetServiceItemLine(var NewServiceItemLine: Record "Service Item Line")`
- `CalcVATAmountLines(QtyType: Option General,Invoicing,Shipping,Consuming; var ServHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line"; isShip: Boolean)`
- `UpdateVATOnLines(QtyType: Option General,Invoicing,Shipping; var ServHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var VATAmountLine: Record "VAT Amount Line")`
- `CalcChargeableQty(): Decimal`
- `SignedXX(Value: Decimal): Decimal`
- `IsShipment(): Boolean`
- `CheckLineDiscount(LineDisc: Decimal)`
- `ConfirmAdjPriceLineChange()`
- `SetHideCostWarning(Value: Boolean)`
- `SetHideWarrantyWarning(Value: Boolean)`
- `SplitResourceLine()`
- `UpdateRemainingCostsAndAmounts()`
- `RowID1(): Text[250]`
- `UpdatePlanned(): Boolean`
- `UpdateReservation(CalledByFieldNo: Integer)`
- `ShowTracking()`
- `ShowOrderPromisingLine()`
- `FilterLinesWithItemToPlan(var Item: Record Item)`
- `FindLinesWithItemToPlan(var Item: Record Item): Boolean`
- `LinesWithItemToPlanExist(var Item: Record Item): Boolean`
- `FindLinesForReservation(ReservationEntry: Record "Reservation Entry"; AvailabilityFilter: Text; Positive: Boolean)`
- `UpdateWithWarehouseShip()`
- `TestStatusOpen()`
- `SuspendStatusCheck(bSuspend: Boolean)`
- `LineRequiresShipmentOrReceipt(): Boolean`
- `GetDueDate(): Date`
- `GetShipmentDate(): Date`
- `GetDateForCalculations(): Date`
- `OutstandingInvoiceAmountFromShipment(CustomerNo: Code[20]): Decimal`
- `TestItemFields(ItemNo: Code[20]; VariantCode: Code[10]; LocationCode: Code[10])`
- `TestBinCode()`
- `GetNextLineNo(ServiceLineSource: Record "Service Line"; BelowxRec: Boolean): Integer`
- `GetLineNo(): Integer`
- `GetCPGInvRoundAcc(ServiceHeader: Record "Service Header"): Code[20]`
- `DeleteWithAttachedLines()`
- `IsNonInventoriableItem(): Boolean`
- `IsInventoriableItem(): Boolean`
- `SelectMultipleItems()`
- `SwitchLinesWithErrorsFilter(var ShowAllLinesEnabled: Boolean)`
- `CreateDimFromDefaultDim(FieldNo: Integer)`
- `CheckIfServiceLineMeetsReservedFromStockSetting(QtyToPost: Decimal; ReservedFromStock: Enum "Reservation From Stock"): Boolean`
- `SetCalledFromServiceItemLine(CallFromServiceItemLine: Boolean)`
- `CopyToItemJnlLine(var ItemJournalLine: Record "Item Journal Line")`
- `CopyToResJournalLine(var ResJournalLine: Record "Res. Journal Line")`
- `CheckProdPostingGroups(): Boolean`
- `ClearVATPct()` (internal)
- `ClearVATDifference()` (internal)
- `CalcVATDifference(var TempVATAmountLineRemainder: record "VAT Amount Line" temporary; var VATAmountLine: Record "VAT Amount Line"; LineAmount: Decimal; var VATDifference: Decimal)` (internal)
- `RoundVATDifference(VATDifference: Decimal; Currency: Record Currency)` (internal)
- `GetVATPct(): Decimal` (internal)
- `CopyFromVATPostingSetup(var VATPostingSetupFrom: Record "VAT Posting Setup")` (internal)

Plus 71 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Relations

- drill-down page [Page 5904 "Service Line List"](../page/5904.md)
- lookup page [Page 5904 "Service Line List"](../page/5904.md)
- Job Task No.: TableRelation [Table 1001 "Job Task"](../table/1001.md)
- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- No.: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- Bill-to Customer No.: TableRelation [Table 18 "Customer"](../table/18.md)
- Customer No.: TableRelation [Table 18 "Customer"](../table/18.md)
- Work Type Code: TableRelation [Table 200 "Work Type"](../table/200.md)
- Unit of Measure Code: TableRelation [Table 204 "Unit of Measure"](../table/204.md) (conditional)
- Unit of Measure Code: TableRelation [Table 205 "Resource Unit of Measure"](../table/205.md) (conditional)
- Ship-to Code: TableRelation [Table 222 "Ship-to Address"](../table/222.md)
- Gen. Bus. Posting Group: TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md)
- Gen. Prod. Posting Group: TableRelation [Table 251 "Gen. Product Posting Group"](../table/251.md)
- Transaction Type: TableRelation [Table 258 "Transaction Type"](../table/258.md)
- Transport Method: TableRelation [Table 259 "Transport Method"](../table/259.md)
- No.: TableRelation [Table 27 "Item"](../table/27.md) (conditional)
- Replaced Item No.: TableRelation [Table 27 "Item"](../table/27.md) (conditional)
- Exit Point: TableRelation [Table 282 "Entry/Exit Point"](../table/282.md)
- Area: TableRelation [Table 284 "Area"](../table/284.md)
- Transaction Specification: TableRelation [Table 285 "Transaction Specification"](../table/285.md)
- Shipping Agent Code: TableRelation [Table 291 "Shipping Agent"](../table/291.md)
- Tax Area Code: TableRelation [Table 318 "Tax Area"](../table/318.md)
- Tax Group Code: TableRelation [Table 321 "Tax Group"](../table/321.md)
- VAT Bus. Posting Group: TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md)
- VAT Prod. Posting Group: TableRelation [Table 324 "VAT Product Posting Group"](../table/324.md)
- Reserved Qty. (Base): CalcFormula [Table 337 "Reservation Entry"](../table/337.md)
- Reserved Quantity: CalcFormula [Table 337 "Reservation Entry"](../table/337.md)
- Customer Disc. Group: TableRelation [Table 340 "Customer Discount Group"](../table/340.md)
- Shortcut Dimension 1 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Shortcut Dimension 2 Code: TableRelation [Table 349 "Dimension Value"](../table/349.md)
- Currency Code: TableRelation [Table 4 "Currency"](../table/4.md)
- Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md) (conditional)
- Item Reference Unit of Measure: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md)
- Unit of Measure Code: TableRelation [Table 5404 "Item Unit of Measure"](../table/5404.md) (conditional)
- VAT Clause Code: TableRelation [Table 560 "VAT Clause"](../table/560.md)
- Responsibility Center: TableRelation [Table 5714 "Responsibility Center"](../table/5714.md)
- Substitution Available: CalcFormula [Table 5715 "Item Substitution"](../table/5715.md)
- Item Category Code: TableRelation [Table 5722 "Item Category"](../table/5722.md)
- Shipping Agent Service Code: TableRelation [Table 5790 "Shipping Agent Services"](../table/5790.md)
- Document No.: TableRelation [Table 5900 "Service Header"](../table/5900.md)
- Service Item Line Description: CalcFormula [Table 5901 "Service Item Line"](../table/5901.md)
- Service Item Line No.: TableRelation [Table 5901 "Service Item Line"](../table/5901.md)
- Attached to Line No.: TableRelation [Table 5902 "Service Line"](../table/5902.md)
- Fault Area Code: TableRelation [Table 5915 "Fault Area"](../table/5915.md)
- Symptom Code: TableRelation [Table 5916 "Symptom Code"](../table/5916.md)
- Fault Reason Code: TableRelation [Table 5917 "Fault Reason Code"](../table/5917.md)
- Fault Code: TableRelation [Table 5918 "Fault Code"](../table/5918.md)
- Resolution Code: TableRelation [Table 5919 "Resolution Code"](../table/5919.md)
- Replaced Item No.: TableRelation [Table 5940 "Service Item"](../table/5940.md) (conditional)
- Service Item No.: TableRelation [Table 5940 "Service Item"](../table/5940.md) (conditional)
- Contract No.: TableRelation [Table 5965 "Service Contract Header"](../table/5965.md)
- Customer Price Group: TableRelation [Table 6 "Customer Price Group"](../table/6.md)
- Service Price Group Code: TableRelation [Table 6080 "Service Price Group"](../table/6080.md)
- Serv. Price Adjmt. Gr. Code: TableRelation [Table 6082 "Service Price Adjustment Group"](../table/6082.md)
- Return Reason Code: TableRelation [Table 6635 "Return Reason"](../table/6635.md)
- No.: TableRelation [Table 7 "Standard Text"](../table/7.md) (conditional)
- Bin Code: TableRelation [Table 7302 "Bin Content"](../table/7302.md) (conditional)
- Whse. Outstanding Qty. (Base): CalcFormula [Table 7321 "Warehouse Shipment Line"](../table/7321.md)
- Posting Group: TableRelation [Table 94 "Inventory Posting Group"](../table/94.md)
- Time Sheet No.: TableRelation [Table 950 "Time Sheet Header"](../table/950.md)
- Time Sheet Line No.: TableRelation [Table 951 "Time Sheet Line"](../table/951.md)
- Time Sheet Date: TableRelation [Table 952 "Time Sheet Detail"](../table/952.md)

## Referenced by

13 fields in 7 objects relate to this table (TableRelation or CalcFormula).

- [Table 5900 "Service Header"](../table/5900.md): Amount, Amount Including VAT, Completely Shipped
- [Table extension 6270 "Sustainability Service Header"](../tableextension/6270.md): Posted Total CO2e, Sustainability Lines Exist, Total CO2e
- [Table extension 6450 "Serv. Customer"](../tableextension/6450.md): Outstanding Serv. Orders (LCY), Outstanding Serv.Invoices(LCY), Serv Shipped Not Invoiced(LCY)
- [Table 5902 "Service Line"](../table/5902.md): Attached to Line No.
- [Table extension 6277 "Sust. Service Item Line"](../tableextension/6277.md): Total CO2e
- [Table extension 6452 "Serv. Item"](../tableextension/6452.md): Qty. on Service Order
- [Table extension 6454 "Serv. Stockkeeping Unit"](../tableextension/6454.md): Qty. on Service Order

## Pages and codeunits on this table

- [Page 5904 "Service Line List"](../page/5904.md) (source table)
- [Page 5905 "Service Lines"](../page/5905.md) (source table)
- [Page 5907 "Service Item Worksheet Subform"](../page/5907.md) (source table)
- [Page 5934 "Service Invoice Subform"](../page/5934.md) (source table)
- [Page 5936 "Service Credit Memo Subform"](../page/5936.md) (source table)
- [Page 5966 "Service Quote Lines"](../page/5966.md) (source table)
- [Page 5999 "Available - Service Lines"](../page/5999.md) (source table)
- [Page 6036 "Service Lines Subform"](../page/6036.md) (source table)
- [Page 9124 "Service Line FactBox"](../page/9124.md) (source table)
- [Codeunit 5932 "Service-Get Shipment"](../codeunit/5932.md) (codeunit runs on it)
- [Codeunit 5950 "Service-Calc. Discount"](../codeunit/5950.md) (codeunit runs on it)
- [Codeunit 5951 "Service-Disc. (Yes/No)"](../codeunit/5951.md) (codeunit runs on it)
- [Codeunit 5981 "Service-Post (Yes/No)"](../codeunit/5981.md) (codeunit runs on it)

## Extended by

- [Table extension 5034 "Serv. Decl. Serv. Line"](../tableextension/5034.md)
- [Table extension 6271 "Sustainability Service Line"](../tableextension/6271.md)
- [Table extension 6616 "FS Service Line"](../tableextension/6616.md)

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 408 "DimensionManagement"](../codeunit/408.md) (11 calls: `CreateDim → GetRecDefaultDimID`, `CreateDim → UpdateGlobalDimFromDimSetID`, `CreateDimFromDefaultDim → IsDefaultDimDefinedForTable`, …)
- [Codeunit 99000842 "Service Line-Reserve"](../codeunit/99000842.md) (10 calls: `CheckIfServiceLineMeetsReservedFromStockSetting → GetReservedQtyFromInventory`, `InsertItemTracking → DeleteLine`, `OnDelete → DeleteLine`, …)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (6 calls: `CalcBaseQty → CalcBaseQty`, `CheckApplFromItemLedgEntry → QtyRndPrecision`, `GetUnitCost → GetQtyPerUnitOfMeasure`, …)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (3 calls: `ConfirmAdjPriceLineChange → GetResponseOrDefault`, `CopyFromCost → GetResponseOrDefault`, `SplitResourceLine → GetResponseOrDefault`)
- [Codeunit 398 "Sales Tax Calculate"](../codeunit/398.md) (3 calls: `InitOutstandingAmount → CalculateTax`, `UpdateVATAmounts → CalculateTax`, `UpdateVATAmounts → ReverseCalculateTax`)
- [Codeunit 5900 "ServOrderManagement"](../codeunit/5900.md) (3 calls: `CopyFromItem → IsCreditDocumentType`, `InitHeaderDefaults → FindResLocationCode`, `ReplaceServItem → IsCreditDocumentType`)
- [Codeunit 1511 "Notification Lifecycle Mgt."](../codeunit/1511.md) (2 calls: `SendBlockedItemNotification → SendNotification`, `SendBlockedItemVariantNotification → SendNotification`)
- [Codeunit 5955 "Serv. Dimension Management"](../codeunit/5955.md) (2 calls: `GetTableValuePair → ServiceLineTypeToTableID`, `InitDefaultDimensionSources → ServiceLineTypeToTableID`)
- [Codeunit 5995 "Service Warehouse Mgt."](../codeunit/5995.md) (2 calls: `InitHeaderDefaults → ServiceLineVerifyChange`, `OnDelete → ServiceLineDelete`)
- [Codeunit 6453 "Serv. Item Check Avail."](../codeunit/6453.md) (2 calls: `CheckItemAvailable → RaiseUpdateInterruptedError`, `CheckItemAvailable → ServiceInvLineCheck`)
- [Codeunit 6479 "Serv. Catalog Item Mgt."](../codeunit/6479.md) (2 calls: `OnDelete → DelNonStockFSM`, `ShowNonstock → NonStockFSM`)
- [Codeunit 65 "Discount Notification Mgt."](../codeunit/65.md) (2 calls: `NotifyOnMissingSetup → NotifyAboutMissingSetup`, `NotifyOnMissingSetup → RecallNotification`)
- [Codeunit 99000830 "Create Reserv. Entry"](../codeunit/99000830.md) (2 calls: `InsertItemTracking → CreateEntry`, `InsertItemTracking → CreateReservEntryFor`)
- [Codeunit 5777 "Whse. Validate Source Line"](../codeunit/5777.md) (1 call: `CheckWarehouse → WhseLinesExist`)
- [Codeunit 5990 "Serv. Item Reference Mgt."](../codeunit/5990.md) (1 call: `UpdateItemReference → EnterServiceItemReference`)
- [Codeunit 6474 "Serv. Item Substitution"](../codeunit/6474.md) (1 call: `ShowItemSub → ItemServiceSubstGet`)
- [Codeunit 6489 "Serv. Check Credit Limit"](../codeunit/6489.md) (1 call: `UpdateAmounts → ServiceLineCheck`)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (1 call: `RowID1 → ComposeRowID`)
- [Codeunit 7001 "Price Calculation Mgt."](../codeunit/7001.md) (1 call: `GetPriceCalculationHandler → GetHandler`)
- [Codeunit 7302 "WMS Management"](../codeunit/7302.md) (1 call: `GetDefaultBin → GetDefaultBin`)
- [Codeunit 7317 "Whse. Integration Management"](../codeunit/7317.md) (1 call: `HandleDedicatedBin → CheckIfBinDedicatedOnSrcDoc`)
- [Codeunit 9070 "Document Errors Mgt."](../codeunit/9070.md) (1 call: `SwitchLinesWithErrorsFilter → GetErrorMessages`)
- [Page 38 "Item Ledger Entries"](../page/38.md) (1 call: `SelectItemEntry → (object)`)
- [Page 497 "Reservation Entries"](../page/497.md) (1 call: `ShowReservationEntries → (object)`)
- [Page 5726 "Catalog Item List"](../page/5726.md) (1 call: `ShowNonstock → (object)`)

## Recent changes

- 2026-10-06 [#12290 Remove CLEAN27 from Service Management](../../changes/bcapps/12290.md) (main, BC30, refactor)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-28, BC30

## Countries that replace it

[CA](../../localizations/ca.md), [MX](../../localizations/mx.md), [US](../../localizations/us.md)

## Deprecations

- procedure OnAfterCopyPrepaymentFromVATPostingSetup: Pending 27.0 (#if not CLEAN27), "This event is never raised."
- procedure OnAfterUpdateVATOnLinesOnAfterCalcVATAmount: Pending 27.0 (#if not CLEAN27), "The event is never raised"

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "table", object_name: "Service Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
