---
id: object/codeunit/8
type: object
title: Codeunit 8 "AccSchedManagement"
summary: Codeunit 8 "AccSchedManagement" in Base Application (Microsoft.Finance.FinancialReports). 63 public procedures, 71 events. Present since at least BC23, still in BC30, changed in BC24-28.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "28"
  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: 61005e4612ef9aaf6bf06b4764992ad41f8edab978bfad5d027b5477315bd1bf
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/FinancialReports/AccSchedManagement.Codeunit.al
    title: src/Layers/W1/BaseApp/Finance/FinancialReports/AccSchedManagement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/ca
    - localization/mx
    - localization/ru
    - localization/us
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 8
name: AccSchedManagement
namespace: Microsoft.Finance.FinancialReports
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
source_major: "29"
obsolete: null
countries:
  - ca
  - mx
  - ru
  - us
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 154
  events: 71
  subscribers: 0
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 10
  calls: 8
  called_by: 17
  implements: 0
---

# Codeunit 8 "AccSchedManagement"

> Codeunit 8 "AccSchedManagement" in Base Application (Microsoft.Finance.FinancialReports). 63 public procedures, 71 events. Present since at least BC23, still in BC30, changed in BC24-28.

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

## Properties

| Property | Value |
|---|---|
| TableNo | Acc. Schedule Line |

## Events published

- `OnBeforeCalcColumnHeader(var AccSchedLine: Record "Acc. Schedule Line"; ColumnLayout: Record "Column Layout"; var NewColumnHeader: Text; var IsHandled: Boolean)` (integration): Integration event raised before calculating column header text in account schedule reports. Enables custom header calculation logic and formatting based on column layout configuration.
- `OnCalcColumnHeaderElseCase(var AccSchedLine: Record "Acc. Schedule Line"; ColumnLayout: Record "Column Layout"; FromDate: Date; ToDate: Date; var DateText: Text; var IsHandled: Boolean)` (integration): Integration event raised for custom date formatting in column headers when standard formats don't apply. Enables custom date text generation for specialized column header requirements.
- `OnAfterAccSchedLineInsert(var AccSchedLine: Record "Acc. Schedule Line")` (integration): Integration event raised after inserting a new account schedule line. Enables custom processing and validation when account schedule lines are created.
- `OnAfterCalcCellValue(var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; var Result: Decimal; var SourceAccScheduleLine: Record "Acc. Schedule Line"; var GLAcc: Record "G/L Account")` (integration): Integration event raised after calculating cell values in account schedule reports. Enables custom cell value processing and result modification for specialized calculations.
  - subscribers: [Codeunit 2622 "Stat. Acc. Fin Reporting Mgt"](../codeunit/2622.md) OnAfterCalcCellValue, [Codeunit 6238 "Acc. Schedule Line Subscribers"](../codeunit/6238.md) OnAfterCalcCellValue
- `OnAfterCheckAnalysisView(AccSchedName: Record "Acc. Schedule Name"; ColumnLayoutName: Record "Column Layout Name"; var AnalysisView: Record "Analysis View")` (integration): Integration event raised after validating analysis view compatibility with account schedule configuration. Enables custom analysis view processing and dimension validation logic.
- `OnAfterCheckName(CurrentScheduleName: Code[10])` (integration): Integration event raised after validating and checking account schedule name. Enables custom processing and validation logic after account schedule name verification.
- `OnAfterCheckColumnName(CurrentColumnName: Code[10])` (integration): Integration event raised after validating and checking column layout name. Enables custom processing and validation logic after column layout name verification.
- `OnAfterCheckTemplateAndSetFilter(var CurrentScheduleName: Code[10]; var AccScheduleLine: Record "Acc. Schedule Line")` (integration): Integration event raised after checking account schedule template and setting filters. Enables custom template validation and filter modification after standard processing.
- `OnAfterHasDimFilter(var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; var Result: Boolean)` (integration): Integration event raised after determining whether dimension filtering is active. Enables custom dimension filter detection logic and result modification.
- `OnAfterFormatCellAsText(var ColumnLayout2: Record "Column Layout"; var ValueAsText: Text[30]; Value: Decimal)` (integration): Integration event raised after formatting decimal cell values to text representation. Enables custom cell text formatting and display logic for account schedule reports.
- `OnAfterInsertGLAccounts(var AccScheduleLine: Record "Acc. Schedule Line")` (integration): Integration event raised after inserting G/L accounts into account schedule lines. Enables custom processing and validation after account insertion operations.
- `OnAfterOpenColumns(var CurrentColumnName: Code[10]; var ColumnLayout: Record "Column Layout")` (integration)
- `OnAfterSetGLAccRowFilters(var GLAccount: Record "G/L Account"; var AccScheduleLine: Record "Acc. Schedule Line")` (integration)
- `OnAfterSetCFAccRowFilter(var CashFlowAccount: Record "Cash Flow Account"; var AccScheduleLine: Record "Acc. Schedule Line")` (integration)
- `OnAfterSetCFAnalysisViewEntryFilters(var AnalysisViewEntry: Record "Analysis View Entry"; var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")` (integration)
  - subscribers: [Codeunit 8363 "DimPerspectiveAccSchMgtHandler"](../codeunit/8363.md) OnAfterSetCFAnalysisViewEntryFilters
