---
id: object/page/254
type: object
title: Page 254 "Purchase Journal"
summary: Page 254 "Purchase Journal" in Base Application (Microsoft.Finance.GeneralLedger.Journal). 4 public procedures, 4 events. Present since at least BC23, still in BC30, changed in BC27.
tier: official
language: en
tags:
  - page
  - base application
versions:
  introduced: null
  last_changed: "27"
  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: cc17405b088c473d031b0d604d50c892a79f466a0fb9439029f5fecb8df68943
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al
    title: src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/payables-make-payments
    title: Overview of tasks to manage payments to vendors
    date: null
    commit: null
    t: null
    quote: null
  - kind: learn
    url: https://learn.microsoft.com/dynamics365/business-central/payables-manage-payables
    title: Overview of tasks to manage accounts payable
    date: null
    commit: null
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/payables-make-payments
    - https://learn.microsoft.com/dynamics365/business-central/payables-manage-payables
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-payables
    - topic/business-central/business-functionality/finance/manage-payables/make-payments
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10216
    - change/bcapps/8959
object_type: page
object_id: 254
name: Purchase Journal
caption: Purchase Journals
namespace: Microsoft.Finance.GeneralLedger.Journal
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "27"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids:
  - docs/learn-smb-docs/business-central/payables-make-payments.md
  - docs/learn-smb-docs/business-central/payables-manage-payables.md
counts:
  fields: 0
  procedures: 22
  events: 4
  subscribers: 0
  controls: 82
  actions: 32
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 1
  event_subscribers: 3
  calls: 10
  called_by: 0
  implements: 0
---

# Page 254 "Purchase Journal"

> Page 254 "Purchase Journal" in Base Application (Microsoft.Finance.GeneralLedger.Journal). 4 public procedures, 4 events. Present since at least BC23, still in BC30, changed in BC27.

Base Application · Microsoft.Finance.GeneralLedger.Journal · captioned "Purchase Journals" · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/GeneralLedger/Journal/PurchaseJournal.Page.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Caption | Purchase Journals |
| SourceTable | Gen. Journal Line |
| PageType | Worksheet |
| UsageCategory | Tasks |
| ApplicationArea | Basic, Suite |

