Table 595 Exch. Rate Adjmt. Buffer
- App
- Base Application
- Namespace
- Microsoft.Finance.Currency
- Versions
- 20-28
Fields, 14Keys, 2Procedures, 1Events, 1
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/Finance/Currency/ExchRateAdjmtBuffer.Table.al184 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.Currency;
/// <summary>
/// Temporary buffer table for storing calculated exchange rate adjustment amounts.
/// Groups adjustment data by currency, posting group, and dimensions for processing.
/// </summary>
/// <remarks>
/// Used during exchange rate adjustment procedures to accumulate and calculate
/// adjustment amounts before creating journal entries. Supports grouping by various criteria
/// and includes integration events for extensibility.
/// </remarks>
table 595 "Exch. Rate Adjmt. Buffer"
{
Caption = 'Exch. Rate Adjmt. Buffer';
TableType = Temporary;
DataClassification = CustomerContent;
fields
{
/// <summary>
/// Unique identifier for grouping related adjustment records.
/// </summary>
field(1; "Group ID"; Guid)
{
Caption = 'Group ID';
DataClassification = SystemMetadata;
}
/// <summary>
/// Currency code for the adjustment calculation.
/// </summary>
field(2; "Currency Code"; Code[10])
{
Caption = 'Currency Code';
DataClassification = SystemMetadata;
TableRelation = Currency;
}
/// <summary>
/// Posting group affecting the adjustment calculation.
/// </summary>
field(3; "Posting Group"; Code[20])
{
Caption = 'Posting Group';
DataClassification = SystemMetadata;
}
/// <summary>
/// Account number being adjusted for exchange rate changes.
/// </summary>
field(4; "Account No."; Code[20])
{
Caption = 'Account No.';
DataClassification = SystemMetadata;
}
/// <summary>
/// Dimension entry number for dimension-specific adjustments.
/// </summary>
field(5; "Dimension Entry No."; Integer)
{
Caption = 'Dimension Entry No.';
DataClassification = SystemMetadata;
}
/// <summary>
/// Posting date for the adjustment entries.
/// </summary>
field(6; "Posting Date"; Date)
{
Caption = 'Posting Date';
DataClassification = SystemMetadata;
}
/// <summary>
/// Intercompany partner code for IC transactions.
/// </summary>
field(7; "IC Partner Code"; Code[20])
{
Caption = 'IC Partner Code';
DataClassification = SystemMetadata;
}
/// <summary>
/// Index number for sorting and processing order.
/// </summary>
field(8; Index; Integer)
{
Caption = 'Index';
DataClassification = SystemMetadata;
}
/// <summary>
/// Entry number for reference tracking.
/// </summary>
field(9; "Entry No."; Integer)
{
Caption = 'Entry No.';
DataClassification = SystemMetadata;
}
/// <summary>
/// Base amount used for adjustment calculations.
/// </summary>
field(10; "Adjmt. Base"; Decimal)
{
AutoFormatExpression = Rec."Currency Code";
AutoFormatType = 1;
Caption = 'AdjBase';
DataClassification = SystemMetadata;
}
/// <summary>
/// Base amount in local currency for adjustment calculations.
/// </summary>
field(11; "Adjmt. Base (LCY)"; Decimal)
{
AutoFormatExpression = '';
AutoFormatType = 1;
Caption = 'Adjmt. Base (LCY)';
DataClassification = SystemMetadata;
}
/// <summary>
/// Total calculated adjustment amount.
/// </summary>
field(12; "Adjmt. Amount"; Decimal)
{
AutoFormatExpression = '';
AutoFormatType = 1;
Caption = 'Adjmt. Amount';
DataClassification = SystemMetadata;
}
/// <summary>
/// Positive adjustment amount representing gains.
/// </summary>
field(13; "Gains Amount"; Decimal)
{
AutoFormatExpression = '';
AutoFormatType = 1;
Caption = 'Gains Amount';
DataClassification = SystemMetadata;
}
/// <summary>
/// Negative adjustment amount representing losses.
/// </summary>
field(14; "Losses Amount"; Decimal)
{
AutoFormatExpression = '';
AutoFormatType = 1;
Caption = 'Losses Amount';
DataClassification = SystemMetadata;
}
}
keys
{
key(Key1; "Group ID")
{
Clustered = true;
}
key(Key2; "Currency Code", "Posting Group", "Account No.", "Dimension Entry No.", "Posting Date", "IC Partner Code")
{
}
}
fieldgroups
{
}
/// <summary>
/// Generates a unique primary key for the buffer record.
/// </summary>
procedure BuildPrimaryKey()
begin
"Group ID" := CreateGuid();
OnAfterBuildPrimaryKey(Rec);
end;
/// <summary>
/// Integration event raised after building the primary key for the buffer record.
/// Enables custom logic to be executed after key generation.
/// </summary>
/// <param name="ExchRateAdjmtBuffer">Buffer record after primary key generation</param>
[IntegrationEvent(false, false)]
local procedure OnAfterBuildPrimaryKey(var ExchRateAdjmtBuffer: Record "Exch. Rate Adjmt. Buffer")
begin
end;
}