---
id: object/page/7016
type: object
title: Page 7016 "Sales Price List"
summary: Page 7016 "Sales Price List" in Base Application (Microsoft.Sales.Pricing). 2 public procedures, 3 events. Present since at least BC23, still in BC30.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  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: 0d810e484a4f3cf27af877d51c4a5d6fb3c41078441c10748965f37e8d46243f
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Sales/Pricing/SalesPriceList.Page.al
    title: src/Layers/W1/BaseApp/Sales/Pricing/SalesPriceList.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/across-prices-and-discounts
    title: Set up prices and discounts
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/across-prices-and-discounts
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/set-up-business-central/set-up-purchase
    - topic/business-central/business-functionality/set-up-business-central/set-up-sales
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: page
object_id: 7016
name: Sales Price List
namespace: Microsoft.Sales.Pricing
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/across-prices-and-discounts.md
counts:
  fields: 0
  procedures: 8
  events: 3
  subscribers: 0
  controls: 18
  actions: 8
relations:
  out: 1
  referenced_by: 0
  pages: 2
  extended_by: 0
  event_subscribers: 0
  calls: 5
  called_by: 1
  implements: 0
---

# Page 7016 "Sales Price List"

> Page 7016 "Sales Price List" in Base Application (Microsoft.Sales.Pricing). 2 public procedures, 3 events. Present since at least BC23, still in BC30.

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

## Properties

| Property | Value |
|---|---|
| Caption | Sales Price List |
| SourceTable | Price List Header |
| PageType | ListPlus |