- `OnAfterSetGLAccColumnFilters(var GLAccount: Record "G/L Account"; var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; StartDate: Date; EndDate: Date)` (integration)
- `OnAfterSetCFAccColumnFilter(var CashFlowAccount: Record "Cash Flow Account"; var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; StartDate: Date; EndDate: Date)` (integration)
- `OnAfterSetCostTypeColumnFilters(var CostType: Record "Cost Type"; var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")` (integration)
- `OnAfterSetGLAccGLEntryFilters(var GLAccount: Record "G/L Account"; var GLEntry: Record "G/L Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; UseBusUnitFilter: Boolean; UseDimFilter: Boolean)` (integration)
  - subscribers: [Codeunit 8363 "DimPerspectiveAccSchMgtHandler"](../codeunit/8363.md) OnAfterSetGLAccGLEntryFilters
- `OnAfterSetGLAccGLBudgetEntryFilters(var GLAcc: Record "G/L Account"; var GLBudgetEntry: Record "G/L Budget Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; UseBusUnitFilter: Boolean; UseDimFilter: Boolean)` (integration)
  - subscribers: [Codeunit 8363 "DimPerspectiveAccSchMgtHandler"](../codeunit/8363.md) OnAfterSetGLAccGLBudgetEntryFilters
- `OnAfterSetGLAccAnalysisViewEntryFilters(var GLAcc: Record "G/L Account"; var AnalysisViewEntry: Record "Analysis View Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")` (integration)
  - subscribers: [Codeunit 8363 "DimPerspectiveAccSchMgtHandler"](../codeunit/8363.md) OnAfterSetGLAccAnalysisViewEntryFilters
- `OnAfterSetGLAccAnalysisViewBudgetEntries(var GLAcc: Record "G/L Account"; var AnalysisViewBudgetEntry: Record "Analysis View Budget Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")` (integration)
  - subscribers: [Codeunit 8363 "DimPerspectiveAccSchMgtHandler"](../codeunit/8363.md) OnAfterSetGLAccAnalysisViewBudgetEntries
- `OnAfterSetCostEntryFilters(var CostType: Record "Cost Type"; var CostEntry: Record "Cost Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; UseDimFilter: Boolean)` (integration)
- `OnAfterSetCostTypeRowFilters(var CostType: Record "Cost Type"; var AccSchedLine2: Record "Acc. Schedule Line")` (integration)
- `OnAfterSetCostBudgetEntryFilters(var CostType: Record "Cost Type"; var CostBudgetEntry: Record "Cost Budget Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")` (integration)
- `OnBeforeCalcCell(var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var Result: Decimal; var IsHandled: Boolean; var Recalculate: Boolean)` (integration)
- `OnBeforeCalcCellExit(var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var Result: Decimal)` (integration)
- `OnBeforeCalcCellValueInEvaluateExpression(IsAccSchedLineExpression: Boolean; AccSchedLine: Record "Acc. Schedule Line"; ColumnLayout: Record "Column Layout"; Expression: Text; CalcAddCurr: Boolean; IsFilter: Boolean; var Result: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcCellValue(var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; var CalcAddCurr: Boolean; var Result: Decimal; var IsHandled: Boolean; AccountScheduleLine: Record "Acc. Schedule Line"; var TempAccSchedCellValue: Record "Acc. Sched. Cell Value" temporary)` (integration)
- `OnBeforeCalcGLAcc(var GLAcc: Record "G/L Account"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var ColValue: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcCFAcc(var CFAccount: Record "Cash Flow Account"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; var ColValue: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCalcCostType(var CostType: Record "Cost Type"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var ColValue: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeCopyColumnsToTemp(NewColumnName: Code[10]; var TempColumnLayout: Record "Column Layout"; var IsHandled: Boolean)` (integration)
- `OnBeforeFormatCellResult(AccSchedLine: Record "Acc. Schedule Line"; ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var Result: Decimal; var IsHandled: Boolean)` (integration)
- `OnBeforeEvaluateExpression(var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; var MaxLevel: Integer)` (integration)
- `OnBeforeLookupColumnName(CurrentColumnName: Code[10]; var EntrdColumnName: Text[10]; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeGetCostAccSetup(var CostAccSetup: Record "Cost Accounting Setup"; var IsHandled: Boolean)` (integration)
- `OnBeforeIsExpressionFilter(Expression: Text; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeDrillDown(TempColumnLayout: Record "Column Layout" temporary; var AccScheduleLine: Record "Acc. Schedule Line"; PeriodLength: Option; var IsHandled: Boolean)` (integration)
- `OnBeforeTestBalance(var GLAccount: Record "G/L Account"; var AccScheduleName: Record "Acc. Schedule Name"; var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; AmountType: Integer; var ColValue: Decimal; CalcAddCurr: Boolean; var TestBalance: Boolean; var GLEntry: Record "G/L Entry"; var GLBudgetEntry: Record "G/L Budget Entry"; var Balance: Decimal)` (integration)
- `OnBeforeDrillDownFromOverviewPage(var TempColumnLayout: Record "Column Layout" temporary; var AccScheduleLine: Record "Acc. Schedule Line"; PeriodLength: Option; var IsHandled: Boolean)` (integration)
- `OnBeforeDrillDownOnAccounts(var AccScheduleLine: Record "Acc. Schedule Line"; var TempColumnLayout: Record "Column Layout" temporary; PeriodLength: Option; StartDate: Date; EndDate: Date)` (integration)
  - subscribers: [Codeunit 2622 "Stat. Acc. Fin Reporting Mgt"](../codeunit/2622.md) HandleOnBeforeDrillDownOnAccounts
