---
id: object/table/11000003-nl
type: object
title: Table 11000003 "Detail Line" (NL)
summary: Table 11000003 "Detail Line" (NL) in the NL country layer (Microsoft.Bank.Payment). 17 fields, 10 public procedures, 17 events. Introduced in BC28, still in BC30.
tier: official
language: en
tags:
  - table
  - nl layer
versions:
  introduced: "28"
  last_changed: null
  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: 55d5cd1964b5248eaa94ac2462858d1495fe6b51d10b12ba3ee9a1b86bf6abf2
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/NL/BaseApp/Local/Bank/Payment/DetailLine.Table.al
    title: src/Layers/NL/BaseApp/Local/Bank/Payment/DetailLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/nl
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 11000003
name: Detail Line
namespace: Microsoft.Bank.Payment
app: Base Application
extends: null
first_version: "28"
last_version: "30"
present_in:
  - "28"
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
country: NL
counts:
  fields: 17
  procedures: 33
  events: 17
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
---

# Table 11000003 "Detail Line" (NL)

> Table 11000003 "Detail Line" (NL) in the NL country layer (Microsoft.Bank.Payment). 17 fields, 10 public procedures, 17 events. Introduced in BC28, still in BC30.

NL country layer · Microsoft.Bank.Payment · BC28-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/NL/BaseApp/Local/Bank/Payment/DetailLine.Table.al) · facts from BC29

An object of the [NL localization](../../localizations/nl.md), not part of W1.

## Properties

| Property | Value |
|---|---|
| Caption | Detail 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 | Account Type | Option | — | OptionCaption: Customer,Vendor,Employee; not editable |
| 2 | Serial No. (Entry) | Integer | — | TableRelation if ("Account Type" = const(Customer)) "Cust. Ledger Entry"."Entry No." else if ("Account Type" = const(Vendor)) "Vendor Ledger Entry"."Entry No."; NotBlank |
| 3 | Account No. | Code[20] | — | TableRelation if ("Account Type" = const(Customer)) Customer."No." else if ("Account Type" = const(Vendor)) Vendor."No."; not editable |
| 4 | Date | Date | — | not editable |
| 5 | Status | Option | — | OptionCaption: Proposal,In process,Posted,Correction; not editable |
| 6 | Bank | Code[20] | — | TableRelation if ("Account Type" = const(Customer)) "Customer Bank Account".Code where("Customer No." = field("Account No.")) else if ("Account Type" = const(Vendor)) "Vendor Bank Account".Code where("Vendor No." = field("Account No.")); not editable |
| 7 | Our Bank | Code[20] | — | TableRelation "Bank Account"."No."; not editable |
| 8 | Transaction Mode | Code[20] | — | TableRelation "Transaction Mode".Code where("Account Type" = field("Account Type")); not editable |
| 9 | Order | Option | — | OptionCaption: Both,Debit,Credit; not editable |
| 10 | Amount | Decimal | — |  |
| 11 | Transaction No. | Integer | — | not editable |
| 12 | Connect Lines | Integer | — | TableRelation if (Status = const(Proposal)) "Proposal Line"."Line No." where("Our Bank No." = field("Our Bank")) else if (Status = const("In process")) "Payment History Line"."Line No." where("Our Bank" = field("Our Bank"), "Run No." = field("Connect Batches")); not editable |
| 13 | Connect Batches | Code[20] | — | TableRelation if (Status = const("In process")) "Payment History"."Run No."; not editable |
| 14 | Description | Text[32] | — |  |
| 15 | Currency Code | Code[10] | — | TableRelation Currency.Code; not editable |
| 16 | Amount (Entry) | Decimal | — |  |
| 17 | Currency Code (Entry) | Code[10] | — | not editable |

## Keys

- Key1: Transaction No. (clustered)
- Key2: Account Type, Serial No. (Entry), Status, Date, Connect Batches, Connect Lines, Our Bank
- Key3: Account Type, Account No., Bank, Transaction Mode, Currency Code, Date
- Key4: Our Bank, Status, Connect Batches, Connect Lines, Date

## Events published

