Page 254 "Purchase Journal"
Base Application · Microsoft.Finance.GeneralLedger.Journal
Across versions
- BC23-26present
- BC271 procedures added
- BC28-30unchanged
Neighbourhood 15 connected objects and pages
Base Application · Microsoft.Finance.GeneralLedger.Journal · captioned “Purchase Journals” · BC23-30 · source at ea08af5e · 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 | Specifies the posting date for the entry. from the table field |
| VAT Reporting Date | VAT Reporting Date | Specifies the VAT date for the entry. from the table field | |
| Document Date | Document Date | Specifies the date when the related document was created. from the table field | |
| Invoice Received Date | Invoice Received Date | Specifies the date when the related document was received. from the table field | |
| Document Type | Document Type | Specifies the type of document that the entry on the journal line is. from the table field | |
| Document No. | Document No. | Specifies a document number for the journal line. from the table field | |
| Incoming Document Entry No. | Incoming Document Entry No. | Specifies the number of the incoming document that this general journal line is created for. from the table field | |
| External Document No. | External Document No. | Specifies a document number that refers to the customer’s or vendor’s numbering system. from the table field | |
| Account Type | Account Type | Specifies the type of account that the entry on the journal line will be posted to. from the table field | |
| Account No. | Account No. | Specifies the account number that the entry on the journal line will be posted to. from the table field | |
| Vendor Name | GetVendorName() |
Specifies the name of the vendor. | |
| Spend Request No. | Spend Request No. | Specifies the spend request that this journal line relates to. from the table field | |
| Approval Status | GenJnlLineApprovalStatus |
Specifies the approval status for general journal line. | |
| Description | Description | Specifies a description of the entry. from the table field | |
| Salespers./Purch. Code | Salespers./Purch. Code | Specifies the salesperson or purchaser who is linked to the journal line. from the table field | |
| Campaign No. | Campaign No. | Specifies the number of the campaign that the journal line is linked to. from the table field | |
| Currency Code | Currency Code | Specifies the code of the currency for the amounts on the journal line. from the table field | |
| Gen. Posting Type | Gen. Posting Type | Specifies the type of transaction. from the table field | |
| Gen. Bus. Posting Group | Gen. Bus. Posting Group | 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 | 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. from the table field | |
| VAT Bus. Posting Group | VAT Bus. Posting Group | 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. from the table field | |
| VAT Prod. Posting Group | VAT Prod. Posting Group | 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. from the table field | |
| Posting Group | Posting Group | 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. from the table field | |
| Document Amount | DocumentAmount |
Specifies the total amount (including VAT) that the journal line consists of. | |
| Amount | Amount | Specifies the total amount (including VAT) that the journal line consists of. from the table field | |
| Amount (LCY) | Amount (LCY) | Specifies the total amount in local currency (including VAT) that the journal line consists of. | |
| Debit Amount | Debit Amount | Specifies the total of the ledger entries that represent debits. from the table field | |
| Credit Amount | Credit Amount | Specifies the total of the ledger entries that represent credits. from the table field | |
| Tax Liable | Tax Liable | Specifies if the customer or vendor is liable for sales tax. from the table field | |
| Tax Area Code | Tax Area Code | Specifies the tax area that is used to calculate and post sales tax. from the table field | |
| Tax Group Code | Tax Group Code | Specifies the tax group that is used to calculate and post sales tax. from the table field | |
| Use Tax | Use Tax | 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. from the table field | |
| VAT Amount | VAT Amount | Specifies the amount of VAT that is included in the total amount. from the table field | |
| VAT Difference | VAT Difference | Specifies the difference between the calculated VAT amount and a VAT amount that you have entered manually. from the table field | |
| Bal. VAT Amount | Bal. VAT Amount | Specifies the amount of Bal. VAT included in the total amount. from the table field | |
| Bal. VAT Difference | Bal. VAT Difference | Specifies the difference between the calculate VAT amount and the VAT amount that you have entered manually. from the table field | |
| Bal. Account Type | Bal. Account Type | Specifies the type of account that a balancing entry is posted to, such as BANK for a cash account. from the table field | |
| Bal. Account No. | Bal. Account No. | 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. from the table field | |
| Bal. Gen. Posting Type | Bal. Gen. Posting Type | Specifies the general posting type associated with the balancing account that will be used when you post the entry on the journal line. from the table field | |
| Bal. Gen. Bus. Posting Group | Bal. Gen. Bus. Posting Group | Specifies the general business posting group code associated with the balancing account that will be used when you post the entry. from the table field | |
| Bal. Gen. Prod. Posting Group | Bal. Gen. Prod. Posting Group | Specifies the general product posting group code associated with the balancing account that will be used when you post the entry. from the table field | |
| Bal. VAT Bus. Posting Group | Bal. VAT Bus. Posting Group | Specifies the code of the VAT business posting group that will be used when you post the entry on the journal line. from the table field | |
| Bal. VAT Prod. Posting Group | Bal. VAT Prod. Posting Group | Specifies the code of the VAT product posting group that will be used when you post the entry on the journal line. from the table field | |
| Deferral Code | Deferral Code | Specifies the deferral template that governs how expenses or revenue are deferred to the different accounting periods when the expenses or revenue were incurred. from the table field | |
| Allocation Account No. | Selected Alloc. Account No. | Specifies the allocation account number that will be used to distribute the amounts during the posting process. from the table field | |
| Bill-to/Pay-to No. | Bill-to/Pay-to No. | Specifies the number of the bill-to customer or pay-to vendor that the entry is linked to. from the table field | |
| Ship-to/Order Address Code | Ship-to/Order Address Code | Specifies the address code of the ship-to customer or order-from vendor that the entry is linked to. from the table field | |
| Sales/Purch. (LCY) | Sales/Purch. (LCY) | 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) | Specifies the amount of the invoice discount if you are using this journal line for an invoice. | |
| Payment Terms Code | Payment Terms Code | Specifies a formula that calculates the payment due date, payment discount date, and payment discount amount. from the table field | |
| Due Date | Due Date | Specifies the due date on the entry. from the table field | |
| Pmt. Discount Date | Pmt. Discount Date | Specifies the date on which the amount in the entry must be paid for a payment discount to be granted. from the table field | |
| Payment Discount % | Payment Discount % | Specifies the payment discount percent granted if payment is made on or before the date in the Pmt. Discount Date field. from the table field | |
| Applies-to Doc. Type | Applies-to Doc. Type | 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. from the table field | |
| Applies-to Doc. No. | Applies-to Doc. No. | 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. from the table field | |
| Applies-to ID | Applies-to ID | Specifies the ID of entries that will be applied to when you choose the Apply Entries action. from the table field | |
| On Hold | On Hold | Specifies that the related entry represents an unpaid invoice for which either a payment suggestion, a reminder, or a finance charge memo exists. from the table field | |
| Reason Code | Reason Code | Specifies the reason code, a supplementary source code that enables you to trace the entry. from the table field | |
| Correction | Correction | Specifies the entry as a corrective entry. You can use the field if you need to post a corrective entry to an account. from the table field | |
| Comment | Comment | Specifies a comment about the activity on the journal line. Note that the comment is not carried forward to posted entries. from the table field | |
| Job Queue Status | Job Queue Status | Specifies the status of a job queue entry or task that handles the posting of general journals. from the table field | |
| Shortcut Dimension 1 Code | Shortcut Dimension 1 Code | 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. from the table field | |
| Shortcut Dimension 2 Code | Shortcut Dimension 2 Code | 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. from the table field | |
| 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” | — |
| JournalLineDetails | part Page 9120 “Journal Line Details FactBox” | — | |
| Control1900919607 | part Page 699 “Dimension Set Entries FactBox” | — | |
| IncomingDocAttachFactBox | part Page 193 “Incoming Doc. Attach. FactBox” | — | |
| Batch Workflows | part Page 1528 “Workflow Status FactBox” | — | |
| Line Workflows | part Page 1528 “Workflow Status FactBox” | — |
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” |
| Ledger Entries | View the history of transactions that have been posted for the selected record. | Codeunit 14 “Gen. Jnl.-Show Entries” | |
| 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” | |
| 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” | |
| 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.” OnDeleteRecordEventPurchaseJournal
- OnInsertRecordEvent: Codeunit 9080 “Journal Errors Mgt.” OnInsertRecordEventPurchaseJournal
- OnModifyRecordEvent: Codeunit 9080 “Journal Errors Mgt.” 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”
Extended by
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” (9 calls:
CurrentJnlBatchNameOnAfterVali → SetName,OnAfterGetCurrRecord → GetAccounts,OnAfterGetRecord → GetAccounts, …) - Codeunit 1535 “Approvals Mgmt.” (6 calls:
OnAfterGetCurrRecord → GetGenJnlBatchApprovalStatus,OnAfterGetRecord → GetGenJnlLineApprovalStatus,OnModifyRecord → CleanGenJournalApprovalStatus, …) - Codeunit 4030 “Client Type Management” (3 calls:
OnInit → GetCurrentClientType,OnOpenPage → GetCurrentClientType,SetApprovalStateForBatch → GetCurrentClientType) - Codeunit 1543 “Workflow Webhook Management” (1 call:
SetApprovalState → GetCanRequestAndCanCancel) - Codeunit 2675 “Allocation Account Mgt.” (1 call:
OnOpenPage → UseAllocationAccountNoField) - Codeunit 408 “DimensionManagement” (1 call:
SetDimensionsVisibility → UseShortcutDims) - Codeunit 6723 “Server Setting” (1 call:
OnOpenPage → GetIsSaasExcelAddinEnabled) - Codeunit 799 “VAT Reporting Date Mgt” (1 call:
OnOpenPage → IsVATDateEnabled) - Codeunit 9079 “Background Error Handling Mgt.” (1 call:
SetControlAppearanceFromBatch → BackgroundValidationFeatureEnabled) - Codeunit 9080 “Journal Errors Mgt.” (1 call:
SetControlAppearanceFromBatch → SetFullBatchCheck)
Recent changes
- 2026-08-13 #10216 Fix Purchase Journal document amount decimal formatting (main, BC30, fix)
- 2026-07-31 #8959 Deliverable 638799: Spend Requests in Base App (main, BC30, feature)
Documented on Microsoft Learn
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.