- `OnBeforeDrillDownOnGLAccount(var TempColumnLayout: Record "Column Layout" temporary; var AccScheduleLine: Record "Acc. Schedule Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeInsertGLAccounts(var AccScheduleLine: Record "Acc. Schedule Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetGLAccRowFilters(var GLAcc: Record "G/L Account"; var AccSchedLine2: Record "Acc. Schedule Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetCFAccRowFilter(var CFAccount: Record "Cash Flow Account"; var AccSchedLine2: Record "Acc. Schedule Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeSetGLAccGLEntryFilters(var GLAcc: Record "G/L Account"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; UseBusUnitFilter: Boolean; UseDimFilter: Boolean; var IsHandled: Boolean; var GLEntry: Record "G/L Entry")` (integration)
- `OnBeforeSetGLAccGLBudgetEntryFilters(var GLAcc: Record "G/L Account"; var GLBudgetEntry: Record "G/L Budget Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; UseBusUnitFilter: Boolean; UseDimFilter: Boolean; var IsHandled: Boolean)` (integration)
- `OnCalcCellValueOnBeforeExit(var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; StartDate: Date; EndDate: Date; var Result: Decimal)` (integration)
- `OnCalcCellValueOnElseTotalingType(AccSchedLine: Record "Acc. Schedule Line"; AccountScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; var Result: Decimal)` (integration)
- `OnConvDimTotalingFilterOnDimNoElseCase(DimNo: Integer; var DimCode: Code[20]; AnalysisView: Record "Analysis View"; CostAccountingSetup: Record "Cost Accounting Setup")` (integration)
- `OnDrillDownOnGLAccountOnBeforeCopyFiltersEmptyAnalysisViewName(var AccScheduleLine: Record "Acc. Schedule Line"; var TempColumnLayout: Record "Column Layout"; var GLAcc: Record "G/L Account")` (integration)
- `OnDrillDownOnGLAccountOnBeforeCopyFiltersWithAnalysisView(var AccScheduleLine: Record "Acc. Schedule Line"; var TempColumnLayout: Record "Column Layout"; var GLAcc: Record "G/L Account"; var GLAccAnalysisView: Record "G/L Account (Analysis View)")` (integration)
- `OnEvaluateExpressionOnBeforeCalcAccSchedLineCellValue(SourceAccSchedLine: Record "Acc. Schedule Line"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var IsHandled: Boolean; var CellValue: Decimal)` (integration)
- `OnEvaluateExpressionOnBeforeCalcColumnLayoutCellValue(SourceColumnLayout: Record "Column Layout"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var IsHandled: Boolean; var CellValue: Decimal)` (integration)
- `OnInsertGLAccountsOnBeforeAccSchedLineInsert(var AccSchedLine: Record "Acc. Schedule Line"; GLAccount: Record "G/L Account")` (integration)
- `OnMoveAccSchedLinesOnAfterAccSchedLineDelete(var AccSchedLine: Record "Acc. Schedule Line"; Place: Integer)` (integration)
- `OnCalcCellValueInAccSchedLinesOnBeforeShowError(SourceAccScheduleLine: Record "Acc. Schedule Line"; var AccScheduleLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var CellValue: Decimal; StartDate: Date; EndDate: Date; var Result: Decimal; var IsHandled: Boolean; Expression: Text; var DivisionError: Boolean; var PeriodError: Boolean)` (integration)
- `OnSetGLAccAnalysisViewEntryFiltersOnBeforeAccSchedLineCopyFilter(var AccScheduleLine: Record "Acc. Schedule Line"; AnalysisViewEntry: Record "Analysis View Entry")` (integration)
- `OnCopyColumnsToTempOnAfterColumnLayoutInsert(AccSchedName: Record "Acc. Schedule Name"; NewColumnName: Code[10]; ColumnLayout: Record "Column Layout"; var TempColumnLayout: Record "Column Layout" temporary)` (integration)
- `OnAfterCheckTemplateName(CurrentSchedName: Code[10])` (integration)
- `OnCopyColumnsToTempOnBeforeFind(AccSchedName: Record "Acc. Schedule Name"; NewColumnName: Code[10]; var TempColumnLayout: Record "Column Layout" temporary)` (integration)
- `OnDrillDownTotalingTypeElseCase(var TempColumnLayout: Record "Column Layout" temporary; var AccSchedLine: Record "Acc. Schedule Line")` (integration)
  - subscribers: [Codeunit 6238 "Acc. Schedule Line Subscribers"](../codeunit/6238.md) OnDrillDownTotalingTypeElseCase
