---
id: object/table/111
type: object
title: Table 111 "Sales Shipment Line"
summary: Table 111 "Sales Shipment Line" in Base Application (Microsoft.Sales.History). 98 fields, 20 public procedures, 21 events. Present since at least BC23, still in BC30, changed in BC24-28.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "28"
  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: 9636bf3a5bf66defb133ac95f5fc199d203b88a570bc6aed1879ba53de48185b
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Sales/History/SalesShipmentLine.Table.al
    title: src/Layers/W1/BaseApp/Sales/History/SalesShipmentLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/api/dynamics_salesshipmentline_get
    - https://learn.microsoft.com/dynamics365/business-central/dev-itpro/api-reference/v2.0/resources/dynamics_salesShipmentLine
    - https://learn.microsoft.com/dynamics365/business-central/finance-work-with-vat
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/working-with-value-added-tax-vat
  localizations:
    - localization/be
    - localization/ca
    - localization/ch
    - localization/es
    - localization/fi
    - localization/it
    - localization/mx
    - localization/no
    - localization/ru
    - localization/se
    - localization/us
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/9947
    - change/bcapps/9118
object_type: table
object_id: 111
name: Sales Shipment Line
namespace: Microsoft.Sales.History
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"
source_major: "29"
obsolete: null
countries:
  - be
  - ca
  - ch
  - es
  - fi
  - it
  - mx
  - "no"
  - ru
  - se
  - us
ms_search_form_ids: []
counts:
  fields: 98
  procedures: 46
  events: 21
  subscribers: 0
relations:
  out: 47
  referenced_by: 4
  pages: 6
  extended_by: 5
  event_subscribers: 2
  calls: 9
  called_by: 0
  implements: 0
---

# Table 111 "Sales Shipment Line"

> Table 111 "Sales Shipment Line" in Base Application (Microsoft.Sales.History). 98 fields, 20 public procedures, 21 events. Present since at least BC23, still in BC30, changed in BC24-28.

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

Learn documents this table through its pages: [Page 30063 "APIV2 - Sales Shipment Lines"](../page/30063.md) (2 Learn pages), [Page 525 "Posted Sales Shipment Lines"](../page/525.md) (1).

## Properties

| Property | Value |
|---|---|
| Caption | Sales Shipment Line |
| DataClassification | CustomerContent |
| Permissions | TableData "Item Ledger Entry" = r, TableData "Value Entry" = r |

