---
id: object/table/8001
type: object
title: Table 8001 "Sub. Contract Renewal Line"
summary: Table 8001 "Sub. Contract Renewal Line" in Subscription Billing (Microsoft.SubscriptionBilling). 20 fields, 1 public procedures, 2 events. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - table
  - 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: aee9a372e84f564e879b03c183e670c26ddadd58fb9504acb5460f8c242f83da
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Contract%20Renewal/Tables/SubContractRenewalLine.Table.al
    title: src/Apps/W1/Subscription Billing/app/Contract Renewal/Tables/SubContractRenewalLine.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/SRB/working-with-contracts/contract-renewal
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/sales/subscription-billing/contracts
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 8001
name: Sub. Contract Renewal Line
caption: Subscription Contract Renewal Line
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: 20
  procedures: 5
  events: 2
  subscribers: 0
relations:
  out: 20
  referenced_by: 0
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 0
  called_by: 0
  implements: 0
---

# Table 8001 "Sub. Contract Renewal Line"

> Table 8001 "Sub. Contract Renewal Line" in Subscription Billing (Microsoft.SubscriptionBilling). 20 fields, 1 public procedures, 2 events. Introduced in BC29, still in BC30.

Subscription Billing · Microsoft.SubscriptionBilling · captioned "Subscription Contract Renewal Line" · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Subscription%20Billing/app/Contract%20Renewal/Tables/SubContractRenewalLine.Table.al) · facts from BC29

Learn documents this table through its pages: [Page 8005 "Contract Renewal"](../page/8005.md) (1 Learn page).

## Properties

| Property | Value |
|---|---|
| Caption | Subscription Contract Renewal Line |
| DataClassification | CustomerContent |
| LookupPageId | Contract Renewal Lines |
| DrillDownPageId | Contract Renewal Lines |

## 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 | Subscription Header No. | Code[20] | Specifies the number of the Subscription. <small>via [Page 8003 "Contract Renewal Lines"](../page/8003.md)</small> | TableRelation [Table 8057 "Subscription Header"](../table/8057.md) (Subscription Header); not editable |
| 2 | Subscription Line Entry No. | Integer | — | TableRelation [Table 8059 "Subscription Line"](../table/8059.md) ("Subscription Line"."Entry No."); not editable |
| 10 | Linked to Sub. Line Entry No. | Integer | Linked to Subscription Line Entry No. <small>caption</small> | not editable |
| 11 | Linked to Sub. Contract No. | Code[20] | Specifies the number of the Customer Subscription Contract from which the entry originates. This also includes vendor-related Subscription Lines. <small>via [Page 8005 "Contract Renewal"](../page/8005.md)</small> | TableRelation [Table 8052 "Customer Subscription Contract"](../table/8052.md) (Customer Subscription Contract); not editable |
| 12 | Linked to Sub. Contr. Line No. | Integer | Linked to Subscription Contr. Line No. <small>caption</small> | TableRelation [Table 8062 "Cust. Sub. Contract Line"](../table/8062.md) ("Cust. Sub. Contract Line"."Line No." where("Subscription Contract No." = field("Linked to Sub. Contract No."))); not editable |
| 13 | Subscription Contract No. | Code[20] | Specifies the number of the Contract. <small>via [Page 8003 "Contract Renewal Lines"](../page/8003.md)</small> | TableRelation [Table 8052 "Customer Subscription Contract"](../table/8052.md), [Table 8063 "Vendor Subscription Contract"](../table/8063.md) (if (Partner = const(Customer)) "Customer Subscription Contract" else if (Partner = const(Vendor)) "Vendor Subscription Contract"); not editable |
| 14 | Subscription Contract Line No. | Integer | — | TableRelation [Table 8062 "Cust. Sub. Contract Line"](../table/8062.md), [Table 8065 "Vend. Sub. Contract Line"](../table/8065.md) (if (Partner = const(Customer)) "Cust. Sub. Contract Line"."Line No." where("Subscription Contract No." = field("Subscription Contract No.")) else if (Partner = const(Vendor)) "Vend. Sub. Contract Line"."Line No." where("Subscription Contract No." = field("Subscription Contract No."))); not editable |
| 15 | Error Message | Text[500] | Specifies the last error that occured when processing the line. <small>via [Page 8005 "Contract Renewal"](../page/8005.md)</small> | not editable |
| 100 | Partner | Enum "Service Partner" | Specifies whether the template applies to customer or Vendor Subscription Contracts. <small>via [Page 8005 "Contract Renewal"](../page/8005.md)</small> | FlowField: lookup("Subscription Line".Partner where("Entry No." = field("Subscription Line Entry No."))); enum [Enum 8053 "Service Partner"](../enum/8053.md); not editable |
| 101 | Subscription t Description | Text[100] | Specifies a description of the Subscription. <small>via [Page 8003 "Contract Renewal Lines"](../page/8003.md)</small> | FlowField: lookup("Subscription Header".Description where("No." = field("Subscription Header No."))); not editable |
| 102 | Subscription Line Description | Text[100] | Specifies the description of the Subscription Line. <small>via [Page 8003 "Contract Renewal Lines"](../page/8003.md)</small> | FlowField: lookup("Subscription Line".Description where("Entry No." = field("Subscription Line Entry No."))); not editable |
| 103 | Subscription Line Start Date | Date | Specifies the date from which the Subscription Line is valid and will be invoiced. <small>via [Page 8003 "Contract Renewal Lines"](../page/8003.md)</small> | FlowField: lookup("Subscription Line"."Subscription Line Start Date" where("Entry No." = field("Subscription Line Entry No."))); not editable |
| 104 | Subscription Line End Date | Date | Specifies the date up to which the Subscription Line is valid. <small>via [Page 8003 "Contract Renewal Lines"](../page/8003.md)</small> | FlowField: lookup("Subscription Line"."Subscription Line End Date" where("Entry No." = field("Subscription Line Entry No."))); not editable |
| 105 | Price | Decimal | 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 %. <small>via [Page 8005 "Contract Renewal"](../page/8005.md)</small> | FlowField: lookup("Subscription Line"."Price" where("Entry No." = field("Subscription Line Entry No."))); not editable |
| 106 | Amount | Decimal | Specifies the amount for the Subscription Line including discount. <small>via [Page 8005 "Contract Renewal"](../page/8005.md)</small> | FlowField: lookup("Subscription Line".Amount where("Entry No." = field("Subscription Line Entry No."))); not editable |
| 107 | Billing Rhythm | DateFormula | Specifies the Dateformula for the rhythm in which the Subscription Line is invoiced. Using a Dateformula rhythm can be, for example, a monthly, a quarterly or a yearly invoicing. <small>via [Page 8005 "Contract Renewal"](../page/8005.md)</small> | FlowField: lookup("Subscription Line"."Billing Rhythm" where("Entry No." = field("Subscription Line Entry No."))); not editable |
| 108 | Planned Sub. Line exists | Boolean | Planned Subscription Line exists <small>caption</small> | FlowField: exist("Planned Subscription Line" where("Entry No." = field("Subscription Line Entry No."))); not editable |
| 109 | Currency Code | Code[10] | — | FlowField: lookup("Subscription Line"."Currency Code" where("Entry No." = field("Subscription Line Entry No."))); not editable |
| 201 | Agreed Sub. Line Start Date | Date | Specifies the individually agreed start of the Subscription Line. <small>via [Page 8005 "Contract Renewal"](../page/8005.md)</small> |  |
| 202 | Renewal Term | DateFormula | Specifies a date formula by which the Contract Line is renewed and the end of the Contract Line is extended. It is automatically preset with the initial term of the Subscription Line and can be changed manually. <small>via [Page 8005 "Contract Renewal"](../page/8005.md)</small> |  |

