---
id: object/table/363
type: object
title: Table 363 "Analysis View"
summary: Table 363 "Analysis View" in Base Application (Microsoft.Finance.Analysis). 19 fields, 15 public procedures, 17 events. Present since at least BC23, still in BC30, changed in BC24, BC29.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "29"
  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: 899193bb781970d0fd0ec96a35169d76558c4fd87586af71310ecf1d0c080fcd
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Finance/Analysis/AnalysisView.Table.al
    title: src/Layers/W1/BaseApp/Finance/Analysis/AnalysisView.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/bi-how-analyze-data-dimension
    - https://learn.microsoft.com/dynamics365/business-central/bi-how-create-analysis-views-reports
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/financial-analytics/financial-reporting
    - topic/business-central/business-functionality/sales/sales-analytics
  localizations:
    - localization/es
  videos: []
  posts: []
  guidelines: []
object_type: table
object_id: 363
name: Analysis View
namespace: Microsoft.Finance.Analysis
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "29"
source_major: "29"
obsolete: null
countries:
  - es
ms_search_form_ids: []
counts:
  fields: 19
  procedures: 38
  events: 17
  subscribers: 0
relations:
  out: 8
  referenced_by: 11
  pages: 2
  extended_by: 1
  event_subscribers: 5
  calls: 3
  called_by: 0
  implements: 0
---

# Table 363 "Analysis View"

> Table 363 "Analysis View" in Base Application (Microsoft.Finance.Analysis). 19 fields, 15 public procedures, 17 events. Present since at least BC23, still in BC30, changed in BC24, BC29.

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

Learn documents this table through its pages: [Page 555 "Analysis View Card"](../page/555.md) (2 Learn pages), [Page 556 "Analysis View List"](../page/556.md) (2).

## Properties

| Property | Value |
|---|---|
| Caption | Analysis View |
| DataClassification | CustomerContent |
| Permissions | TableData "Analysis View Entry" = rimd, TableData "Analysis View Budget Entry" = rimd |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Code | Code[10] | Specifies the code for this entry. | NotBlank |
| 2 | Name | Text[50] | Specifies the name. |  |
| 3 | Account Source | Enum "Analysis Account Source" | Specifies an account that you can use as a filter to define what is displayed in the Analysis by Dimensions window. | enum [Enum 7133 "Analysis Account Source"](../enum/7133.md) |
| 4 | Last Entry No. | Integer | Specifies the number of the last general ledger entry you posted, prior to updating the analysis view. |  |
| 5 | Last Budget Entry No. | Integer | Specifies the number of the last item budget entry you entered prior to updating the analysis view. |  |
| 6 | Last Date Updated | Date | Specifies the date on which the analysis view was last updated. |  |
| 7 | Update on Posting | Boolean | Specifies if the analysis view is updated every time that you post a general ledger entry. | not editable |
| 8 | Blocked | Boolean | Specifies that the related record is blocked from being posted in transactions, for example a customer that is declared insolvent or an item that is placed in quarantine. |  |
| 9 | Account Filter | Code[250] | Specifies which accounts are shown in the analysis view. | TableRelation [Table 15 "G/L Account"](../table/15.md), [Table 841 "Cash Flow Account"](../table/841.md) (if ("Account Source" = const("G/L Account")) "G/L Account" else if ("Account Source" = const("Cash Flow Account")) "Cash Flow Account") |
| 10 | Business Unit Filter | Code[250] | — | TableRelation [Table 220 "Business Unit"](../table/220.md) (Business Unit) |
| 11 | Starting Date | Date | Specifies the starting date of the campaign analysis. |  |
| 12 | Date Compression | Option | Specifies the period that the program will combine entries for, in order to create a single entry for that time period. | OptionCaption: None,Day,Week,Month,Quarter,Year,Period |
| 13 | Dimension 1 Code | Code[20] | Specifies one of the four dimensions that you can include in an analysis view. | TableRelation [Table 348 "Dimension"](../table/348.md) |
| 14 | Dimension 2 Code | Code[20] | Specifies one of the four dimensions that you can include in an analysis view. | TableRelation [Table 348 "Dimension"](../table/348.md) |
| 15 | Dimension 3 Code | Code[20] | Specifies one of the four dimensions that you can include in an analysis view. | TableRelation [Table 348 "Dimension"](../table/348.md) |
| 16 | Dimension 4 Code | Code[20] | Specifies one of the four dimensions that you can include in an analysis view. | TableRelation [Table 348 "Dimension"](../table/348.md) |
| 17 | Include Budgets | Boolean | Specifies whether to include an update of analysis view budget entries, when updating an analysis view. |  |
| 18 | Refresh When Unblocked | Boolean | — |  |
| 19 | Reset Needed | Boolean | Data update needed <small>caption</small> |  |

## Keys

- Key1: Code (clustered)
- Key2: Account Source

## Events published