## 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 |
|---|---|---|---|---|
| 2 | Sell-to Customer No. | Code[20] | Specifies the number of the customer. | TableRelation [Table 18 "Customer"](../table/18.md); not editable |
| 3 | Document No. | Code[20] | Specifies the shipment number. | TableRelation [Table 110 "Sales Shipment Header"](../table/110.md) (Sales Shipment Header) |
| 4 | Line No. | Integer | — |  |
| 5 | Type | Enum "Sales Line Type" | Specifies the line type. | enum [Enum 37 "Sales Line Type"](../enum/37.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 156 "Resource"](../table/156.md), [Table 27 "Item"](../table/27.md) (if (Type = const("G/L Account")) "G/L Account" else if (Type = const(Item)) Item else if (Type = const(Resource)) Resource else if (Type = const("Fixed Asset")) "Fixed Asset" else if (Type = const("Charge (Item)")) "Item Charge") |
| 7 | Location Code | Code[10] | Specifies the code for the location of the item on the shipment line which was posted. | TableRelation [Table 14 "Location"](../table/14.md) (Location where("Use As In-Transit" = const(false))) |
| 8 | Posting Group | Code[20] | — | TableRelation [Table 5606 "FA Posting Group"](../table/5606.md), [Table 94 "Inventory Posting Group"](../table/94.md) (if (Type = const(Item)) "Inventory Posting Group" else if (Type = const("Fixed Asset")) "FA Posting Group"); not editable |
| 10 | Shipment Date | Date | Specifies when items on the document are shipped or were shipped. A shipment date is usually calculated from a requested delivery date plus lead time. |  |
| 11 | Description | Text[100] | Specifies the name of the item or general ledger account, or some descriptive text. |  |
| 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 units of the item specified on the line. |  |
| 22 | Unit Price | Decimal | — |  |
| 23 | Unit Cost (LCY) | Decimal | Specifies the cost, in LCY, of one unit of the item or resource on the line. <small>via [Page 5851 "Get Post.Doc - S.ShptLn Sbfrm"](../page/5851.md)</small> |  |
| 25 | VAT % | Decimal | — | not editable |
| 27 | Line Discount % | Decimal | — |  |
| 32 | Allow Invoice Disc. | Boolean | — |  |
| 34 | Gross Weight | Decimal | Specifies the gross weight of one unit of the item. In the sales statistics window, the gross weight on the line is included in the total gross weight of all the lines for the particular sales document. |  |
| 35 | Net Weight | Decimal | Specifies the net weight of one unit of the item. In the sales statistics window, the net weight on the line is included in the total net weight of all the lines for the particular sales document. |  |
| 36 | Units per Parcel | Decimal | Specifies the number of units per parcel of the item. In the sales statistics window, the number of units per parcel on the line helps to determine the total number of units for all the lines for the particular sales document. |  |
| 37 | Unit Volume | Decimal | Specifies the volume of one unit of the item. In the sales statistics window, the volume of one unit of the item on the line is included in the total volume of all the lines for the particular sales document. |  |
| 38 | Appl.-to Item Entry | Integer | Specifies the number of the item ledger entry that the document or journal line is applied to. |  |
| 39 | Item Shpt. Entry No. | Integer | — |  |
| 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))) |
| 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))) |
| 42 | Customer Price Group | Code[10] | — | TableRelation [Table 6 "Customer Price Group"](../table/6.md) (Customer Price Group) |
| 45 | Job No. | Code[20] | Specifies the number of the related project. | TableRelation [Table 167 "Job"](../table/167.md) |
| 52 | Work Type Code | Code[10] | — | TableRelation [Table 200 "Work Type"](../table/200.md) (Work Type) |
| 58 | Qty. Shipped Not Invoiced | Decimal | Specifies the quantity of the shipped item that has been posted as shipped but that has not yet been posted as invoiced. | not editable |
| 61 | Quantity Invoiced | Decimal | Specifies how many units of the item on the line have been posted as invoiced. | not editable |
| 65 | Order No. | Code[20] | Specifies the number of the sales order that this shipment was posted from. <small>via [Page 5708 "Get Shipment Lines"](../page/5708.md)</small> |  |
| 66 | Order Line No. | Integer | — |  |
| 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 |
| 71 | Purchase Order No. | Code[20] | — |  |
| 72 | Purch. Order Line No. | Integer | — |  |
| 73 | Drop Shipment | Boolean | — |  |
| 74 | Gen. Bus. Posting Group | Code[20] | — | TableRelation [Table 250 "Gen. Business Posting Group"](../table/250.md) (Gen. Business Posting Group) |
| 75 | Gen. Prod. Posting Group | Code[20] | — | 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) |
| 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 111 "Sales Shipment Line"](../table/111.md) ("Sales Shipment Line"."Line No." where("Document No." = field("Document No."))) |
| 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] | — | TableRelation [Table 318 "Tax Area"](../table/318.md) (Tax Area) |
| 86 | Tax Liable | Boolean | — |  |
| 87 | Tax Group Code | Code[20] | — | TableRelation [Table 321 "Tax Group"](../table/321.md) (Tax Group) |
| 89 | VAT Bus. Posting Group | Code[20] | — | TableRelation [Table 323 "VAT Business Posting Group"](../table/323.md) (VAT Business Posting Group) |
| 90 | VAT Prod. Posting Group | Code[20] | — | TableRelation [Table 324 "VAT Product Posting Group"](../table/324.md) (VAT Product Posting Group) |
| 91 | Currency Code | Code[10] | Specifies the currency that is used on the entry. | FlowField: lookup("Sales Shipment Header"."Currency Code" where("No." = field("Document No."))); not editable |
| 97 | Blanket Order No. | Code[20] | Specifies the number of the blanket order that the record originates from. | TableRelation [Table 36 "Sales Header"](../table/36.md) ("Sales Header"."No." where("Document Type" = const("Blanket Order"))) |
| 98 | Blanket Order Line No. | Integer | Specifies the number of the blanket order line that the record originates from. | TableRelation [Table 37 "Sales Line"](../table/37.md) ("Sales Line"."Line No." where("Document Type" = const("Blanket Order"), "Document No." = field("Blanket Order No."))) |
| 99 | VAT Base Amount | Decimal | — | not editable |
| 100 | Unit Cost | Decimal | — | not editable |
| 107 | IC Partner Ref. Type | Enum "IC Partner Reference Type" | — | enum [Enum 107 "IC Partner Reference Type"](../enum/107.md) |
| 108 | IC Partner Reference | Code[20] | — |  |
| 131 | Posting Date | Date | — |  |
| 138 | IC Item Reference No. | Code[50] | — |  |
| 480 | Dimension Set ID | Integer | — | TableRelation [Table 480 "Dimension Set Entry"](../table/480.md) (Dimension Set Entry); not editable |
| 826 | Authorized for Credit Card | Boolean | — |  |
| 1001 | 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."))); not editable |
| 1002 | Job Contract Entry No. | Integer | Project Contract Entry No. <small>caption</small> | 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)) "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 7354 "Bin"](../table/7354.md) (Bin.Code where("Location Code" = field("Location Code"), "Item Filter" = field("No."), "Variant Filter" = field("Variant Code"))) |
| 5404 | Qty. per Unit of Measure | Decimal | — | 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 5404 "Item Unit of Measure"](../table/5404.md) (if (Type = const(Item)) "Item Unit of Measure".Code where("Item No." = field("No.")) else "Unit of Measure") |
| 5415 | Quantity (Base) | Decimal | — |  |
| 5461 | Qty. Invoiced (Base) | Decimal | — | not editable |
| 5600 | FA Posting Date | Date | — |  |
| 5602 | Depreciation Book Code | Code[10] | — | TableRelation [Table 5611 "Depreciation Book"](../table/5611.md) (Depreciation Book) |
| 5605 | Depr. until FA Posting Date | Boolean | — |  |
| 5612 | Duplicate in Depreciation Book | Code[10] | — | TableRelation [Table 5611 "Depreciation Book"](../table/5611.md) (Depreciation Book) |
| 5613 | Use Duplication List | Boolean | — |  |
| 5700 | Responsibility Center | Code[10] | — | TableRelation [Table 5714 "Responsibility Center"](../table/5714.md) (Responsibility Center) |
| 5709 | Item Category Code | Code[20] | — | TableRelation [Table 5722 "Item Category"](../table/5722.md) (if (Type = const(Item)) "Item Category") |
| 5710 | Nonstock | Boolean | Specifies that the item on the sales line is a catalog item, which means it is not normally kept in inventory. |  |
| 5711 | Purchasing Code | Code[10] | — | TableRelation [Table 5721 "Purchasing"](../table/5721.md) |
| 5725 | Item Reference No. | Code[50] | Specifies the referenced item number. |  |
| 5726 | Item Reference Unit of Measure | Code[10] | Unit of Measure (Item Ref.) <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] | — |  |
| 5790 | Requested Delivery Date | Date | Specifies the date that the customer has asked for the order to be delivered. | not editable |
| 5791 | Promised Delivery Date | Date | Specifies the date that you have promised to deliver the order, as a result of the Order Promising function. | not editable |
| 5792 | Shipping Time | DateFormula | Specifies how long it takes from when the items are shipped from the warehouse to when they are delivered. |  |
| 5793 | Outbound Whse. Handling Time | DateFormula | Specifies a date formula for the time it takes to get items ready to ship from this location. The time element is used in the calculation of the delivery date as follows: Shipment Date + Outbound Warehouse Handling Time = Planned Shipment Date + Shipping Time = Planned Delivery Date. |  |
| 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... | not editable |
| 5795 | Planned Shipment Date | Date | Specifies the date that the shipment should ship from the warehouse. If the customer requests a delivery date, the program calculates the planned shipment date by subtracting the shipping time from the requested delivery date. If the customer does not request a delivery date or the requested deliver... | not editable |
| 5798 | External Document No. | Code[35] | Specifies the number that the customer uses in their own system to refer to this sales document. <small>via [Page 5708 "Get Shipment Lines"](../page/5708.md)</small> |  |
| 5799 | Your Reference | Text[35] | Specifies the customer's reference. The content will be printed on sales documents. <small>via [Page 5708 "Get Shipment Lines"](../page/5708.md)</small> |  |
| 5811 | Appl.-from Item Entry | Integer | Specifies the number of the item ledger entry that the document or journal line is applied from. |  |
| 5812 | Item Charge Base Amount | Decimal | — |  |
| 5817 | Correction | Boolean | Specifies that this sales shipment line has been posted as a corrective entry. | not editable |
| 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) |
| 8000 | Document Id | Guid | — |  |