## Keys

- PK: Subscription Line Entry No. (clustered)
- PageSort: Linked to Sub. Contract No., Linked to Sub. Contr. Line No.

## Events published

- `OnAfterInitFromSubscriptionLine(var SubContractRenewalLine: Record "Sub. Contract Renewal Line"; SubscriptionLine: Record "Subscription Line")` (integration)
- `OnAfterRefreshContractInfo(var SubContractRenewalLine: Record "Sub. Contract Renewal Line"; SubscriptionLine: Record "Subscription Line")` (integration)

## Procedures

- `InitFromServiceCommitment(var ServiceCommitment: Record "Subscription Line"): Boolean`: Initiates the Subscription Contract Renewal Line from Subscription Line

Plus 2 local procedures.

## Relations

- drill-down page [Page 8003 "Contract Renewal Lines"](../page/8003.md)
- lookup page [Page 8003 "Contract Renewal Lines"](../page/8003.md)
- Planned Sub. Line exists: CalcFormula [Table 8002 "Planned Subscription Line"](../table/8002.md)
- Linked to Sub. Contract No.: TableRelation [Table 8052 "Customer Subscription Contract"](../table/8052.md)
- Subscription Contract No.: TableRelation [Table 8052 "Customer Subscription Contract"](../table/8052.md) (conditional)
- Subscription t Description: CalcFormula [Table 8057 "Subscription Header"](../table/8057.md)
- Subscription Header No.: TableRelation [Table 8057 "Subscription Header"](../table/8057.md)
- Amount: CalcFormula [Table 8059 "Subscription Line"](../table/8059.md)
- Billing Rhythm: CalcFormula [Table 8059 "Subscription Line"](../table/8059.md)
- Currency Code: CalcFormula [Table 8059 "Subscription Line"](../table/8059.md)
- Partner: CalcFormula [Table 8059 "Subscription Line"](../table/8059.md)
- Price: CalcFormula [Table 8059 "Subscription Line"](../table/8059.md)
- Subscription Line Description: CalcFormula [Table 8059 "Subscription Line"](../table/8059.md)
- Subscription Line End Date: CalcFormula [Table 8059 "Subscription Line"](../table/8059.md)
- Subscription Line Start Date: CalcFormula [Table 8059 "Subscription Line"](../table/8059.md)
- Subscription Line Entry No.: TableRelation [Table 8059 "Subscription Line"](../table/8059.md)
- Linked to Sub. Contr. Line No.: TableRelation [Table 8062 "Cust. Sub. Contract Line"](../table/8062.md)
- Subscription Contract Line No.: TableRelation [Table 8062 "Cust. Sub. Contract Line"](../table/8062.md) (conditional)
- Subscription Contract No.: TableRelation [Table 8063 "Vendor Subscription Contract"](../table/8063.md) (conditional)
- Subscription Contract Line No.: TableRelation [Table 8065 "Vend. Sub. Contract Line"](../table/8065.md) (conditional)

## Pages and codeunits on this table

- [Page 8003 "Contract Renewal Lines"](../page/8003.md) (source table)
- [Page 8005 "Contract Renewal"](../page/8005.md) (source table)
- [Codeunit 8002 "Create Sub. Contract Renewal"](../codeunit/8002.md) (codeunit runs on it)

## 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: "table", object_name: "Sub. Contract Renewal Line")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