- `OnAfterCalculatePartOfBalance(DetailLineRec: Record "Detail Line"; var Percent: Decimal)` (integration)
- `OnAfterCalculateBalance(DetailLine: Record "Detail Line"; var Balance: Decimal)` (integration)
- `OnAfterSetKeyForCalculateTotalAmount(var DetailLine: Record "Detail Line")` (integration)
- `OnBeforeFillVendorDescription(var DetailLine: Record "Detail Line"; Vendor: Record Vendor; VendorLedgerEntry: Record "Vendor Ledger Entry"; var IsHandled: Boolean)` (integration)
- `OnBeforeSerialnoPostingLookup(var DetailLine: Record "Detail Line")` (integration)
- `OnCalculateBalanceOnBeforeConvertToCurrency(var DetailLineRec: Record "Detail Line"; var VendLedgEntry: Record "Vendor Ledger Entry"; var CustLedgEntry: Record "Cust. Ledger Entry"; var Balance: Decimal)` (integration)
- `OnCalculateTotalAmountOnBeforeCalcSums(var DetailLineRec: Record "Detail Line"; var DetailLine: Record "Detail Line"; var VendLedgEntry: Record "Vendor Ledger Entry"; var CustLedgEntry: Record "Cust. Ledger Entry")` (integration)
- `OnSerialnoPostingLookupOnAfterGetVendLedgEntry(var DetailLineRec: Record "Detail Line"; var VendorLedgerEntry: Record "Vendor Ledger Entry")` (integration)
- `OnSerialnoPostingLookupOnAfterCustEntryGetRecord(var DetailLine: Record "Detail Line"; var CustLedgerEntry: Record "Cust. Ledger Entry")` (integration)
- `OnSerialnoPostingLookupOnBeforeVenEntryRunModal(var VendorLedgerEntry: Record "Vendor Ledger Entry")` (integration)
- `OnValidateAmountEntryOnAfterCalcShowExceedMessage(var DetailLine: Record "Detail Line"; Difference: Decimal; RemainingAmount: Decimal; var ShowExceedMessage: Boolean)` (integration)
- `OnValidateSerialNoEntryOnOnAfterGetVendorEntries(var DetailLine: Record "Detail Line"; VendorLedgerEntry: Record "Vendor Ledger Entry"; CurrFieldNo: Integer)` (integration)
- `OnValidateSerialNoEntryOnBeforeValidateAmountFromCustLedgEntry(var DetailLineRec: Record "Detail Line"; TrMode: Record "Transaction Mode"; CustLedgEntry: Record "Cust. Ledger Entry"; var IsHandled: Boolean)` (integration)
- `OnValidateSerialNoEntryOnBeforeValidateAmountFromVendLedgEntry(var DetailLineRec: Record "Detail Line"; TrMode: Record "Transaction Mode"; VendLedgEntry: Record "Vendor Ledger Entry"; CurrFieldNo: Integer; var IsHandled: Boolean)` (integration)
- `OnValidateSerialNoEntryOnBeforeValidateAmountFromEmplLedgEntry(var DetailLineRec: Record "Detail Line"; TrMode: Record "Transaction Mode"; EmplLedgEntry: Record "Employee Ledger Entry"; var IsHandled: Boolean)` (integration)
- `OnUpdateConnectionOnAfterGetProposalLine(var DetailLine: Record "Detail Line"; var ProposalLine: Record "Proposal Line"; ConnectedDetailLine: Record "Detail Line")` (integration)
- `OnUpdateConnectionOnBeforeModifyProposalLine(var DetailLine: Record "Detail Line"; var ProposalLine: Record "Proposal Line"; ConnectedDetailLine: Record "Detail Line")` (integration)

## Procedures

- `CalculateBalance(UseCurrency: Code[10]): Decimal`
- `CalculateTotalAmount(UseCurrency: Code[10]): Decimal`
- `CalculatePartOfBalance(): Decimal`
- `GetCustomerEntries(): Boolean`
- `GetVendorEntries(): Boolean`
- `GetEmployeeEntries(): Boolean`
- `UpdateConnection()`
- `InitRecord()`
- `CalculateVariation(): Decimal`
- `IsDifferentSign(FirstAmount: Decimal; SecondAmount: Decimal): Boolean`

Plus 6 local procedures.

## Triggers

OnDelete, OnInsert, OnModify, OnRename

## Across versions

- Present in: BC28-30
- Changed (declaration) in: none

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

A NL country object, not part of W1: the default corpus does not have it; `bcatlas_list_countries` shows which countries the atlas has.
