Table "General Ledger Setup"
Core financial system configuration table controlling posting permissions, currency settings, VAT handling, and dimension management. Manages global financial parameters including rounding precision, job queue integration, and additional reporting currency setup.
Remarks
Singleton table providing system-wide GL configuration. Key integrations: Currency, VAT, Dimensions, Job Queue. Extensibility: OnAfterAdjustAddReportingCurrency, OnAfterValidateShortcutDimCode events available. Critical setup affecting all financial transactions and reporting throughout Business Central.
Properties
| Name | Value |
|---|---|
| Caption | General Ledger Setup |
| DataClassification | CustomerContent |
Fields
| Name | Type | Description |
|---|---|---|
| "Primary Key" | Code[10] | Primary key field for the singleton General Ledger Setup record. |
| "Allow Posting From" | Date | Earliest date allowed for posting transactions to the general ledger. |
| "Allow Posting To" | Date | Latest date allowed for posting transactions to the general ledger. |
| "Register Time" | Boolean | Records posting time in addition to posting date for audit trail and transaction tracking. |
| "Allow Deferral Posting From" | Date | Earliest date allowed for posting deferral transactions to the general ledger. |
| "Allow Deferral Posting To" | Date | Latest date allowed for posting deferral transactions to the general ledger. |
| "VAT Reporting Date" | Enum Microsoft.Finance.VAT.Setup."VAT Reporting Date" | Default VAT reporting date calculation method used when posting transactions with VAT. |
| "VAT Reporting Date Usage" | Enum Microsoft.Finance.VAT.Setup."VAT Reporting Date Usage" | Controls whether VAT reporting date is enabled, disabled, or controlled by posting date. |
| "Pmt. Disc. Excl. VAT" | Boolean | Calculates payment discounts excluding VAT amounts to reduce VAT-related rounding differences. |
| "Date Filter" | Date | Flow filter field for date-based filtering in related tables and reports. |
| "Global Dimension 1 Filter" | Code[20] | Flow filter field for filtering by the first global dimension. |
| "Global Dimension 2 Filter" | Code[20] | Flow filter field for filtering by the second global dimension. |
| "Cust. Balances Due" | Decimal | Flow field calculating total customer balances due filtered by dimensions and date. |
| "Vendor Balances Due" | Decimal | Flow field calculating total vendor balances due filtered by dimensions and date. |
| "Unrealized VAT" | Boolean | Enables unrealized VAT functionality for accounting systems using cash-based VAT reporting. |
| "Adjust for Payment Disc." | Boolean | Automatically adjusts VAT amounts when payment discounts are applied to maintain accurate VAT calculations. |
| "Post with Job Queue" | Boolean | Enables background posting of documents using the job queue system for improved user experience. |
| "Job Queue Category Code" | Code[10] | Job queue category code used for organizing posting-related job queue entries. |
| "Job Queue Priority for Post" | Integer | Priority level for posting job queue entries to control processing order. |
| "Post & Print with Job Queue" | Boolean | Enables background posting and printing of documents using the job queue system. |
| "Job Q. Prio. for Post & Print" | Integer | Priority level for post and print job queue entries to control processing order. |
| "Notify On Success" | Boolean | Shows notification messages when background posting operations complete successfully. |
| "Mark Cr. Memos as Corrections" | Boolean | Marks credit memos as corrections for proper VAT and financial reporting compliance. |
| "Local Address Format" | Option | Format used for displaying local addresses on documents and reports. |
| "Inv. Rounding Precision (LCY)" | Decimal | Precision used for invoice rounding calculations in local currency. |
| "Inv. Rounding Type (LCY)" | Option | Method used for invoice rounding calculations in local currency. |
| "Local Cont. Addr. Format" | Option | Position of contact address information on documents and communications. |
| "Report Output Type" | Enum Microsoft.Foundation.Enums."Setup Report Output Type" | Default output type for generated reports and documents. |
| "Bank Account Nos." | Code[20] | Number series used for assigning bank account numbers during bank account creation. |
| "Spend Request No. Series" | Code[20] | Number series used for assigning spend request numbers during spend request creation. |
| "Summarize G/L Entries" | Boolean | Combines G/L entries with identical account, posting date, and dimensions into summary entries. |
| "Amount Decimal Places" | Text[5] | Decimal places specification for amount fields display and input formatting. |
| "Unit-Amount Decimal Places" | Text[5] | Decimal places specification for unit amount fields display and input formatting. |
| "Additional Reporting Currency" | Code[10] | Currency code for additional reporting currency used for parallel accounting and reporting. |
| "VAT Tolerance %" | Decimal | Tolerance percentage for VAT amount differences to allow minor variances in VAT calculations. |
| "EMU Currency" | Boolean | Indicates whether the local currency participates in European Monetary Union currency system. |
| "LCY Code" | Code[10] | Local Currency Code identifying the company's functional currency for accounting and reporting. |
| "VAT Exchange Rate Adjustment" | Enum Microsoft.Finance.Currency."Exch. Rate Adjustment Type" | Method for adjusting VAT amounts during currency exchange rate adjustments. |
| "Amount Rounding Precision" | Decimal | Precision used for rounding monetary amounts in local currency calculations. |
| "Unit-Amount Rounding Precision" | Decimal | Precision used for rounding unit amounts in calculations and display. |
| "Appln. Rounding Precision" | Decimal | Rounding precision used for payment applications to prevent minor differences from blocking applications. |
| "Global Dimension 1 Code" | Code[20] | Primary global dimension code used throughout the system for analysis and reporting. |
| "Global Dimension 2 Code" | Code[20] | Secondary global dimension code used throughout the system for analysis and reporting. |
| "Shortcut Dimension 1 Code" | Code[20] | First shortcut dimension code for quick access to dimension values in data entry forms. |
| "Shortcut Dimension 2 Code" | Code[20] | Second shortcut dimension code for quick access to dimension values in data entry forms. |
| "Shortcut Dimension 3 Code" | Code[20] | Third shortcut dimension code for quick access to dimension values in data entry forms. |
| "Shortcut Dimension 4 Code" | Code[20] | Fourth shortcut dimension code for quick access to dimension values in data entry forms. |
| "Shortcut Dimension 5 Code" | Code[20] | Fifth shortcut dimension code for quick access to dimension values in data entry forms. |
| "Shortcut Dimension 6 Code" | Code[20] | Sixth shortcut dimension code for quick access to dimension values in data entry forms. |
| "Shortcut Dimension 7 Code" | Code[20] | Seventh shortcut dimension code for quick access to dimension values in data entry forms. |
| "Shortcut Dimension 8 Code" | Code[20] | Eighth shortcut dimension code for quick access to dimension values in data entry forms. |
| "Max. VAT Difference Allowed" | Decimal | Maximum allowed VAT difference amount in local currency for VAT entries and adjustments. |
| "VAT Rounding Type" | Option | Rounding method applied to VAT amounts during calculation and posting. |
| "Pmt. Disc. Tolerance Posting" | Option | Specifies which accounts to use when posting payment discount tolerance amounts. |
| "Payment Discount Grace Period" | DateFormula | Grace period allowed after payment discount due date for payment discount eligibility. |
| "Payment Tolerance %" | Decimal | Payment tolerance percentage allowed for customer and vendor payment applications. |
| "Max. Payment Tolerance Amount" | Decimal | Maximum payment tolerance amount allowed for customer and vendor payment applications. |
| "Allow G/L Acc. Deletion Before" | Date | Date before which G/L account deletion checks are performed to prevent accidental deletion. |
| "Check G/L Account Usage" | Boolean | Enables checking G/L account usage before allowing deletion to prevent loss of transaction history. |
| "Payment Tolerance Posting" | Option | Specifies how payment tolerance amounts are posted to the general ledger when payment tolerances are applied. |
| "Pmt. Disc. Tolerance Warning" | Boolean | Controls whether warning messages are displayed when payment discount tolerance limits are exceeded during payment processing. |
| "Payment Tolerance Warning" | Boolean | Controls whether warning messages are displayed when payment tolerance limits are exceeded during payment processing. |
| "Last IC Transaction No." | Integer | Tracks the last transaction number used for intercompany transactions to ensure unique numbering. |
| "Bill-to/Sell-to VAT Calc." | Enum Microsoft.Finance.GeneralLedger.Setup."G/L Setup VAT Calculation" | Specifies whether VAT calculation is based on bill-to/sell-to customer address or ship-to address for determining tax jurisdiction. |
| "Block Deletion of G/L Accounts" | Boolean | Prevents deletion of G/L accounts that are referenced in setup tables or have transaction history when enabled. |
| "Acc. Sched. for Balance Sheet" | Code[10] | Obsolete: Account schedule name for balance sheet financial reporting. |
| "Acc. Sched. for Income Stmt." | Code[10] | Obsolete: Account schedule name for income statement financial reporting. |
| "Acc. Sched. for Cash Flow Stmt" | Code[10] | Obsolete: Account schedule name for cash flow statement financial reporting. |
| "Acc. Sched. for Retained Earn." | Code[10] | Obsolete: Account schedule name for retained earnings financial reporting. |
| "Fin. Rep. for Balance Sheet" | Code[10] | Default financial report used for generating balance sheet statements and analysis. |
| "Fin. Rep. for Income Stmt." | Code[10] | Default financial report used for generating income statement reports and profit/loss analysis. |
| "Fin. Rep. for Cash Flow Stmt" | Code[10] | Default financial report used for generating cash flow statement reports and liquidity analysis. |
| "Fin. Rep. for Retained Earn." | Code[10] | Default financial report used for generating retained earnings statements and equity analysis. |
| "Tax Invoice Renaming Threshold" | Decimal | Threshold amount for tax invoice renaming in local currency when processing tax-related transactions. |
| "Req.Country/Reg. Code in Addr." | Boolean | Requires country/region code to be specified in customer and vendor addresses for regulatory compliance. |
| "Print VAT specification in LCY" | Boolean | Controls whether VAT amounts are printed in local currency on reports and documents when foreign currency transactions are involved. |
| "Prepayment Unrealized VAT" | Boolean | Enables unrealized VAT processing for prepayment transactions when prepayments are subject to VAT. |
| "Payroll Trans. Import Format" | Code[20] | Data exchange definition used for importing payroll transaction data from external payroll systems. |
| "Local Currency Symbol" | Text[10] | Symbol used to represent the local currency in reports and user interface displays. |
| "Local Currency Description" | Text[60] | Descriptive name for the local currency used in reports and system displays. |
| "Show Amounts" | Option | Controls how amounts are displayed in G/L entries and reports: amount only, debit/credit only, or all amounts. |
| "Posting Preview Type" | Enum Microsoft.Finance.GeneralLedger.Preview."Posting Preview Type" | Determines the type of posting preview shown to users before finalizing transactions. |
| "SEPA Non-Euro Export" | Boolean | Allows SEPA payment export for currencies other than Euro when enabled. |
| "SEPA Export w/o Bank Acc. Data" | Boolean | Enables SEPA payment export without requiring complete bank account data when enabled. |
| "Journal Templ. Name Mandatory" | Boolean | Requires journal template name to be specified when creating general journal lines for better control and validation. |
| "Hide Payment Method Code" | Boolean | Hides payment method code field in journals and documents when enabled for simplified data entry. |
| "Enable Data Check" | Boolean | Enables additional data validation checks during posting to ensure data integrity and compliance. |
| "Document Retention Period" | Enum Microsoft.Finance.GeneralLedger.Setup."Docs - Retention Period Def." | Default retention period applied to financial documents for automatic cleanup and compliance management. |
| "Apply Jnl. Template Name" | Code[10] | Default general journal template used for customer and vendor payment application processes. |
| "Apply Jnl. Batch Name" | Code[10] | Default general journal batch used for customer and vendor payment application processes. |
| "Job WIP Jnl. Template Name" | Code[10] | Default general journal template used for posting job work-in-process entries during job completion processes. |
| "Job WIP Jnl. Batch Name" | Code[10] | Default general journal batch used for posting job work-in-process entries during job completion processes. |
| "Adjust ARC Jnl. Template Name" | Code[10] | Default general journal template used for additional reporting currency adjustments during currency rate changes. |
| "Adjust ARC Jnl. Batch Name" | Code[10] | Default general journal batch used for additional reporting currency adjustments during currency rate changes. |
| "Bank Acc. Recon. Template Name" | Code[10] | Default general journal template used for bank account reconciliation adjustment entries. |
| "Bank Acc. Recon. Batch Name" | Code[10] | Default general journal batch used for bank account reconciliation adjustment entries. |
| "Control VAT Period" | Enum Microsoft.Finance.VAT.Calculation."VAT Period Control" | Controls VAT period validation and posting restrictions to ensure compliance with tax reporting periods. |
| "Allow Query From Consolid." | Boolean | Enables this company to be queried from consolidation processes when used as a subsidiary company. |
| "Acc. Receivables Category" | Integer | G/L account category used for classifying accounts receivable accounts in financial reporting. |
| "App. Dimension Posting" | Enum Microsoft.Finance.Currency."Exch. Rate Adjmt. Dimensions" | Controls which dimension information is posted during exchange rate adjustment processes. |
| "Hide Company Bank Account" | Boolean | Hides company bank account information in certain displays and reports for security purposes. |
| "Check Source Curr. Consistency" | Boolean | Specifies whether Business Central validates the total of general ledger entries source currency amount during posting. |
| "Acc. Payables Category" | Integer | |
| "Fin. Rep. Period Type" | Enum Microsoft.Foundation.Enums."Analysis Period Type" | Specifies by which period amounts are displayed on financial report by default. |
| "Fin. Rep. Neg. Amount Format" | Enum Microsoft.Foundation.Enums."Analysis Negative Format" | Specifies how negative amounts are displayed on the financial report by default. |
| "Fin. Rep. Company Logo Pos." | Enum Microsoft.Finance.FinancialReports."Fin. Report Logo Position" | Specifies how your company logo is displayed on the financial report by default. |
| "Fin. Rep. Bal. Sheet Row" | Code[10] | Specifies the name of the Balance Sheet row on Financial Reports. |
| "Fin. Rep. Income Stmt. Row" | Code[10] | Specifies the name of the Income Statement row on Financial Reports. |
| "Fin. Rep. Cash Flow Stmt. Row" | Code[10] | Specifies the name of the Cash Flow Statement row on Financial Reports. |
| "Fin. Rep. Retained Earn. Row" | Code[10] | Specifies the name of the Retained Earnings row on Financial Reports. |
| "Fin. Rep. Bal. Sheet Column" | Code[10] | Specifies the name of the Balance Sheet column on Financial Reports. |
| "Fin. Rep. Net Change Column" | Code[10] | Specifies the name of the Net Change column on Financial Reports. |
| DefaultFinancialReportStatus | Code[10] | Specifies the name of the Default Financial Report Status on Financial Reports. |
| "Allow Posting From DateFormula" | DateFormula | |
| "Allow Posting To DateFormula" | DateFormula | |
| "Use Concurrent Posting" | Boolean | Specifies whether to use concurrent posting when posting journals. Concurrent posting can reduce the time it takes to post journals by allowing multiple batches to be posted at the same time. Enabling this option requires additional configuration and setup, such as setting up a batch job to run the concurrent posting process and ensuring that your system has the necessary resources to support concurrent processing. |
| SystemId | Guid | |
| SystemCreatedAt | DateTime | |
| SystemCreatedBy | Guid | |
| SystemModifiedAt | DateTime | |
| SystemModifiedBy | Guid | |
| SystemCreatedByUserName | Text[50] | |
| SystemCreatedByFullName | Text[80] | |
| SystemModifiedByUserName | Text[50] | |
| SystemModifiedByFullName | Text[80] | |
| SystemRowVersion | BigInteger |
Methods
CheckDecimalPlacesFormat
Validates and corrects the format of decimal places configuration for currency and amount display.
procedure CheckDecimalPlacesFormat(var DecimalPlaces: Text[5])
Parameters
| Name | Type | Description |
|---|---|---|
| DecimalPlaces | Text[5] |
Decimal places format string to validate and potentially correct |
GetCurrencyCode
Returns the appropriate currency code for display, converting between LCY code and empty string as needed.
procedure GetCurrencyCode(CurrencyCode: Code[10]): Code[10]
Parameters
| Name | Type | Description |
|---|---|---|
| CurrencyCode | Code[10] |
Input currency code to convert |
Returns
| Type | Description |
|---|---|
| Code[10] |
Converted currency code: LCY code becomes empty, empty becomes LCY code, others remain unchanged |
GetCurrencySymbol
Retrieves the local currency symbol for display in user interface and reports.
procedure GetCurrencySymbol(): Text[10]
Returns
| Type | Description |
|---|---|
| Text[10] |
Local currency symbol or LCY code if symbol is not defined |
GetRecordOnce
Ensures the General Ledger Setup record is read from the database only once per session for performance optimization.
procedure GetRecordOnce()
UpdateVATDate
Updates VAT date based on VAT reporting date configuration and the specified date type.
procedure UpdateVATDate(NewDate: Date; VATDateType: Enum "VAT Reporting Date"; var VATDate: Date)
Parameters
| Name | Type | Description |
|---|---|---|
| NewDate | Date |
New date value to potentially assign |
| VATDateType | Enum Microsoft.Finance.VAT.Setup."VAT Reporting Date" |
Type of VAT reporting date being processed |
| VATDate | Date |
VAT date variable to update if date type matches configuration |
GetVATDate
Determines the appropriate VAT date based on posting date, document date, and VAT reporting date configuration.
procedure GetVATDate(PostingDate: Date; DocumentDate: Date): Date
Parameters
| Name | Type | Description |
|---|---|---|
| PostingDate | Date |
Transaction posting date |
| DocumentDate | Date |
Document date from source document |
Returns
| Type | Description |
|---|---|
| Date |
VAT date based on configuration: posting date, document date, or posting date if document date is zero |
CheckRoundingError
Validates that rounding precision changes are allowed by checking for existing ledger entries across all modules.
procedure CheckRoundingError(NameOfField: Text[100])
Parameters
| Name | Type | Description |
|---|---|---|
| NameOfField | Text[100] |
Name of the field being validated for rounding precision changes |
IsPostingAllowed
Determines whether posting is allowed for the specified date based on setup configuration and extensibility events.
procedure IsPostingAllowed(PostingDate: Date): Boolean
Parameters
| Name | Type | Description |
|---|---|---|
| PostingDate | Date |
Date to validate for posting allowance |
Returns
| Type | Description |
|---|---|
| Boolean |
True if posting is allowed for the specified date, false otherwise |
JobQueueActive
Checks whether background job queue processing is currently active for the general ledger setup.
procedure JobQueueActive(): Boolean
Returns
| Type | Description |
|---|---|
| Boolean |
True if job queue is active, false otherwise |
FirstAllowedPostingDate
Determines the earliest date allowed for posting based on setup configuration and inventory periods.
procedure FirstAllowedPostingDate(): Date
Returns
| Type | Description |
|---|---|
| Date |
First allowed posting date considering setup and inventory period restrictions |
UpdateDimValueGlobalDimNo
Updates global dimension number assignments for dimension values when changing global dimension configuration.
procedure UpdateDimValueGlobalDimNo(xDimCode: Code[20]; DimCode: Code[20]; ShortcutDimNo: Integer)
Parameters
| Name | Type | Description |
|---|---|---|
| xDimCode | Code[20] |
Previous dimension code being replaced |
| DimCode | Code[20] |
New dimension code being assigned |
| ShortcutDimNo | Integer |
Global dimension number (1-8) being updated |
UseConcurrentPosting
procedure UseConcurrentPosting(): Boolean
Returns
| Type | Description |
|---|---|
| Boolean |
UseVat
Determines if VAT is enabled in the system based on current VAT posting setup configuration.
procedure UseVat(): Boolean
Returns
| Type | Description |
|---|---|
| Boolean |
True if VAT posting setup exists and VAT is active, false otherwise |
CheckAllowedPostingDates
Validates that posting dates fall within allowed posting periods defined in general ledger setup.
procedure CheckAllowedPostingDates(NotificationType: Option)
Parameters
| Name | Type | Description |
|---|---|---|
| NotificationType | Option |
Type of notification to show (Error or Notification) when validation fails |
CheckAllowedDeferralPostingDates
Validates that deferral posting dates fall within allowed deferral posting periods.
procedure CheckAllowedDeferralPostingDates(NotificationType: Option)
Parameters
| Name | Type | Description |
|---|---|---|
| NotificationType | Option |
Type of notification to show (Error or Notification) when validation fails |
GetPmtToleranceVisible
Determines if payment tolerance fields should be visible in the user interface.
procedure GetPmtToleranceVisible(): Boolean
Returns
| Type | Description |
|---|---|
| Boolean |
True if payment tolerance percentage or maximum amount is configured |
Events
OnBeforeCheckRoundingError
Integration event raised before validating rounding error configuration. Enables custom error message handling and validation logic for rounding tolerances.
[IntegrationEvent(True,False)]
local procedure OnBeforeCheckRoundingError(var ErrorMessage: Boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| ErrorMessage | Boolean |
Set to true to suppress standard error message display |
OnAfterIsPostingAllowed
Integration event raised after determining if posting is allowed for a given date. Enables custom posting date validation logic and period override capabilities.
[IntegrationEvent(True,False)]
local procedure OnAfterIsPostingAllowed(GeneralLedgerSetup: Record "General Ledger Setup"; PostingDate: Date; var Result: Boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| GeneralLedgerSetup | Table Microsoft.Finance.GeneralLedger.Setup."General Ledger Setup" |
General Ledger Setup record with posting date configuration |
| PostingDate | Date |
Date being validated for posting allowance |
| Result | Boolean |
Validation result indicating if posting is allowed for the date |
OnBeforeFirstAllowedPostingDate
Integration event raised before calculating the first allowed posting date. Enables custom logic for determining earliest allowable posting date based on setup and user permissions.
[IntegrationEvent(False,False)]
local procedure OnBeforeFirstAllowedPostingDate(GeneralLedgerSetup: Record "General Ledger Setup"; var AllowedPostingDate: Date; var IsHandled: Boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| GeneralLedgerSetup | Table Microsoft.Finance.GeneralLedger.Setup."General Ledger Setup" |
General Ledger Setup record with posting period configuration |
| AllowedPostingDate | Date |
Calculated first allowed posting date, can be modified by subscribers |
| IsHandled | Boolean |
Set to true to bypass standard calculation logic |
OnAfterUpdateDimValueGlobalDimNo
Integration event raised after updating global dimension assignments for dimension values. Enables custom processing and validation when global dimensions are reconfigured.
[IntegrationEvent(False,False)]
local procedure OnAfterUpdateDimValueGlobalDimNo(ShortCutDimNo: Integer; OldDimensionCode: Code[20]; NewDimensionCode: Code[20])
Parameters
| Name | Type | Description |
|---|---|---|
| ShortCutDimNo | Integer |
Global dimension number (1-8) that was updated |
| OldDimensionCode | Code[20] |
Previous dimension code that was replaced |
| NewDimensionCode | Code[20] |
New dimension code that was assigned |
OnBeforeValidateAdditionalReportingCurrency
Integration event raised before validating the Additional Reporting Currency field. Enables custom validation logic and the ability to bypass the standard adjustment and analysis view processing.
[IntegrationEvent(False,False)]
local procedure OnBeforeValidateAdditionalReportingCurrency(var AdditionalReportingCurrency: Code[10]; xRecAdditionalReportingCurrency: Code[10]; var IsHandled: Boolean)
Parameters
| Name | Type | Description |
|---|---|---|
| AdditionalReportingCurrency | Code[10] |
New additional reporting currency code being validated, can be modified by subscribers |
| xRecAdditionalReportingCurrency | Code[10] |
Previous additional reporting currency code before the change |
| IsHandled | Boolean |
Set to true to bypass standard validation logic |