## Keys

- Key1: Document No., Line No. (clustered)
- Key2: Order No., Order Line No., Posting Date
- Key3: Blanket Order No., Blanket Order Line No.
- Key4: Item Shpt. Entry No.
- Key5: Sell-to Customer No.
- Key6: Bill-to Customer No.
- Key7: Document Id

## Events published

- `OnAfterClearSalesLineValues(var SalesShipmentLine: Record "Sales Shipment Line"; var SalesLine: Record "Sales Line")` (integration): Raised after clearing sales line values from the sales shipment line.
- `OnAfterDescriptionSalesLineInsert(var SalesLine: Record "Sales Line"; SalesShipmentLine: Record "Sales Shipment Line"; var NextLineNo: Integer)` (integration): Raised after inserting a description sales line from the shipment line.
- `OnAfterInitFromSalesLine(SalesShptHeader: Record "Sales Shipment Header"; SalesLine: Record "Sales Line"; var SalesShptLine: Record "Sales Shipment Line")` (integration): Raised after initializing the sales shipment line from a sales line.
- `OnAfterInsertInvLineFromShptLine(var SalesLine: Record "Sales Line"; SalesOrderLine: Record "Sales Line"; var NextLineNo: Integer; var SalesShipmentLine: Record "Sales Shipment Line"; var TempSalesLine: Record "Sales Line" temporary; var SalesHeader: Record "Sales Header")` (integration): Raised after inserting an invoice line from a shipment line.
- `OnBeforeCalcShippedSaleNotReturned(var SalesShipmentLine: Record "Sales Shipment Line"; var ShippedQtyNotReturned: Decimal; var RevUnitCostLCY: Decimal; ExactCostReverse: Boolean; var IsHandled: Boolean)` (integration): Raised before calculating the shipped sales quantity not returned.
- `OnBeforeInsertInvLineFromShptLine(var SalesShptLine: Record "Sales Shipment Line"; var SalesLine: Record "Sales Line"; SalesOrderLine: Record "Sales Line"; var IsHandled: Boolean; var TransferOldExtTextLines: Codeunit "Transfer Old Ext. Text Lines")` (integration): Raised before inserting an invoice line from a shipment line.
- `OnBeforeInsertInvLineFromShptLineBeforeInsertTextLine(var SalesShptLine: Record "Sales Shipment Line"; var SalesLine: Record "Sales Line"; var NextLineNo: Integer; var Handled: Boolean; TempSalesLine: Record "Sales Line" temporary; SalesInvHeader: Record "Sales Header")` (integration): Raised before inserting a text line when inserting an invoice line from a shipment line.
- `OnBeforeCodeInsertInvLineFromShptLine(var SalesShipmentLine: Record "Sales Shipment Line"; var SalesLine: Record "Sales Line"; var IsHandled: Boolean)` (integration): Raised before the code section of InsertInvLineFromShptLine executes.
- `OnInsertInvLineFromShptLineOnAfterSalesOrderHeaderGet(var SalesOrderHeader: Record "Sales Header"; var SalesInvHeader: Record "Sales Header"; var SalesOrderLine: Record "Sales Line")` (integration): Raised after getting the sales order header during InsertInvLineFromShptLine.
- `OnInsertInvLineFromShptLineOnAfterAssignDescription(var SalesShipmentLine: Record "Sales Shipment Line"; var SalesOrderLine: Record "Sales Line")` (integration): Raised after assigning the description during InsertInvLineFromShptLine.
- `OnInsertInvLineFromShptLineOnAfterCalcQuantities(var SalesLine: Record "Sales Line"; var SalesOrderLine: Record "Sales Line")` (integration): Raised after calculating quantities during InsertInvLineFromShptLine.
- `OnInsertInvLineFromShptLineOnAfterUpdatePrepaymentsAmounts(var SalesLine: Record "Sales Line"; var SalesOrderLine: Record "Sales Line"; var SalesShipmentLine: Record "Sales Shipment Line")` (integration): Raised after updating prepayment amounts during InsertInvLineFromShptLine.
- `OnInsertInvLineFromShptLineOnBeforeValidateQuantity(var SalesShipmentLine: Record "Sales Shipment Line"; var SalesLine: Record "Sales Line"; var IsHandled: Boolean; var SalesInvHeader: Record "Sales Header")` (integration): Raised before validating quantity during InsertInvLineFromShptLine.
- `OnInsertInvLineFromShptLineOnBeforeInsertDescriptionLine(SalesShipmentLine: Record "Sales Shipment Line"; var SalesLine: Record "Sales Line"; TempSalesLine: Record "Sales Line" temporary; var SalesInvHeader: Record "Sales Header"; var NextLineNo: integer)` (integration): Raised before inserting a description line during InsertInvLineFromShptLine.
- `OnInsertInvLineFromShptLineOnAfterValidateInvDiscountAmount(var SalesLine: Record "Sales Line"; SalesOrderLine: Record "Sales Line"; SalesShipmentLine: Record "Sales Shipment Line"; SalesInvHeader: Record "Sales Header")` (integration): Raised after validating invoice discount amount during InsertInvLineFromShptLine.
- `OnInsertInvLineFromShptLineOnAfterInsertAllLines(var SalesShipmentLine: Record "Sales Shipment Line"; var SalesLine: Record "Sales Line"; var IsHandled: Boolean)` (integration): Raised after inserting all lines during InsertInvLineFromShptLine.
- `OnBeforeSetSecurityFilterOnRespCenter(var SalesShipmentLine: Record "Sales Shipment Line"; var IsHandled: Boolean)` (integration): Raised before setting security filter on responsibility center for the sales shipment line.
- `OnInsertInvLineFromShptLineOnBeforeAssigneSalesLine(var SalesShipmentLine: Record "Sales Shipment Line"; SalesHeaderInv: Record "Sales Header"; SalesHeaderOrder: Record "Sales Header"; var SalesLine: Record "Sales Line"; var SalesOrderLine: Record "Sales Line"; Currency: Record Currency)` (integration): Raised before assigning the sales line during InsertInvLineFromShptLine.
- `OnInsertInvLineFromShptLineOnBeforeSalesHeaderGet(var SalesHeader: Record "Sales Header"; SalesShipmentLine: Record "Sales Shipment Line"; var TempSalesLine: Record "Sales Line" temporary; var IsHandled: Boolean)` (integration): Raised before getting the sales header during InsertInvLineFromShptLine.
- `OnGetSalesInvLinesOnBeforeGetSalesInvoiceLine(var SalesInvoiceLine: Record "Sales Invoice Line")` (integration): Raised before getting the sales invoice line during GetSalesInvLines.
- `OnBeforeShowItemTrackingLines(var SalesShipmentLine: Record "Sales Shipment Line"; var IsHandled: Boolean)` (integration): Raised before showing item tracking lines for the sales shipment line.