- `OnAfterAnalysisViewReset(var AnalysisView: Record "Analysis View")` (integration): Integration event raised after analysis view reset operations are completed.
- `OnAfterCopyAnalysisViewFilters(var AnalysisView: Record "Analysis View"; ObjectType: Integer; ObjectID: Integer; AnalysisViewCode: Code[10]; var GLAcc: Record "G/L Account")` (integration): Integration event raised after copying analysis view filters to selected dimensions.
- `OnBeforeValidateDimension1Code(var Rec: Record "Analysis View"; var xRec: Record "Analysis View")` (integration): Integration event raised before validating Dimension 1 Code field changes.
- `OnBeforeValidateDimension2Code(var Rec: Record "Analysis View"; var xRec: Record "Analysis View")` (integration): Integration event raised before validating Dimension 2 Code field changes.
- `OnBeforeValidateDimension3Code(var Rec: Record "Analysis View"; var xRec: Record "Analysis View")` (integration): Integration event raised before validating Dimension 3 Code field changes.
- `OnBeforeValidateDimension4Code(var Rec: Record "Analysis View"; var xRec: Record "Analysis View")` (integration): Integration event raised before validating Dimension 4 Code field changes.
- `OnBeforeValidateDateCompression(var Rec: Record "Analysis View"; var xRec: Record "Analysis View"; var IsHandled: Boolean)` (integration): Integration event raised before validating Date Compression field changes.
- `OnBeforeValidateBlocked(var Rec: Record "Analysis View"; var xRec: Record "Analysis View"; var IsHandled: Boolean)` (integration): Integration event raised before validating the Blocked field on Analysis View records. Enables custom validation logic and the ability to bypass standard validation.
- `OnBeforeValidateStartingDate(var Rec: Record "Analysis View"; var xRec: Record "Analysis View"; var IsHandled: Boolean)` (integration): Integration event raised before validating the Starting Date field on Analysis View records. Enables custom validation logic and the ability to bypass standard validation.
- `OnBeforeValidateIncludeBudgets(var Rec: Record "Analysis View"; var xRec: Record "Analysis View"; var IsHandled: Boolean)` (integration): Integration event raised before validating the Include Budgets field on Analysis View records. Enables custom validation logic and the ability to bypass standard validation.
- `OnBeforeValidateAccountFilter(var Rec: Record "Analysis View"; var xRec: Record "Analysis View"; var IsHandled: Boolean)` (integration): Integration event raised before validating the Account Filter field on Analysis View records. Enables custom validation logic and the ability to bypass standard validation.
- `OnBeforeValidateBusinessUnitFilter(var Rec: Record "Analysis View"; var xRec: Record "Analysis View"; var IsHandled: Boolean)` (integration): Integration event raised before validating the Business Unit Filter field on Analysis View records. Enables custom validation logic and the ability to bypass standard validation.
- `OnBeforeCheckIfLastEntryOrDateIsSet(var Rec: Record "Analysis View"; var Result: Boolean; var IsHandled: Boolean)` (integration): Integration event raised before checking if Last Entry or Date field is set on Analysis View records. Enables custom logic for determining analysis view update requirements.
- `OnBeforeSetUpdateOnPosting(var Rec: Record "Analysis View"; NewUpdateOnPosting: Boolean)` (integration): Integration event raised before setting the Update on Posting field on Analysis View records. Enables custom logic for managing automatic analysis view updates.
- `OnValidateAccountFilter(var AnalysisView: Record "Analysis View"; var xRecAnalysisView: Record "Analysis View")` (integration): Integration event raised when validating account filter on Analysis View records. Enables additional validation or processing during account filter validation.
  - subscribers: [Codeunit 2621 "Stat. Acc. Analysis View Mgt."](../codeunit/2621.md) HandleOnValidateAccountFilter
- `OnLookupAccountFilter(var Handled: Boolean; var AccountFilter: Text; var AnalysisView: Record "Analysis View")` (integration): Integration event raised when performing account filter lookup on Analysis View records. Enables custom lookup behavior for account filter field.
  - subscribers: [Codeunit 2621 "Stat. Acc. Analysis View Mgt."](../codeunit/2621.md) HandleOnLookupAccountFilter, [Codeunit 6239 "Sust. Acc. Analysis View Mgt."](../codeunit/6239.md) HandleOnLookupAccountFilter
- `OnGetAnalysisViewSupported(var AnalysisView: Record "Analysis View"; var IsSupported: Boolean)` (integration): Integration event for determining if an Analysis View is supported by custom implementations. Enables extensibility for additional analysis view types beyond standard G/L and Cash Flow.
  - subscribers: [Codeunit 2621 "Stat. Acc. Analysis View Mgt."](../codeunit/2621.md) HandleOnGetAnalysisViewSupported, [Codeunit 6239 "Sust. Acc. Analysis View Mgt."](../codeunit/6239.md) HandleOnGetAnalysisViewSupported

## Procedures

