Table 374 G/L Acc. Budget Buffer
- App
- Base Application
- Namespace
- Microsoft.Finance.Analysis
- Versions
- 17-28
Fields, 14Keys, 1Procedures, 1
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Finance/Analysis/GLAccBudgetBuffer.Table.al236 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace Microsoft.Finance.Analysis;
using Microsoft.Finance.Consolidation;
using Microsoft.Finance.Dimension;
using Microsoft.Finance.GeneralLedger.Account;
using Microsoft.Finance.GeneralLedger.Budget;
/// <summary>
/// Temporary buffer table for G/L account budget analysis and reporting operations.
/// Provides structured data storage for budget calculations with dimensional filtering capabilities.
/// </summary>
/// <remarks>
/// Used by budget analysis pages and reports for temporary data processing.
/// Supports multi-dimensional budget filtering and aggregation operations.
/// Integrates with G/L Budget Entry data and dimension filtering.
/// </remarks>
table 374 "G/L Acc. Budget Buffer"
{
Caption = 'G/L Acc. Budget Buffer';
DataCaptionFields = "Code";
DrillDownPageID = "Chart of Accounts";
LookupPageID = "G/L Account List";
ReplicateData = false;
DataClassification = CustomerContent;
fields
{
/// <summary>
/// G/L account code or dimension value code used for budget analysis grouping.
/// </summary>
field(1; "Code"; Code[20])
{
Caption = 'Code';
DataClassification = SystemMetadata;
NotBlank = true;
}
/// <summary>
/// Filter for specific budget name to limit budget data analysis scope.
/// </summary>
field(3; "Budget Filter"; Code[10])
{
Caption = 'Budget Filter';
FieldClass = FlowFilter;
TableRelation = "G/L Budget Name";
}
/// <summary>
/// Filter for specific G/L account or account range in budget analysis.
/// </summary>
field(4; "G/L Account Filter"; Code[20])
{
Caption = 'G/L Account Filter';
FieldClass = FlowFilter;
TableRelation = "G/L Account";
ValidateTableRelation = false;
}
/// <summary>
/// Filter for specific business unit or business unit range in budget analysis.
/// </summary>
field(5; "Business Unit Filter"; Code[20])
{
Caption = 'Business Unit Filter';
FieldClass = FlowFilter;
TableRelation = "Business Unit";
}
/// <summary>
/// Filter for specific global dimension 1 values in budget analysis.
/// </summary>
field(6; "Global Dimension 1 Filter"; Code[20])
{
CaptionClass = '1,3,1';
Caption = 'Global Dimension 1 Filter';
FieldClass = FlowFilter;
TableRelation = "Dimension Value".Code where("Global Dimension No." = const(1));
}
/// <summary>
/// Filter for specific global dimension 2 values in budget analysis.
/// </summary>
field(7; "Global Dimension 2 Filter"; Code[20])
{
CaptionClass = '1,3,2';
Caption = 'Global Dimension 2 Filter';
FieldClass = FlowFilter;
TableRelation = "Dimension Value".Code where("Global Dimension No." = const(2));
}
/// <summary>
/// Filter for specific budget dimension 1 values in budget analysis.
/// </summary>
field(8; "Budget Dimension 1 Filter"; Code[20])
{
CaptionClass = GetCaptionClass(1);
Caption = 'Budget Dimension 1 Filter';
FieldClass = FlowFilter;
}
/// <summary>
/// Filter for specific budget dimension 2 values in budget analysis.
/// </summary>
field(9; "Budget Dimension 2 Filter"; Code[20])
{
CaptionClass = GetCaptionClass(2);
Caption = 'Budget Dimension 2 Filter';
FieldClass = FlowFilter;
}
/// <summary>
/// Filter for specific budget dimension 3 values in budget analysis.
/// </summary>
field(10; "Budget Dimension 3 Filter"; Code[20])
{
CaptionClass = GetCaptionClass(3);
Caption = 'Budget Dimension 3 Filter';
FieldClass = FlowFilter;
}
/// <summary>
/// Filter for specific budget dimension 4 values in budget analysis.
/// </summary>
field(11; "Budget Dimension 4 Filter"; Code[20])
{
CaptionClass = GetCaptionClass(4);
Caption = 'Budget Dimension 4 Filter';
FieldClass = FlowFilter;
}
/// <summary>
/// Filter for specific date or date range in budget analysis.
/// </summary>
field(12; "Date Filter"; Date)
{
Caption = 'Date Filter';
ClosingDates = true;
FieldClass = FlowFilter;
}
/// <summary>
/// Calculated budgeted amount from G/L Budget Entry based on applied filters.
/// </summary>
field(13; "Budgeted Amount"; Decimal)
{
AutoFormatExpression = '';
AutoFormatType = 1;
CalcFormula = sum("G/L Budget Entry".Amount where("Budget Name" = field("Budget Filter"),
"G/L Account No." = field("G/L Account Filter"),
"Business Unit Code" = field("Business Unit Filter"),
"Global Dimension 1 Code" = field("Global Dimension 1 Filter"),
"Global Dimension 2 Code" = field("Global Dimension 2 Filter"),
"Budget Dimension 1 Code" = field("Budget Dimension 1 Filter"),
"Budget Dimension 2 Code" = field("Budget Dimension 2 Filter"),
"Budget Dimension 3 Code" = field("Budget Dimension 3 Filter"),
"Budget Dimension 4 Code" = field("Budget Dimension 4 Filter"),
Date = field("Date Filter")));
Caption = 'Budgeted Amount';
FieldClass = FlowField;
}
/// <summary>
/// Income or balance classification of the associated G/L account.
/// </summary>
field(14; "Income/Balance"; Enum "G/L Account Income/Balance")
{
Caption = 'Income/Balance';
DataClassification = SystemMetadata;
}
/// <summary>
/// Account category classification of the associated G/L account.
/// </summary>
field(15; "Account Category"; Enum "G/L Account Category")
{
Caption = 'Account Category';
DataClassification = SystemMetadata;
}
}
keys
{
key(Key1; "Code")
{
Clustered = true;
}
}
fieldgroups
{
}
var
GLBudgetName: Record "G/L Budget Name";
#pragma warning disable AA0074
Text000: Label '1,6,,Budget Dimension 1 Filter';
Text001: Label '1,6,,Budget Dimension 2 Filter';
Text002: Label '1,6,,Budget Dimension 3 Filter';
Text003: Label '1,6,,Budget Dimension 4 Filter';
#pragma warning restore AA0074
/// <summary>
/// Retrieves caption class text for budget dimension filter fields based on budget dimension configuration.
/// Returns appropriate caption class string for dynamic dimension field captioning.
/// </summary>
/// <param name="BudgetDimType">Budget dimension type number (1-4) to get caption class for</param>
/// <returns>Caption class text for the specified budget dimension type</returns>
procedure GetCaptionClass(BudgetDimType: Integer): Text[250]
begin
if GLBudgetName.Name <> GetFilter("Budget Filter") then
GLBudgetName.Get(GetFilter("Budget Filter"));
case BudgetDimType of
1:
begin
if GLBudgetName."Budget Dimension 1 Code" <> '' then
exit('1,6,' + GLBudgetName."Budget Dimension 1 Code");
exit(Text000);
end;
2:
begin
if GLBudgetName."Budget Dimension 2 Code" <> '' then
exit('1,6,' + GLBudgetName."Budget Dimension 2 Code");
exit(Text001);
end;
3:
begin
if GLBudgetName."Budget Dimension 3 Code" <> '' then
exit('1,6,' + GLBudgetName."Budget Dimension 3 Code");
exit(Text002);
end;
4:
begin
if GLBudgetName."Budget Dimension 4 Code" <> '' then
exit('1,6,' + GLBudgetName."Budget Dimension 4 Code");
exit(Text003);
end;
end;
end;
}