## Trigger event subscribers

- OnAfterDeleteEvent: [Codeunit 6450 "Serv. Integration Mgt."](../codeunit/6450.md) SalesShipmentLineOnAfterDelete
- OnBeforeInsertEvent: [Codeunit 5152 "API - Update Referenced Fields"](../codeunit/5152.md) UpdateReferencedIdsSalesShipmentLineOnInsert

## Procedures

- `GetCurrencyCode(): Code[10]`: Retrieves the currency code from the sales shipment header.
- `ShowDimensions()`: Opens the dimension set entries page for this shipment line.
- `ShowItemTrackingLines()`: Opens the Item Tracking Lines page showing the tracking for this shipment line.
- `InsertInvLineFromShptLine(var SalesLine: Record "Sales Line")`: Inserts a sales invoice line from this shipment line when creating an invoice from a shipment.
- `GetSalesInvLines(var TempSalesInvoiceLine: Record "Sales Invoice Line" temporary)`: Retrieves invoice lines associated with this shipment line.
- `CalcShippedSaleNotReturned(var ShippedQtyNotReturned: Decimal; var RevUnitCostLCY: Decimal; ExactCostReverse: Boolean)`: Calculates the shipped sales quantity that has not been returned.
- `FilterPstdDocLnItemLedgEntries(var ItemLedgEntry: Record "Item Ledger Entry")`: Applies filters to item ledger entries to retrieve entries for this posted document line.
- `ShowItemSalesInvLines()`: Opens a page displaying the invoice lines for this shipment line.
- `ShowLineComments()`: Opens a page displaying the comments for this shipment line.
- `ShowAsmToOrder()`: Shows the posted assembly order linked to this shipment line.
- `ShowShortcutDimCode(var ShortcutDimCode: array[8] of Code[20])`: Retrieves the shortcut dimension codes for this shipment line.
- `AsmToShipmentExists(var PostedAsmHeader: Record "Posted Assembly Header"): Boolean`: Checks if a posted assembly order exists for this shipment line.
- `InitFromSalesLine(SalesShptHeader: Record "Sales Shipment Header"; SalesLine: Record "Sales Line")`: Initializes the sales shipment line from a sales line when posting a shipment.
- `ClearSalesLineValues(var SalesLine: Record "Sales Line")`: Clears quantity, amount, and related fields on a sales line when copying from shipment.
- `FormatType(): Text`: Formats the line type for display, handling blank types specially.
- `CalcBaseQuantities(var SalesLine: Record "Sales Line"; QtyFactor: Decimal)`: Calculates base quantity fields on a sales line using the specified quantity factor.
- `GetCaptionClass(FieldNumber: Integer): Text[80]`: Retrieves the caption class for a specified field.
- `HasTypeToFillMandatoryFields(): Boolean`: Determines whether the line has a type that requires mandatory fields to be filled.
- `UpdateReferencedIds()`: Updates the referenced IDs such as Document Id for API integrations.
- `SetSecurityFilterOnRespCenter()`: Applies a security filter based on the user's responsibility center setup.