- `OnDrillDownOnGLAccCatFilterOnAfterGLAccSetFilterGroup2(var AccScheduleLine: Record "Acc. Schedule Line"; var GLAccount: Record "G/L Account")` (integration)
- `OnAfterCalcColumnDates(ColumnLayout: Record "Column Layout"; var FromDate: Date; var ToDate: Date; var FiscalStartDate2: Date; var PeriodError: Boolean)` (integration)
- `OnBeforeHasCostDimFilter(var AccScheduleLine: Record "Acc. Schedule Line"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnCalcCellOnAfterAccountScheduleLineCopyFilters(ColumnLayout: Record "Column Layout"; var AccScheduleLine: Record "Acc. Schedule Line")` (integration)
- `OnSetCFEntryFiltersOnAfterAccShedLineCopyFilter(var AccSchedLine: Record "Acc. Schedule Line"; var CFForecastEntry: Record "Cash Flow Forecast Entry")` (integration)
  - subscribers: [Codeunit 8363 "DimPerspectiveAccSchMgtHandler"](../codeunit/8363.md) OnSetCFEntryFiltersOnAfterAccShedLineCopyFilter
- `OnBeforeFormatCellAsText(var ColumnLayout2: Record "Column Layout"; Value: Decimal; var IsHandled: Boolean)` (integration)
- `OnCalcCFAccountOnAfterSetEntryFilters(var CFAccount: Record "Cash Flow Account"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; var ColValue: Decimal)` (integration)
- `OnAfterGetConvDimCode(AnalysisView: Record "Analysis View"; var DimCode: Code[20])` (integration)

## Procedures

