---
id: object/page/8075
type: object
title: Page 8075 "Customer Contract Lines"
summary: Page 8075 "Customer Contract Lines" in Subscription Billing (Microsoft.SubscriptionBilling). 2 events. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - page
  - subscription billing
versions:
  introduced: "29"
  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: 14a8f26b887448aa5de348e21a3810ecf427714bca89b83b218381dd041bfa65
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Customer%20Contracts/Pages/CustomerContractLines.Page.al
    title: src/Apps/W1/Subscription Billing/app/Customer Contracts/Pages/CustomerContractLines.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10446
object_type: page
object_id: 8075
name: Customer Contract Lines
caption: Customer Subscription Contract Lines
namespace: Microsoft.SubscriptionBilling
app: Subscription Billing
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 4
  events: 2
  subscribers: 0
  controls: 27
  actions: 0
relations:
  out: 1
  referenced_by: 0
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Page 8075 "Customer Contract Lines"

> Page 8075 "Customer Contract Lines" in Subscription Billing (Microsoft.SubscriptionBilling). 2 events. Introduced in BC29, still in BC30.

Subscription Billing · Microsoft.SubscriptionBilling · captioned "Customer Subscription Contract Lines" · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Customer%20Contracts/Pages/CustomerContractLines.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Customer Subscription Contract Lines |
| SourceTable | Cust. Sub. Contract Line |
| PageType | List |
| UsageCategory | None |
| ApplicationArea | All |

## Fields on this page

Layout controls in source order, grouped by the container they sit in. Shows: the table field a control is bound to (or its expression as written); ToolTip: the control's own, else the bound field's (marked).

| Group | Control | Shows | ToolTip |
|---|---|---|---|
| ContractLines | Contract Line Type | [Contract Line Type](../table/8062.md#fields) | Specifies the contract line type. |
|  | No. | [No.](../table/8062.md#fields) | Specifies the No. of the Item or G/L Account of the Subscription. |
|  | Variant Code | `VariantCode` | Specifies the Variant Code of the Subscription. |
|  | Subscription Line Start Date | `ServiceCommitment."Subscription Line Start Date"` | Specifies the date from which the Subscription Line is valid and will be invoiced. |
|  | Subscription Line End Date | `ServiceCommitment."Subscription Line End Date"` | Specifies the date up to which the Subscription Line is valid. |
|  | Service Object No. | [Subscription Header No.](../table/8062.md#fields) | Specifies the number of the Subscription. |
|  | Service Object Description | [Subscription Description](../table/8062.md#fields) | Specifies a description of the Subscription. |
|  | Customer Reference | `ServiceObject."Customer Reference"` | Specifies the reference by which the customer identifies the Subscription. |
|  | Serial No. | `ServiceObject."Serial No."` | Specifies the Serial No. assigned to the Subscription. |
|  | Primary Attribute | `ServiceObject.GetPrimaryAttributeValue()` | Specifies the primary attribute of the related Subscription. |
|  | Service Commitment Description | [Subscription Line Description](../table/8062.md#fields) | Specifies the description of the Subscription Line. |
|  | Quantity | `ContractLineQty` | Specifies the number of units of Subscription. |
|  | Price | `ServiceCommitment.Price` | Specifies the price of the Subscription Line with quantity of 1 in the billing period. The price is calculated from Base Price and Base Price %. |
|  | Discount % | `ServiceCommitment."Discount %"` | Specifies the percent of the discount for the Subscription Line. |
|  | Discount Amount | `ServiceCommitment."Discount Amount"` | Specifies the amount of the discount for the Subscription Line. |
|  | Amount | `ServiceCommitment.Amount` | Specifies the amount for the Subscription Line including discount. |
|  | Next Billing Date | `ServiceCommitment."Next Billing Date"` | Specifies the date of the next billing possible. |
|  | Calculation Base Amount | `ServiceCommitment."Calculation Base Amount"` | Specifies the base amount from which the price will be calculated. |
|  | Calculation Base % | `ServiceCommitment."Calculation Base %"` | Specifies the percent at which the price of the Subscription Line will be calculated. 100% means that the price corresponds to the Base Price. |
|  | Billing Base Period | `ServiceCommitment."Billing Base Period"` | Specifies for which period the Amount is valid. If you enter 1M here, a period of one month, or 12M, a period of 1 year, to which Amount refers to. |
|  | Cancellation Possible Until | `ServiceCommitment."Cancellation Possible Until"` | Specifies the last date for a timely termination. The date is determined by the initial term, extension term and a notice period. An initial term of 12 months and a 3-month notice period means that the deadline for a notice of termination is after 9 months. An extension period of 12 months postpones... |
|  | Term Until | `ServiceCommitment."Term Until"` | Specifies the earliest regular date for the end of the Subscription Line, taking into account the initial term, extension term and a notice period. An initial term of 24 months results in a fixed term of 2 years. An extension period of 12 months postpones this date by 12 months. |
|  | Initial Term | `ServiceCommitment."Initial Term"` | Specifies a date formula for calculating the minimum term of the Subscription Line. If the minimum term is filled and no extension term is entered, the end of Subscription Line is automatically set to the end of the initial term. |
|  | Subsequent Term | `ServiceCommitment."Extension Term"` | Specifies a date formula for automatic renewal after initial term and the rhythm of the update of "Notice possible to" and "Term Until". |
|  | Billing Rhythm | `ServiceCommitment."Billing Rhythm"` | Specifies the Dateformula for rhythm in which the Subscription Line is invoiced. Using a Dateformula rhythm can be, for example, a monthly, a quarterly or a yearly invoicing. |
|  | Package Code | `ServiceCommitment."Subscription Package Code"` | Specifies the code of the Subscription Package. |
|  | Template | `ServiceCommitment.Template` | Specifies the code of the Subscription Package Line Template. |

## Events published

- `OnAfterLoadQuantityForContractLine(CustSubContractLine: Record "Cust. Sub. Contract Line"; SubscriptionHeader: Record "Subscription Header"; var ContractLineQty: Decimal)` (integration)
- `OnAfterSetNextBillingDateStyle(CustSubContractLine: Record "Cust. Sub. Contract Line"; SubscriptionLine: Record "Subscription Line"; var NextBillingDateStyleExpr: Text)` (integration)

## Procedures

2 local procedures, no public ones.

## Triggers

OnAfterGetRecord, OnNewRecord

## Relations

- source table [Table 8062 "Cust. Sub. Contract Line"](../table/8062.md)

## Pages and codeunits on this table

- [Table 8062 "Cust. Sub. Contract Line"](../table/8062.md) (drill-down page)
- [Table 8062 "Cust. Sub. Contract Line"](../table/8062.md) (lookup page)

## Recent changes

- 2026-10-07 [#10446 [Bug][Subscription Billing] "Subscription Lines - Overdue" cue counts lines of contracts that already ended](../../changes/bcapps/10446.md) (main, BC30, fix)

## Across versions

- Present in: BC29-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: "page", object_name: "Customer Contract Lines")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