Plus 5 local procedures.

## Triggers

OnInsert, OnDelete

## Relations

- drill-down page [Page 525 "Posted Sales Shipment Lines"](../page/525.md)
- lookup page [Page 525 "Posted Sales Shipment Lines"](../page/525.md)
- Job Task No.: TableRelation [Table 1001 "Job Task"](../table/1001.md)
- Currency Code: CalcFormula [Table 110 "Sales Shipment Header"](../table/110.md)
- Document No.: TableRelation [Table 110 "Sales Shipment Header"](../table/110.md)
- Attached to Line No.: TableRelation [Table 111 "Sales Shipment Line"](../table/111.md)
- Location Code: TableRelation [Table 14 "Location"](../table/14.md)
- No.: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- No.: TableRelation [Table 156 "Resource"](../table/156.md) (conditional)
- Job No.: TableRelation [Table 167 "Job"](../table/167.md)
- Bill-to Customer No.: TableRelation [Table 18 "Customer"](../table/18.md)
- Sell-to 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)
- 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)
- 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)
- 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)
- 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)
- Blanket Order No.: TableRelation [Table 36 "Sales Header"](../table/36.md)
- Blanket Order Line No.: TableRelation [Table 37 "Sales Line"](../table/37.md)
- Dimension Set ID: TableRelation [Table 480 "Dimension Set Entry"](../table/480.md)
- Variant Code: TableRelation [Table 5401 "Item Variant"](../table/5401.md)
- 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)
- No.: TableRelation [Table 5600 "Fixed Asset"](../table/5600.md) (conditional)
- Posting Group: TableRelation [Table 5606 "FA Posting Group"](../table/5606.md) (conditional)
- Depreciation Book Code: TableRelation [Table 5611 "Depreciation Book"](../table/5611.md)
- Duplicate in Depreciation Book: TableRelation [Table 5611 "Depreciation Book"](../table/5611.md)
- Responsibility Center: TableRelation [Table 5714 "Responsibility Center"](../table/5714.md)
- Purchasing Code: TableRelation [Table 5721 "Purchasing"](../table/5721.md)
- Item Category Code: TableRelation [Table 5722 "Item Category"](../table/5722.md)
- No.: TableRelation [Table 5800 "Item Charge"](../table/5800.md) (conditional)
- Customer Price Group: TableRelation [Table 6 "Customer Price Group"](../table/6.md)
- Return Reason Code: TableRelation [Table 6635 "Return Reason"](../table/6635.md)
- Bin Code: TableRelation [Table 7354 "Bin"](../table/7354.md)
- Posting Group: TableRelation [Table 94 "Inventory Posting Group"](../table/94.md) (conditional)