## 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 |
|---|---|---|---|
| Control2 | Batch Name | `CurrentJnlBatchName` | Specifies the name of the journal batch, a personalized journal layout, that the journal is based on. |
|  | Approval Status | `GenJnlBatchApprovalStatus` | Specifies the approval status for general journal batch. |
| Control1 | Posting Date | [Posting Date](../table/81.md#fields) | Specifies the posting date for the entry. <small>from the table field</small> |
|  | VAT Reporting Date | [VAT Reporting Date](../table/81.md#fields) | Specifies the VAT date for the entry. <small>from the table field</small> |
|  | Document Date | [Document Date](../table/81.md#fields) | Specifies the date when the related document was created. <small>from the table field</small> |
|  | Invoice Received Date | [Invoice Received Date](../table/81.md#fields) | Specifies the date when the related document was received. <small>from the table field</small> |
|  | Document Type | [Document Type](../table/81.md#fields) | Specifies the type of document that the entry on the journal line is. <small>from the table field</small> |
|  | Document No. | [Document No.](../table/81.md#fields) | Specifies a document number for the journal line. <small>from the table field</small> |
|  | Incoming Document Entry No. | [Incoming Document Entry No.](../table/81.md#fields) | Specifies the number of the incoming document that this general journal line is created for. <small>from the table field</small> |
|  | External Document No. | [External Document No.](../table/81.md#fields) | Specifies a document number that refers to the customer's or vendor's numbering system. <small>from the table field</small> |
|  | Account Type | [Account Type](../table/81.md#fields) | Specifies the type of account that the entry on the journal line will be posted to. <small>from the table field</small> |
|  | Account No. | [Account No.](../table/81.md#fields) | Specifies the account number that the entry on the journal line will be posted to. <small>from the table field</small> |
|  | Vendor Name | `GetVendorName()` | Specifies the name of the vendor. |
|  | Spend Request No. | [Spend Request No.](../table/81.md#fields) | Specifies the spend request that this journal line relates to. <small>from the table field</small> |
|  | Approval Status | `GenJnlLineApprovalStatus` | Specifies the approval status for general journal line. |
|  | Description | [Description](../table/81.md#fields) | Specifies a description of the entry. <small>from the table field</small> |
|  | Salespers./Purch. Code | [Salespers./Purch. Code](../table/81.md#fields) | Specifies the salesperson or purchaser who is linked to the journal line. <small>from the table field</small> |
|  | Campaign No. | [Campaign No.](../table/81.md#fields) | Specifies the number of the campaign that the journal line is linked to. <small>from the table field</small> |
|  | Currency Code | [Currency Code](../table/81.md#fields) | Specifies the code of the currency for the amounts on the journal line. <small>from the table field</small> |
|  | Gen. Posting Type | [Gen. Posting Type](../table/81.md#fields) | Specifies the type of transaction. <small>from the table field</small> |
|  | Gen. Bus. Posting Group | [Gen. Bus. Posting Group](../table/81.md#fields) | Specifies the vendor's trade type to link transactions made for this vendor with the appropriate general ledger account according to the general posting setup. |
|  | Gen. Prod. Posting Group | [Gen. Prod. Posting Group](../table/81.md#fields) | Specifies the item's product type to link transactions made for this item with the appropriate general ledger account according to the general posting setup. <small>from the table field</small> |
|  | VAT Bus. Posting Group | [VAT Bus. Posting Group](../table/81.md#fields) | Specifies the VAT specification of the involved customer or vendor to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup. <small>from the table field</small> |
|  | VAT Prod. Posting Group | [VAT Prod. Posting Group](../table/81.md#fields) | Specifies the VAT specification of the involved item or resource to link transactions made for this record with the appropriate general ledger account according to the VAT posting setup. <small>from the table field</small> |
|  | Posting Group | [Posting Group](../table/81.md#fields) | Specifies the posting group that will be used in posting the journal line.The field is used only if the account type is either customer or vendor. <small>from the table field</small> |
|  | Document Amount | `DocumentAmount` | Specifies the total amount (including VAT) that the journal line consists of. |
|  | Amount | [Amount](../table/81.md#fields) | Specifies the total amount (including VAT) that the journal line consists of. <small>from the table field</small> |
|  | Amount (LCY) | [Amount (LCY)](../table/81.md#fields) | Specifies the total amount in local currency (including VAT) that the journal line consists of. |
|  | Debit Amount | [Debit Amount](../table/81.md#fields) | Specifies the total of the ledger entries that represent debits. <small>from the table field</small> |
|  | Credit Amount | [Credit Amount](../table/81.md#fields) | Specifies the total of the ledger entries that represent credits. <small>from the table field</small> |
|  | Tax Liable | [Tax Liable](../table/81.md#fields) | Specifies if the customer or vendor is liable for sales tax. <small>from the table field</small> |
|  | Tax Area Code | [Tax Area Code](../table/81.md#fields) | Specifies the tax area that is used to calculate and post sales tax. <small>from the table field</small> |
|  | Tax Group Code | [Tax Group Code](../table/81.md#fields) | Specifies the tax group that is used to calculate and post sales tax. <small>from the table field</small> |
|  | Use Tax | [Use Tax](../table/81.md#fields) | Specifies that the purchase is subject to use tax. Use tax is a sales tax that is paid on items that are purchased by a company and are used by that company instead of being sold to a customer. <small>from the table field</small> |
|  | VAT Amount | [VAT Amount](../table/81.md#fields) | Specifies the amount of VAT that is included in the total amount. <small>from the table field</small> |
|  | VAT Difference | [VAT Difference](../table/81.md#fields) | Specifies the difference between the calculated VAT amount and a VAT amount that you have entered manually. <small>from the table field</small> |
|  | Bal. VAT Amount | [Bal. VAT Amount](../table/81.md#fields) | Specifies the amount of Bal. VAT included in the total amount. <small>from the table field</small> |
|  | Bal. VAT Difference | [Bal. VAT Difference](../table/81.md#fields) | Specifies the difference between the calculate VAT amount and the VAT amount that you have entered manually. <small>from the table field</small> |
|  | Bal. Account Type | [Bal. Account Type](../table/81.md#fields) | Specifies the type of account that a balancing entry is posted to, such as BANK for a cash account. <small>from the table field</small> |
|  | Bal. Account No. | [Bal. Account No.](../table/81.md#fields) | Specifies the number of the general ledger, customer, vendor, or bank account that the balancing entry is posted to, such as a cash account for cash purchases. <small>from the table field</small> |
|  | Bal. Gen. Posting Type | [Bal. Gen. Posting Type](../table/81.md#fields) | Specifies the general posting type associated with the balancing account that will be used when you post the entry on the journal line. <small>from the table field</small> |
|  | Bal. Gen. Bus. Posting Group | [Bal. Gen. Bus. Posting Group](../table/81.md#fields) | Specifies the general business posting group code associated with the balancing account that will be used when you post the entry. <small>from the table field</small> |
|  | Bal. Gen. Prod. Posting Group | [Bal. Gen. Prod. Posting Group](../table/81.md#fields) | Specifies the general product posting group code associated with the balancing account that will be used when you post the entry. <small>from the table field</small> |
|  | Bal. VAT Bus. Posting Group | [Bal. VAT Bus. Posting Group](../table/81.md#fields) | Specifies the code of the VAT business posting group that will be used when you post the entry on the journal line. <small>from the table field</small> |
|  | Bal. VAT Prod. Posting Group | [Bal. VAT Prod. Posting Group](../table/81.md#fields) | Specifies the code of the VAT product posting group that will be used when you post the entry on the journal line. <small>from the table field</small> |
|  | Deferral Code | [Deferral Code](../table/81.md#fields) | Specifies the deferral template that governs how expenses or revenue are deferred to the different accounting periods when the expenses or revenue were incurred. <small>from the table field</small> |
|  | Allocation Account No. | [Selected Alloc. Account No.](../table/81.md#fields) | Specifies the allocation account number that will be used to distribute the amounts during the posting process. <small>from the table field</small> |
|  | Bill-to/Pay-to No. | [Bill-to/Pay-to No.](../table/81.md#fields) | Specifies the number of the bill-to customer or pay-to vendor that the entry is linked to. <small>from the table field</small> |
|  | Ship-to/Order Address Code | [Ship-to/Order Address Code](../table/81.md#fields) | Specifies the address code of the ship-to customer or order-from vendor that the entry is linked to. <small>from the table field</small> |
|  | Sales/Purch. (LCY) | [Sales/Purch. (LCY)](../table/81.md#fields) | Specifies the line's net amount (the amount excluding VAT) if you are using this journal line for an invoice. |
|  | Inv. Discount (LCY) | [Inv. Discount (LCY)](../table/81.md#fields) | Specifies the amount of the invoice discount if you are using this journal line for an invoice. |
|  | Payment Terms Code | [Payment Terms Code](../table/81.md#fields) | Specifies a formula that calculates the payment due date, payment discount date, and payment discount amount. <small>from the table field</small> |
|  | Due Date | [Due Date](../table/81.md#fields) | Specifies the due date on the entry. <small>from the table field</small> |
|  | Pmt. Discount Date | [Pmt. Discount Date](../table/81.md#fields) | Specifies the date on which the amount in the entry must be paid for a payment discount to be granted. <small>from the table field</small> |
|  | Payment Discount % | [Payment Discount %](../table/81.md#fields) | Specifies the payment discount percent granted if payment is made on or before the date in the Pmt. Discount Date field. <small>from the table field</small> |
|  | Applies-to Doc. Type | [Applies-to Doc. Type](../table/81.md#fields) | Specifies the type of the posted document that this document or journal line will be applied to when you post, for example to register payment. <small>from the table field</small> |
|  | Applies-to Doc. No. | [Applies-to Doc. No.](../table/81.md#fields) | Specifies the number of the posted document that this document or journal line will be applied to when you post, for example to register payment. <small>from the table field</small> |
|  | Applies-to ID | [Applies-to ID](../table/81.md#fields) | Specifies the ID of entries that will be applied to when you choose the Apply Entries action. <small>from the table field</small> |
|  | On Hold | [On Hold](../table/81.md#fields) | Specifies that the related entry represents an unpaid invoice for which either a payment suggestion, a reminder, or a finance charge memo exists. <small>from the table field</small> |
|  | Reason Code | [Reason Code](../table/81.md#fields) | Specifies the reason code, a supplementary source code that enables you to trace the entry. <small>from the table field</small> |
|  | Correction | [Correction](../table/81.md#fields) | Specifies the entry as a corrective entry. You can use the field if you need to post a corrective entry to an account. <small>from the table field</small> |
|  | Comment | [Comment](../table/81.md#fields) | Specifies a comment about the activity on the journal line. Note that the comment is not carried forward to posted entries. <small>from the table field</small> |
|  | Job Queue Status | [Job Queue Status](../table/81.md#fields) | Specifies the status of a job queue entry or task that handles the posting of general journals. <small>from the table field</small> |
|  | Shortcut Dimension 1 Code | [Shortcut Dimension 1 Code](../table/81.md#fields) | 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. <small>from the table field</small> |
|  | Shortcut Dimension 2 Code | [Shortcut Dimension 2 Code](../table/81.md#fields) | 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. <small>from the table field</small> |
|  | ShortcutDimCode3 | `ShortcutDimCode[3]` | — |
|  | ShortcutDimCode4 | `ShortcutDimCode[4]` | — |
|  | ShortcutDimCode5 | `ShortcutDimCode[5]` | — |
|  | ShortcutDimCode6 | `ShortcutDimCode[6]` | — |
|  | ShortcutDimCode7 | `ShortcutDimCode[7]` | — |
|  | ShortcutDimCode8 | `ShortcutDimCode[8]` | — |
| Number of Lines | NumberOfJournalRecords | `NumberOfRecords` | Specifies the number of lines in the current journal batch. |
| Account Name | AccName | `AccName` | Specifies the name of the account. |
| Bal. Account Name | Bal. Account Name | `BalAccName` | Specifies the name of the balancing account that has been entered on the journal line. |
| Balance | Balance | `Balance` | Specifies the balance that has accumulated in the purchase journal on the line where the cursor is. |
| Total Balance | Total Balance | `TotalBalance` | Specifies the total balance in the purchase journal. |
| FactBoxes | JournalErrorsFactBox | part [Page 9121 "Journal Errors Factbox"](../page/9121.md) | — |
|  | JournalLineDetails | part [Page 9120 "Journal Line Details FactBox"](../page/9120.md) | — |
|  | Control1900919607 | part [Page 699 "Dimension Set Entries FactBox"](../page/699.md) | — |
|  | IncomingDocAttachFactBox | part [Page 193 "Incoming Doc. Attach. FactBox"](../page/193.md) | — |
|  | Batch Workflows | part [Page 1528 "Workflow Status FactBox"](../page/1528.md) | — |
|  | Line Workflows | part [Page 1528 "Workflow Status FactBox"](../page/1528.md) | — |

## Actions

| Group | Action | ToolTip | Runs |
|---|---|---|---|
| Line | Dimensions | View or edit dimensions, such as area, project, or department, that you can assign to sales and purchase documents to distribute costs and analyze transaction history. |  |
| Account | Card | View or change detailed information about the record on the document or journal line. | [Codeunit 15 "Gen. Jnl.-Show Card"](../codeunit/15.md) |
|  | Ledger Entries | View the history of transactions that have been posted for the selected record. | [Codeunit 14 "Gen. Jnl.-Show Entries"](../codeunit/14.md) |
| Functions | Renumber Document Numbers | Resort the numbers in the Document No. column to avoid posting errors because the document numbers are not in sequence. Entry applications and line groupings are preserved. |  |
|  | Apply Entries | Apply the payment amount on a journal line to a sales or purchase document that was already posted for a customer or vendor. This updates the amount on the posted document, and the document can either be partially paid, or closed as paid or refunded. | [Codeunit 225 "Gen. Jnl.-Apply"](../codeunit/225.md) |
|  | Insert Conv. LCY Rndg. Lines | Insert a rounding correction line in the journal. This rounding correction line will balance in LCY when amounts in the foreign currency also balance. You can then post the journal. | [Codeunit 407 "Adjust Gen. Journal Balance"](../codeunit/407.md) |
|  | Deferral Schedule | View or edit the deferral schedule that governs how expenses or revenue are deferred to different accounting periods when the journal line is posted. |  |
| Incoming Document | View Incoming Document | View any incoming document records and file attachments that exist for the entry or document. |  |
|  | Select Incoming Document | Select an incoming document record and file attachment that you want to link to the entry or document. |  |
|  | Create Incoming Document from File | Create an incoming document record by selecting a file to attach, and then link the incoming document record to the entry or document. |  |
|  | Remove Incoming Document | Remove any incoming document records and file attachments. |  |
| Posting | Reconcile | View the balances on bank accounts that are marked for reconciliation, usually liquid accounts. |  |
|  | Test Report | View a test report so that you can find and correct any errors before you perform the actual posting of the journal or document. |  |
|  | Post | Finalize the document or journal by posting the amounts and quantities to the related accounts in your company books. |  |
|  | Preview Posting | Review the different types of entries that will be created when you post the document or journal. |  |
|  | Post and Print | Finalize and prepare to print the document or journal. The values and quantities are posted to the related accounts. A report request window where you can specify what to include on the print-out. |  |
|  | Remove From Job Queue | Remove the scheduled processing of this record from the job queue. |  |
|  | Redistribute Account Allocations | Use this action to redistribute the account allocations for this line. |  |
|  | Generate lines from Allocation Account Line | Use this action to replace the Allocation Account line with the actual lines that would be generated from the line itself. |  |
| Page | Edit in Excel | Send the data in the journal to an Excel file for analysis or editing. |  |
|  | Show more columns | Adds additional fields to the journal for a full view of the journal data. |  |
|  | Show fewer columns | Hides many of the less used fields from the journal for better productivity. The fields are still there but not shown. |  |
| Errors | Show Lines with Issues | View a list of journal lines that have issues before you post the journal. |  |
|  | Show All Lines | View all journal lines, including lines with and without issues. |  |
| Send Approval Request | Journal Batch | Send all journal lines for approval, also those that you may not see because of filters. |  |
|  | Selected Journal Lines | Send selected journal lines for approval. |  |
| Cancel Approval Request | Journal Batch | Cancel sending all journal lines for approval, also those that you may not see because of filters. |  |
|  | Selected Journal Lines | Cancel sending selected journal lines for approval. |  |
| Approval | Approve | Approve the requested changes. |  |
|  | Reject | Reject the approval request. |  |
|  | Delegate | Delegate the approval to a substitute approver. |  |
|  | Comments | View or add comments for the record. |  |

## Events published

- `OnAfterValidateShortcutDimCode(var GenJournalLine: Record "Gen. Journal Line"; var ShortcutDimCode: array[8] of Code[20]; DimIndex: Integer)` (integration): Integration event that occurs after validating shortcut dimension codes in the purchase journal. Allows custom processing of dimension validation for purchase journal entries.
- `OnBeforeOpenJournalFromBatch(var GenJournalLine: Record "Gen. Journal Line"; var Result: Boolean; var IsHandled: Boolean)` (integration): Integration event that occurs before opening a journal from a batch in the purchase journal. Allows custom handling of journal opening operations and result override.
- `OnBeforeSelectTemplate(var GenJournalLine: Record "Gen. Journal Line"; var GenJnlManagement: Codeunit GenJnlManagement; var IsHandled: Boolean)` (integration): Integration event that occurs before selecting a journal template in the purchase journal. Allows custom template selection logic and override of standard template selection.
- `OnOpenPageOnAfterOpenJnl(var CurrentJnlBatchName: Code[10])` (integration): Integration event that occurs after opening the journal during page opening for the purchase journal. Allows custom processing after journal initialization and batch selection.

## Trigger event subscribers

- OnDeleteRecordEvent: [Codeunit 9080 "Journal Errors Mgt."](../codeunit/9080.md) OnDeleteRecordEventPurchaseJournal
- OnInsertRecordEvent: [Codeunit 9080 "Journal Errors Mgt."](../codeunit/9080.md) OnInsertRecordEventPurchaseJournal
- OnModifyRecordEvent: [Codeunit 9080 "Journal Errors Mgt."](../codeunit/9080.md) OnModifyRecordEventPurchaseJournal

## Procedures

- `SetCurrentJnlBatchName(NewCurrentJnlBatchName: Code[10])`: Sets the current journal batch name for the purchase journal page. Used to control which batch is currently active and displayed in the purchase journal.
- `GetCurrentJnlBatchName(): Code[10]`: Gets the current journal batch name for the purchase journal page. Returns the name of the journal batch currently active and displayed.
- `SetApprovalState(RecordId: RecordId; OpenApprovalEntriesOnJournalBatchExist: Boolean; LocalCanRequestFlowApprovalForBatch: Boolean; var LocalCanCancelFlowApprovalForLine: Boolean; var OpenApprovalEntriesExistForCurrentUser: Boolean; var OpenApprovalEntriesOnJournalLineExist: Boolean; var OpenApprovalEntriesOnBatchOrCurrentJournalLineExist: Boolean; var CanCancelApprovalForJournalLine: Boolean; var LocalCanRequestFlowApprovalForBatchAndCurrentLine: Boolean)` (internal)
- `SetApprovalStateForBatch(GenJournalBatch: Record "Gen. Journal Batch"; GenJournalLine: Record "Gen. Journal Line"; var OpenApprovalEntriesExistForCurrentUser: Boolean; var OpenApprovalEntriesOnJournalBatchExist: Boolean; var OpenApprovalEntriesOnBatchOrAnyJournalLineExist: Boolean; var CanCancelApprovalForJournalBatch: Boolean; var LocalCanRequestFlowApprovalForBatch: Boolean; var LocalCanCancelFlowApprovalForBatch: Boolean; var LocalCanRequestFlowApprovalForBatchAndAllLines: Boolean; var LocalApprovalEntriesExistSentByCurrentUser: Boolean; var EnabledGeneralJournalBatchWorkflowsExist: Boolean; var EnabledGeneralJournalLineWorkflowsExist: Boolean)` (internal)

Plus 14 local procedures.

## Triggers

OnAfterGetCurrRecord, OnAfterGetRecord, OnInit, OnInsertRecord, OnNewRecord, OnOpenPage, OnModifyRecord

## Relations

- source table [Table 81 "Gen. Journal Line"](../table/81.md)

## Extended by

- [Page extension 20254 "Purch. Journal Ext"](../pageextension/20254.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 230 "GenJnlManagement"](../codeunit/230.md) (9 calls: `CurrentJnlBatchNameOnAfterVali → SetName`, `OnAfterGetCurrRecord → GetAccounts`, `OnAfterGetRecord → GetAccounts`, …)
- [Codeunit 1535 "Approvals Mgmt."](../codeunit/1535.md) (6 calls: `OnAfterGetCurrRecord → GetGenJnlBatchApprovalStatus`, `OnAfterGetRecord → GetGenJnlLineApprovalStatus`, `OnModifyRecord → CleanGenJournalApprovalStatus`, …)
- [Codeunit 4030 "Client Type Management"](../codeunit/4030.md) (3 calls: `OnInit → GetCurrentClientType`, `OnOpenPage → GetCurrentClientType`, `SetApprovalStateForBatch → GetCurrentClientType`)
- [Codeunit 1543 "Workflow Webhook Management"](../codeunit/1543.md) (1 call: `SetApprovalState → GetCanRequestAndCanCancel`)
- [Codeunit 2675 "Allocation Account Mgt."](../codeunit/2675.md) (1 call: `OnOpenPage → UseAllocationAccountNoField`)
- [Codeunit 408 "DimensionManagement"](../codeunit/408.md) (1 call: `SetDimensionsVisibility → UseShortcutDims`)
- [Codeunit 6723 "Server Setting"](../codeunit/6723.md) (1 call: `OnOpenPage → GetIsSaasExcelAddinEnabled`)
- [Codeunit 799 "VAT Reporting Date Mgt"](../codeunit/799.md) (1 call: `OnOpenPage → IsVATDateEnabled`)
- [Codeunit 9079 "Background Error Handling Mgt."](../codeunit/9079.md) (1 call: `SetControlAppearanceFromBatch → BackgroundValidationFeatureEnabled`)
- [Codeunit 9080 "Journal Errors Mgt."](../codeunit/9080.md) (1 call: `SetControlAppearanceFromBatch → SetFullBatchCheck`)

## Recent changes

- 2026-08-13 [#10216 Fix Purchase Journal document amount decimal formatting](../../changes/bcapps/10216.md) (main, BC30, fix)
- 2026-07-31 [#8959 Deliverable 638799: Spend Requests in Base App](../../changes/bcapps/8959.md) (main, BC30, feature)

## Across versions

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

## Documented on Microsoft Learn

- [Overview of tasks to manage payments to vendors](https://learn.microsoft.com/dynamics365/business-central/payables-make-payments)
- [Overview of tasks to manage accounts payable](https://learn.microsoft.com/dynamics365/business-central/payables-manage-payables)

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