## 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 |
|---|---|---|---|
| LeftColumn | Code | [Code](../table/7000.md#fields) | Specifies the unique identifier of the price list. |
|  | Description | [Description](../table/7000.md#fields) | Specifies the description of the price list. |
|  | Assign-to Type | `SourceType` | Specifies the type of entity to which the price list is assigned. The options are relevant to the entity you are currently viewing. |
|  | Assign-to Type | `JobSourceType` | Specifies the type of entity to which the price list is assigned. The options are relevant to the entity you are currently viewing. |
| AssignToParentNoGroup | AssignToParentNo | [Assign-to Parent No.](../table/7000.md#fields) | Specifies the entity to which the prices are assigned. The options depend on the selection in the Assign-to Type field. If you choose an entity, the price list will be used only for that entity. |
| LeftColumn | SourceNo | [Source No.](../table/7000.md#fields) | Specifies the entity to which the prices are assigned. The options depend on the selection in the Assign-to Type field. If you choose an entity, the price list will be used only for that entity. |
|  | AssignToNo | [Assign-to No.](../table/7000.md#fields) | Specifies the entity to which the prices are assigned. The options depend on the selection in the Assign-to Type field. If you choose an entity, the price list will be used only for that entity. |
| VAT | VATBusPostingGrPrice | [VAT Bus. Posting Gr. (Price)](../table/7000.md#fields) | Specifies the default VAT business posting group code. |
|  | PriceIncludesVAT | [Price Includes VAT](../table/7000.md#fields) | Specifies if prices include VAT. <small>from the table field</small> |
| View | View Columns for | `ViewAmountType` | Specifies the amount type filter that defines the columns shown in the price list lines. |
| RightColumn | Status | [Status](../table/7000.md#fields) | Specifies whether the price list is in Draft status and can be edited, Inactive and cannot be edited or used, or Active and can be edited (when Allow Editing Active Price is enabled) and used for price calculations. |
|  | CurrencyCode | [Currency Code](../table/7000.md#fields) | Specifies the currency code of the price list. |
|  | StartingDate | [Starting Date](../table/7000.md#fields) | Specifies the date from which the price is valid. |
|  | EndingDate | [Ending Date](../table/7000.md#fields) | Specifies the last date that the price is valid. |
| Line Defaults | AllowUpdatingDefaults | [Allow Updating Defaults](../table/7000.md#fields) | Specifies whether users can change the values in the fields on the price list lines that contain default values from the header. This does not affect the ability to allow line or invoice discounts. |
|  | AllowInvoiceDisc | [Allow Invoice Disc.](../table/7000.md#fields) | Specifies whether invoice discount is allowed. You can change this value on the lines. |
|  | AllowLineDisc | [Allow Line Disc.](../table/7000.md#fields) | Specifies whether line discounts are allowed. You can change this value on the lines. |
| Content | Lines | part [Page 7001 "Price List Lines"](../page/7001.md) | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Processing | Suggest Lines | Creates the sales price list lines based on the unit price in the product cards, like item or resource. Change the price list status to 'Draft' to run this action. |  |
|  | Copy Lines | Copies the lines from the existing price list. New prices can be adjusted by a factor and rounded differently. Change the price list status to 'Draft' to run this action unless Allow Editing Active Price is enabled. |  |
|  | Verify Lines | Checks data consistency in the new and modified price list lines. Finds the duplicate price lines and suggests the resolution of the line conflicts. |  |
| Dynamics 365 Sales | Pricelevel | View price information introduced through synchronization with Dynamics 365 Sales. |  |
|  | Synchronize | Send updated data to Dynamics 365 Sales. |  |
| Coupling | Set Up Coupling | Create or modify the coupling to a Dynamics 365 Sales product. |  |
|  | Delete Coupling | Delete the coupling to a Dynamics 365 Sales product. |  |
| Dynamics 365 Sales | Synchronization Log | View integration synchronization jobs for the price list header table. |  |

## Events published

- `OnUpdateSourceTypeOnCaseElse(PriceListHeader: Record "Price List Header"; var SourceType: Enum "Sales Price Source Type"; var IsJobGroup: Boolean)` (integration): Raises an event to handle custom source type updates when the source group is not Customer or Job.
- `OnAfterGetDefaultSourceType(PriceSourceGroup: Enum "Price Source Group"; var DefaultPriceSourceType: Enum "Price Source Type")` (integration): Raises an event after determining the default source type for the price source group.
- `OnQueryClosePageOnBeforeDraftLineCheck(PriceListHeader: Record "Price List Header"; var Result: Boolean; var IsHandled: Boolean)` (integration): Raises an event before checking for draft lines when closing the page.

## Procedures

- `SetSourceNoEnabled()` (protected): Sets the enabled state of the source number field based on the source type configuration.
- `ValidateSourceType(SourceType2: Integer)` (protected): Validates and applies the selected source type to the price list header.

Plus 3 local procedures.

## Triggers

OnInit, OnOpenPage, OnAfterGetCurrRecord, OnNewRecord, OnQueryClosePage, OnClosePage

## Relations

- source table [Table 7000 "Price List Header"](../table/7000.md)

## Pages and codeunits on this table

- [Page 7015 "Sales Price Lists"](../page/7015.md) (card page)
- [Page 7019 "Sales Job Price Lists"](../page/7019.md) (card page)

## 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 7017 "Price List Management"](../codeunit/7017.md) (3 calls: `OnAfterGetCurrRecord → SendVerifyLinesNotification`, `OnOpenPage → VerifySourceGroupInLines`, `OnQueryClosePage → SendVerifyLinesNotification`)
- [Codeunit 7018 "Price UX Management"](../codeunit/7018.md) (2 calls: `OnNewRecord → IsAmountTypeFiltered`, `OnOpenPage → GetFirstSourceFromFilter`)
- [Codeunit 5330 "CRM Integration Management"](../codeunit/5330.md) (1 call: `OnOpenPage → IsCRMIntegrationEnabled`)
- [Codeunit 5331 "CRM Coupling Management"](../codeunit/5331.md) (1 call: `OnAfterGetCurrRecord → IsRecordCoupledToCRM`)
- [Codeunit 7049 "Feature - Price Calculation"](../codeunit/7049.md) (1 call: `OnInit → FailIfFeatureDisabled`)

## Called by

- [Codeunit 7018 "Price UX Management"](../codeunit/7018.md) (1 call: `EditPriceList → (object)`)

## Across versions

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

## Documented on Microsoft Learn

- [Set up prices and discounts](https://learn.microsoft.com/dynamics365/business-central/across-prices-and-discounts)

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: "page", object_name: "Sales Price List")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