## Referenced by

4 fields in 3 objects relate to this table (TableRelation or CalcFormula).

- [Table 5940 "Service Item"](../table/5940.md): Sales/Serv. Shpt. Document No., Sales/Serv. Shpt. Line No.
- [Table 111 "Sales Shipment Line"](../table/111.md): Attached to Line No.
- [Table 914 "Posted Assemble-to-Order Link"](../table/914.md): Document No.

## Pages and codeunits on this table

- [Page 131 "Posted Sales Shpt. Subform"](../page/131.md) (source table)
- [Page 30063 "APIV2 - Sales Shipment Lines"](../page/30063.md) (source table)
- [Page 525 "Posted Sales Shipment Lines"](../page/525.md) (source table)
- [Page 5708 "Get Shipment Lines"](../page/5708.md) (source table)
- [Page 5824 "Sales Shipment Lines"](../page/5824.md) (source table)
- [Page 5851 "Get Post.Doc - S.ShptLn Sbfrm"](../page/5851.md) (source table)
- [Codeunit 5815 "Undo Sales Shipment Line"](../codeunit/5815.md) (codeunit runs on it)

## Extended by

- [Table extension 30107 "Shpfy Sales Shipment Line"](../tableextension/30107.md)
- [Table extension 4864 "AutoAcc Sales Shipment Line"](../tableextension/4864.md)
- [Table extension 6241 "Sust. Sales Shipment Line"](../tableextension/6241.md)
- [Table extension 6904 "Exp - Sales Shpt Line - Ext"](../tableextension/6904.md)
- [Table extension 8010 "Sales Shipment Line"](../tableextension/8010.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 379 "Transfer Old Ext. Text Lines"](../codeunit/379.md) (3 calls: `InsertInvLineFromShptLine → ClearLineNumbers`, `InsertInvLineFromShptLine → GetNewLineNumber`, `InsertInvLineFromShptLine → TransferExtendedText`)
- [Codeunit 408 "DimensionManagement"](../codeunit/408.md) (2 calls: `ShowDimensions → ShowDimensionSet`, `ShowShortcutDimCode → GetShortcutDimensions`)
- [Codeunit 53 "Translation Helper"](../codeunit/53.md) (2 calls: `InsertInvLineFromShptLine → RestoreGlobalLanguage`, `InsertInvLineFromShptLine → SetGlobalLanguageByCode`)
- [Codeunit 5402 "Unit of Measure Management"](../codeunit/5402.md) (2 calls: `CalcBaseQuantities → QtyRndPrecision`, `CalcQty → QtyRndPrecision`)
- [Codeunit 441 "Prepayment Mgt."](../codeunit/441.md) (1 call: `InsertInvLineFromShptLine → TestSalesOrderLineForGetShptLines`)
- [Codeunit 5700 "User Setup Management"](../codeunit/5700.md) (1 call: `SetSecurityFilterOnRespCenter → GetSalesFilter`)
- [Codeunit 6500 "Item Tracking Management"](../codeunit/6500.md) (1 call: `InsertInvLineFromShptLine → CopyHandledItemTrkgToInvLine`)
- [Codeunit 6503 "Item Tracking Doc. Management"](../codeunit/6503.md) (1 call: `ShowItemTrackingLines → ShowItemTrackingForShptRcptLine`)
- [Page 526 "Posted Sales Invoice Lines"](../page/526.md) (1 call: `ShowItemSalesInvLines → (object)`)

## Recent changes

- 2026-08-13 [#9947 Allow long localized sales and purchase line type captions](../../changes/bcapps/9947.md) (main, BC30, fix)
- 2026-07-07 [#9118 Bugs/master GitHub event batch 1745](../../changes/bcapps/9118.md) (main, BC30, fix)

## Across versions

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

## Countries that replace it

[BE](../../localizations/be.md), [CA](../../localizations/ca.md), [CH](../../localizations/ch.md), [ES](../../localizations/es.md), [FI](../../localizations/fi.md), [IT](../../localizations/it.md), [MX](../../localizations/mx.md), [NO](../../localizations/no.md), [RU](../../localizations/ru.md), [SE](../../localizations/se.md), [US](../../localizations/us.md)

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: "Sales Shipment Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