- `OpenSchedule(var CurrentSchedName: Code[10]; var AccSchedLine: Record "Acc. Schedule Line")`: Opens and initializes account schedule lines for the specified schedule name with proper template validation. Ensures the schedule exists and applies appropriate filters for schedule line processing.
- `OpenAndCheckSchedule(var CurrentSchedName: Code[10]; var AccSchedLine: Record "Acc. Schedule Line")`: Opens account schedule with validation and system-generated schedule protection logic. Prompts user to copy system-generated schedules before modification to preserve integrity.
- `GetAccountScheduleCaption(CurrentSchedName: Code[10]): Text`
- `CheckName(CurrentSchedName: Code[10])`: Validates that the specified account schedule name exists in the database. Raises error if account schedule name is not found.
- `SetName(CurrentSchedName: Code[10]; var AccSchedLine: Record "Acc. Schedule Line")`: Sets the account schedule name filter on account schedule lines for data filtering and processing. Configures account schedule line record to work with the specified schedule.
- `LookupName(CurrentSchedName: Code[10]; var EntrdSchedName: Text[10]): Boolean`: Opens account schedule name lookup dialog and returns the selected schedule name. Enables interactive selection of account schedules for financial reporting.
- `OpenColumns(var CurrentColumnName: Code[10]; var ColumnLayout: Record "Column Layout")`: Opens and initializes column layout lines for the specified column layout name with proper template validation. Ensures the column layout exists and applies appropriate filters for column layout processing.
- `GetColumnLayoutCaption(CurrentColumnName: Code[10]): Text`
- `CheckColumnName(CurrentColumnName: Code[10])`: Validates that the specified column layout name exists in the database. Raises error if column layout name is not found.
- `SetColumnName(CurrentColumnName: Code[10]; var ColumnLayout: Record "Column Layout")`: Sets the column layout name filter on column layout lines for data filtering and processing. Configures column layout record to work with the specified column layout name.
- `CopyColumnsToTemp(NewColumnName: Code[10]; var TempColumnLayout: Record "Column Layout")`: Copies column layout lines to temporary table for processing and manipulation. Enables temporary column layout processing without affecting the original data.
- `LookupColumnName(CurrentColumnName: Code[10]; var EntrdColumnName: Text[10]): Boolean`: Opens column layout name lookup window and returns selected column name.
- `SetAnalysisViewRead(Value: Boolean)`: Sets the analysis view read status flag.
- `CheckAnalysisView(CurrentSchedName: Code[10]; CurrentColumnName: Code[10]; TestColumnName: Boolean)`: Validates analysis view consistency across account schedule and column layout configuration. Ensures analysis view setup is compatible with financial reporting requirements.
- `CheckPerspectiveAnalysisView(CurrentSchedName: Code[10]; CurrentPerspectiveName: Code[10])`
- `AccPeriodStartEnd(ColumnLayout: Record "Column Layout"; Date: Date; var StartDate: Date; var EndDate: Date)`: Calculates accounting period start and end dates based on column layout comparison period formula. Handles period formulas for historical, current, and future period comparisons.
- `CalcCell(var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean): Decimal`: Calculates the cell for the specified Acc. Schedule Line and Column Layout combination. An additional currency can be calculated using the CalcAddCurr parameter, but this parameter may be ignored if the Column Layout's Show in ACY field is set to true. Core calculation engine handling formulas, tota...
- `FormatCellResult(AccSchedLine: Record "Acc. Schedule Line"; ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean; var Result: Decimal)`: Applies display formatting rules to calculated financial values. Handles positive/negative value display options and rounding specifications.
- `CalcCellValue(AccSchedLine: Record "Acc. Schedule Line"; ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean): Decimal`: Evaluates financial value for specific account schedule line and column layout combination. Handles various source systems including G/L accounts, cost accounting, cash flow, and budgets.
- `CalcGLAcc(var GLAcc: Record "G/L Account"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean): Decimal`: Calculates G/L account values for account schedule line and column intersection. Handles various amount types, entry types, and currency calculations with filter support.
- `CalcCFAccount(var CFAccount: Record "Cash Flow Account"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"): Decimal`: Calculates cash flow account values for account schedule line and column intersection. Processes cash flow forecast entries with support for various amount types and filtering.
- `SetGLAccRowFilters(var GLAcc: Record "G/L Account"; var AccSchedLine2: Record "Acc. Schedule Line")`: Applies row-level filters to G/L Account based on account schedule line totaling configuration. Sets appropriate account number and account type filters for posting or total accounts.
- `SetGLAccGLEntryFilters(var GLAcc: Record "G/L Account"; var GLEntry: Record "G/L Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; UseBusUnitFilter: Boolean; UseDimFilter: Boolean)`: Applies comprehensive filters to G/L Entry records for account schedule calculations. Handles account filters, date ranges, business unit filters, and dimension filters.
- `SetGLAccGLBudgetEntryFilters(var GLAcc: Record "G/L Account"; var GLBudgetEntry: Record "G/L Budget Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; UseBusUnitFilter: Boolean; UseDimFilter: Boolean)`: Applies comprehensive filters to G/L Budget Entry records for account schedule budget calculations. Configures account filters, date ranges, business unit filters, and dimension filters for budget analysis.
- `SetGLAccAnalysisViewBudgetEntries(var GLAcc: Record "G/L Account"; var AnalysisViewBudgetEntry: Record "Analysis View Budget Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")`: Configures Analysis View Budget Entry filters for multi-dimensional budget analysis calculations. Applies account filters, analysis view settings, budget name filters, and comprehensive dimension filtering.
- `SetGLAccAnalysisViewEntryFilters(var GLAcc: Record "G/L Account"; var AnalysisViewEntry: Record "Analysis View Entry"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")`: Configures Analysis View Entry filters for multi-dimensional G/L analysis calculations. Applies account source settings, account filters, analysis view configuration, and dimension filtering.
- `SetCFAccRowFilter(var CFAccount: Record "Cash Flow Account"; var AccSchedLine2: Record "Acc. Schedule Line")`: Applies row-level filters to Cash Flow Account based on account schedule line configuration. Sets cash flow forecast filters and account number filters for cash flow entry account calculations.
- `SetGLAccColumnFilters(var GLAcc: Record "G/L Account"; AccSchedLine2: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")`: Applies column-level date filters to G/L Account based on column layout and row type configuration. Handles net change, beginning balance, and balance at date calculations with proper date range filtering.
- `SetCFAccColumnFilter(var CFAccount: Record "Cash Flow Account"; AccSchedLine2: Record "Acc. Schedule Line"; var ColumnLayout2: Record "Column Layout")`: Applies column-level date filters to Cash Flow Account based on column layout and row type configuration. Handles cash flow forecast date range filtering for different row types and column calculations.
- `ApplyOperator(LeftResult: Decimal; RightResult: Decimal; Operator: Char; var DivisionError: Boolean): Decimal`: Applies mathematical operators to two decimal values with division error handling. Supports addition, subtraction, multiplication, and division operations for account schedule formula calculations.
- `ParseExpression(Expression: Text; var i: Integer): Boolean`: Parses mathematical expressions to identify operator positions and validate expression structure. Handles parentheses nesting and operator precedence for account schedule formula parsing.
- `EvaluateExpression(IsAccSchedLineExpression: Boolean; Expression: Text; AccSchedLine: Record "Acc. Schedule Line"; ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean): Decimal`: Evaluates complex mathematical expressions for account schedule calculations. Processes formulas with operators, parentheses, and cell references for financial reporting.
- `FormatCellAsText(var ColumnLayout2: Record "Column Layout"; Value: Decimal; CalcAddCurr: Boolean): Text[30]`: Formats decimal values as text for display in account schedule reports with proper rounding and currency formatting. Applies rounding factors, currency symbols, and percentage formatting based on column layout configuration.
- `GetDivisionError(): Boolean`: Returns the current division error status indicating if division by zero occurred during calculations. Used for error handling and validation in account schedule formula processing.
- `GetPeriodError(): Boolean`: Returns the current period error status indicating if invalid date calculations occurred. Used for error handling and validation in account schedule period processing.
- `ShowError(MessageLine: Text; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")`: Displays detailed error messages for account schedule calculation failures with context information. Shows the problematic account schedule line and column layout details to assist in debugging.
- `InsertGLAccounts(var AccSchedLine: Record "Acc. Schedule Line")`: Opens G/L account selection dialog and inserts selected accounts as new account schedule lines. Creates multiple lines based on user selection and maintains line numbering sequence.
- `InsertCFAccounts(var AccSchedLine: Record "Acc. Schedule Line")`: Opens cash flow account selection dialog and inserts selected accounts as new account schedule lines. Creates multiple cash flow lines based on user selection with proper line numbering.
- `InsertCostTypes(var AccSchedLine: Record "Acc. Schedule Line")`: Opens cost type selection dialog and inserts selected cost types as new account schedule lines. Creates multiple cost accounting lines based on user selection with appropriate totaling setup.
- `IsExpressionFilter(Expression: Text): Boolean`: Determines if an expression contains filter characters and should be processed as a filter rather than a direct value. Checks for range operators, wildcards, and logical operators to identify filter expressions.
- `SetAccSchedName(var NewAccSchedName: Record "Acc. Schedule Name")`: Sets the current account schedule name for processing and calculations. Updates the internal account schedule name reference used across calculation procedures.
- `GetDimTotalingFilter(DimNo: Integer; DimTotaling: Text[250]): Text[1024]`: Converts dimension totaling expressions into proper filter text for dimension filtering. Processes dimension codes and totaling ranges to create valid dimension value filters.
- `CalcCostType(var CostType: Record "Cost Type"; var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"; CalcAddCurr: Boolean): Decimal`: Calculates cost type values for account schedule line and column intersection with cost accounting integration. Handles cost entry calculations, cost budget entries, and various amount types for cost accounting analysis.
- `SetCostTypeRowFilters(var CostType: Record "Cost Type"; var AccSchedLine2: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")`: Applies row-level filters to Cost Type record based on account schedule line configuration. Sets cost type number filters, type filters, and cost center/object filters for cost accounting calculations.
- `SetCostTypeColumnFilters(var CostType: Record "Cost Type"; AccSchedLine2: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout")`: Applies column-level date filters to Cost Type record based on column layout and row type configuration. Handles cost accounting date range filtering for different column types and row calculations.
- `HasDimFilter(var AccSchedLine: Record "Acc. Schedule Line"; var ColumnLayout: Record "Column Layout"): Boolean`: Determines if dimension filtering is active on either account schedule line or column layout. Checks dimension totaling fields and dimension filters to identify multi-dimensional analysis requirements.
- `CalcColumnDates(ColumnLayout: Record "Column Layout"; var FromDate: Date; var ToDate: Date; var FiscalStartDate2: Date)`: Calculates date ranges for column layout based on comparison date formulas and period formulas. Processes relative date calculations and fiscal period adjustments for financial reporting.
- `MoveAccSchedLines(var AccSchedLine: Record "Acc. Schedule Line"; Place: Integer)`: Moves account schedule lines within a schedule to create space for insertions or reorganization. Adjusts line numbers by shifting subsequent lines to maintain proper ordering.
- `SetStartDateEndDate(NewStartDate: Date; NewEndDate: Date)`: Sets the global start and end date range for account schedule calculations. Updates the internal date variables used across all calculation procedures.
- `GetStartDateEndDate(var OutputStartDate: Date; var OutputEndDate: Date)`: Retrieves the current global start and end date range used for account schedule calculations. Returns the internal date variables set through SetStartDateEndDate procedure.
- `ConflictAmountType(AccSchedLine: Record "Acc. Schedule Line"; ColumnLayoutAmtType: Enum "Account Schedule Amount Type"; var AmountType: Enum "Account Schedule Amount Type"): Boolean`: Determines if there is a conflict between account schedule line and column layout amount types. Resolves amount type precedence and returns the effective amount type for calculations.
- `DrillDown(TempColumnLayout: Record "Column Layout" temporary; var AccScheduleLine: Record "Acc. Schedule Line"; PeriodLength: Option)`: Opens drill-down detail view for account schedule line and column intersection. Navigates to appropriate ledger entries or detail pages based on source type.
- `DrillDownFromOverviewPage(TempColumnLayout: Record "Column Layout" temporary; var AccScheduleLine: Record "Acc. Schedule Line"; PeriodLength: Option)`: Handles drill-down navigation from account schedule overview page. Provides formula information display or navigates to detailed data views.
- `GLAccCategoryText(AccScheduleLine: Record "Acc. Schedule Line"): Text[250]`: Generates formatted text representation of G/L Account Categories for account schedule line totaling. Creates pipe-separated list of account category descriptions for display and reporting purposes.
- `DrillDownOnGLAccount(TempColumnLayout: Record "Column Layout" temporary; var AccScheduleLine: Record "Acc. Schedule Line")`: Opens drill-down view for G/L account totaling in account schedule line. Navigates to General Ledger Entries filtered by account schedule parameters.
- `DrillDownOnCFAccount(TempColumnLayout: Record "Column Layout" temporary; var AccScheduleLine: Record "Acc. Schedule Line")`: Opens drill-down view for cash flow account totaling in account schedule line. Navigates to Cash Flow Ledger Entries filtered by account schedule parameters.
- `FindPeriod(var AccScheduleLine: Record "Acc. Schedule Line"; SearchText: Text[3]; PeriodType: Enum "Analysis Period Type")`: Navigates to a specific period within account schedule lines based on search text and period type. Updates the date filter on the account schedule line to match the found period.
- `CalcFieldError(var ErrorType: Option "None","Division by Zero","Period Error",Both; RowNo: Integer; ColumnNo: Integer)`: Determines calculation error type for specific account schedule cell intersection. Checks for division by zero errors and period calculation problems.
- `ForceRecalculate(NewRecalculate: Boolean)`: Forces recalculation of account schedule values by setting the recalculate flag. Controls whether cached values should be refreshed for financial reporting calculations.
- `CalcLCYToACY(ColValue: Decimal): Decimal`: Converts local currency amounts to additional currency amounts for multi-currency reporting. Uses exchange rates and additional reporting currency setup from general ledger configuration.
- `SetFiscalStartDate(NewFiscalStartDate: Date)`: Sets the fiscal year start date for financial period calculations and reporting. Used to align account schedule calculations with company fiscal calendar.
- `GetFiscalStartDate(): Date`: Retrieves the currently set fiscal year start date used for period calculations. Returns the fiscal start date for account schedule reporting and analysis.
- `CalcColumnHeader(var AccSchedLine: Record "Acc. Schedule Line"; ColumnLayout: Record "Column Layout"): Text`: Calculates the column header text for account schedule reports based on column layout configuration. Generates dynamic headers incorporating dates, periods, and custom formatting.