- `AnalysisViewReset()`: Resets the analysis view by clearing all analysis view entries and resetting tracking fields.
- `CheckDimensionIsTracked(DimensionCode: Code[20]): Boolean`: Checks if a specified dimension code is tracked by any of the four dimension code fields in the analysis view.
- `CheckDimensionsAreRetained(ObjectType: Integer; ObjectID: Integer; OnlyIfIncludeBudgets: Boolean)`: Validates that required dimensions are retained for specified objects in analysis views.
- `CheckViewsAreUpdated()`: Checks if all analysis views are updated with the latest transaction data and prompts for update if needed.
- `UpdateAllAnalysisViews(ShowWindow: Boolean)`: Updates all analysis views in the system, optionally showing a progress window.
- `UpdateLastEntryNo()`: Updates the last entry number for all non-blocked analysis views to the latest G/L entry number.
- `ValidateDelete(FieldName: Text)`: Validates that the user confirms deletion of analysis view data when modifying configuration fields.
- `AnalysisViewBudgetReset()`: Resets the analysis view budget entries by deleting all budget entries and resetting the last budget entry number.
- `ValidateModify(FieldName: Text)`: Validates that the user confirms modification of analysis view data when changing configuration fields.
- `CopyAnalysisViewFilters(ObjectType: Integer; ObjectID: Integer; AnalysisViewCode: Code[10])`: Copies analysis view dimension filters to selected dimensions for a specified object.
- `CheckIfLastEntryOrDateIsSet(): Boolean`: Checks if the analysis view has been configured with last entry tracking or last date updated.
- `SetUpdateOnPosting(NewUpdateOnPosting: Boolean)`: Sets the Update on Posting field for all analysis views to the specified value.
- `SetSkipConfirmationDialogue()`: Sets a flag to skip confirmation dialogues during analysis view operations.
- `RunAnalysisByDimensionPage()`: Opens the Analysis by Dimensions page for the current analysis view.
- `ShowResetNeededNotification()`: Shows a notification to the user indicating that the analysis view needs to be reset.

Plus 6 local procedures.

## Triggers

OnDelete

## Relations

- lookup page [Page 556 "Analysis View List"](../page/556.md)
- Account Filter: TableRelation [Table 15 "G/L Account"](../table/15.md) (conditional)
- Business Unit Filter: TableRelation [Table 220 "Business Unit"](../table/220.md)
- Dimension 1 Code: TableRelation [Table 348 "Dimension"](../table/348.md)
- Dimension 2 Code: TableRelation [Table 348 "Dimension"](../table/348.md)
- Dimension 3 Code: TableRelation [Table 348 "Dimension"](../table/348.md)
- Dimension 4 Code: TableRelation [Table 348 "Dimension"](../table/348.md)
- Account Filter: TableRelation [Table 841 "Cash Flow Account"](../table/841.md) (conditional)

## Referenced by

11 fields in 11 objects relate to this table (TableRelation or CalcFormula).

- [Table 333 "Column Layout Name"](../table/333.md): Analysis View Name
- [Table 361 "Analysis by Dim. Parameters"](../table/361.md): Analysis View Code
- [Table 364 "Analysis View Filter"](../table/364.md): Analysis View Code
- [Table 365 "Analysis View Entry"](../table/365.md): Analysis View Code
- [Table 366 "Analysis View Budget Entry"](../table/366.md): Analysis View Code
- [Table 369 "Selected Dimension"](../table/369.md): Analysis View Code
- [Table 376 "G/L Account (Analysis View)"](../table/376.md): Analysis View Filter
- [Table 6225 "Sust. Account (Analysis View)"](../table/6225.md): Analysis View Filter
- [Table 727 "Analysis by Dim. User Param."](../table/727.md): Analysis View Code
- [Table 8363 "Dimension Perspective Name"](../table/8363.md): Analysis View Name
- [Table 84 "Acc. Schedule Name"](../table/84.md): Analysis View Name

## Pages and codeunits on this table

- [Page 555 "Analysis View Card"](../page/555.md) (source table)
- [Page 556 "Analysis View List"](../page/556.md) (source table)
- [Codeunit 410 "Update Analysis View"](../codeunit/410.md) (codeunit runs on it)

## Extended by

- [Table extension 2625 "StatAccAnalysisView"](../tableextension/2625.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 410 "Update Analysis View"](../codeunit/410.md) (3 calls: `CheckViewsAreUpdated → Update`, `SetUpdateOnPosting → (object)`, `UpdateAllAnalysisViews → Update`)
- [Codeunit 27 "Confirm Management"](../codeunit/27.md) (2 calls: `CheckViewsAreUpdated → GetResponseOrDefault`, `ClearDimTotalingLines → GetResponseOrDefault`)
- [Page 554 "Analysis by Dimensions"](../page/554.md) (1 call: `RunAnalysisByDimensionPage → (object)`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24, BC29

## Countries that replace it

[ES](../../localizations/es.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: "table", object_name: "Analysis View")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