Plus 20 local procedures.

## Triggers

OnRun

## Relations

- runs on [Table 85 "Acc. Schedule Line"](../table/85.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 360 "Accounting Period Mgt."](../codeunit/360.md) (7 calls: `AccPeriodStartEnd → AccPeriodStartEnd`, `CalcCell → FindFiscalYear`, `CalcColumnDates → FindFiscalYear`, …)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (1 call: `OpenAndCheckSchedule → GetResponseOrDefault`)
- [Codeunit 362 "PeriodPageManagement"](../codeunit/362.md) (1 call: `FindPeriod → FindDate`)
- [Codeunit 9200 "Matrix Management"](../codeunit/9200.md) (1 call: `FormatCellAsText → FormatAmount`)
- [Codeunit 921 "Period Formula Parser"](../codeunit/921.md) (1 call: `AccPeriodStartEnd → ParsePeriodFormula`)
- [Page 1100 "Chart of Cost Types"](../page/1100.md) (1 call: `DrillDownOnGLAccCatFilter → (object)`)
- [Page 570 "Chart of Accounts (G/L)"](../page/570.md) (1 call: `DrillDownOnGLAccCatFilter → (object)`)
- [Page 851 "Chart of Cash Flow Accounts"](../page/851.md) (1 call: `DrillDownOnCFAccount → (object)`)

## Called by

- [Page 490 "Acc. Schedule Overview"](../page/490.md) (16 calls: `CurrentColumnNameOnAfterValidate → CheckAnalysisView`, `CurrentColumnNameOnAfterValidate → CopyColumnsToTemp`, `CurrentColumnNameOnAfterValidate → SetAnalysisViewRead`, …)
- [Codeunit 762 "Acc. Sched. Chart Management"](../codeunit/762.md) (10 calls: `DrillDownOnCFAccount → GetDimTotalingFilter`, `DrillDownOnCFAccount → SetCFAccColumnFilter`, `DrillDownOnCFAccount → SetCFAccRowFilter`, …)
- [Codeunit 9 "Acc. Sched. KPI Dimensions"](../codeunit/9.md) (10 calls: `AddCellValueDimensions → SetCFAccColumnFilter`, `AddCellValueDimensions → SetCFAccRowFilter`, `AddCellValueDimensions → SetCostTypeColumnFilters`, …)
- [Codeunit 1318 "Trial Balance Mgt."](../codeunit/1318.md) (9 calls: `DrillDown → DrillDown`, `Initialize → CheckAnalysisView`, `Initialize → CopyColumnsToTemp`, …)
- [Codeunit 6237 "Acc. Sch. Line Mgmt. Helper"](../codeunit/6237.md) (9 calls: `CalcSustAcc → ConflictAmountType`, `CalcSustAcc → HasDimFilter`, `CalcSustAcc → SetAccSchedName`, …)
- [Codeunit 5488 "Graph Mgt - Reports"](../codeunit/5488.md) (6 calls: `SetUpAccountScheduleBaseAPIData → CalcCell`, `SetUpAccountScheduleBaseAPIData → CheckAnalysisView`, `SetUpAccountScheduleBaseAPIData → CopyColumnsToTemp`, …)
- [Report 25 "Account Schedule"](../report/25.md) (6 calls: `AppendDimPerspectiveReports → CheckPerspectiveAnalysisView`, `CalcColumnValueAsText → CalcCell`, `CalcColumnValueAsText → CalcColumnHeader`, …)
- [Codeunit 436 "Acc. Sched. BarChart DrillDown"](../codeunit/436.md) (5 calls: `OnRun → CalcCell`, `OnRun → CheckAnalysisView`, `OnRun → GetDimTotalingFilter`, …)
- [Codeunit 2622 "Stat. Acc. Fin Reporting Mgt"](../codeunit/2622.md) (4 calls: `HandleOnBeforeDrillDownOnAccounts → SetStartDateEndDate`, `SetStatAccColumnFilters → CalcColumnDates`, `SetStatisticalAccountAnalysisViewEntryFilters → GetDimTotalingFilter`, …)
- [Page 104 "Account Schedule"](../page/104.md) (4 calls: `CurrentSchedNameOnAfterValidate → SetName`, `GetAccountCategoryTotalingToDisplay → GLAccCategoryText`, `OnOpenPage → GetAccountScheduleCaption`, …)
- [Codeunit 6260 "Sust. ESG Reporting Helper Mgt"](../codeunit/6260.md) (3 calls: `EvaluateExpression → ApplyOperator`, `EvaluateExpression → IsExpressionFilter`, `EvaluateExpression → ParseExpression`)
- [Report 27 "Dimensions - Total"](../report/27.md) (3 calls: `CalcColumns → CalcCell`, `CalcColumns → FormatCellAsText`, `OnPreReport → SetAccSchedName`)
- [Report 29 "Export Acc. Sched. to Excel"](../report/29.md) (3 calls: `CalcColumnValue → CalcCell`, `CalcColumnValue → GetDivisionError`, `PopulateExcelBuffer → CalcColumnHeader`)
- [Page 489 "Column Layout"](../page/489.md) (2 calls: `OnOpenPage → GetColumnLayoutCaption`, `OnOpenPage → OpenColumns`)
- [Codeunit 18 "Financial Report Mgt."](../codeunit/18.md) (1 call: `CalcAccScheduleLineDateFilter → FindPeriod`)
- [Codeunit 197 "Update Acc. Sched. KPI Data"](../codeunit/197.md) (1 call: `CalcValues → CalcCell`)
- [Table 88 "Financial Report"](../table/88.md) (1 call: `OnInsert → CheckAnalysisView`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-28

## Countries that replace it

[CA](../../localizations/ca.md), [MX](../../localizations/mx.md), [RU](../../localizations/ru.md), [US](../../localizations/us.md)

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