Page 592 Change Log Setup
- App
- Base Application
- Namespace
- System.Diagnostics
- Versions
- 17-28
- Source table
- 402
Versions171819202122232425262728
Source29
Source in 29
src/Layers/W1/BaseApp/System/ChangeLog/ChangeLogSetup.Page.al187 lines, Copyright (c) Microsoft Corporation. MIT
namespace System.Diagnostics;
using System.DataAdministration;
using System.Environment;
using System.Utilities;
page 592 "Change Log Setup"
{
ApplicationArea = Basic, Suite;
Caption = 'Change Log Setup';
DeleteAllowed = false;
InsertAllowed = false;
PageType = Card;
SourceTable = "Change Log Setup";
UsageCategory = Administration;
AboutTitle = 'About change log setup';
AboutText = 'Control how changes to business data are tracked. You can choose which tables and fields the system logs when users modify data. Tracking changes helps you find out what changed, who made the change, and when it happened, which is useful for audits and troubleshooting. Because logging changes can affect performance and increase database size, enable it only for the data that you need to monitor.';
layout
{
area(content)
{
group(General)
{
Caption = 'General';
grid(GeneralGrid)
{
group(GeneralColumn)
{
ShowCaption = false;
field("Change Log Activated"; Rec."Change Log Activated")
{
ApplicationArea = Basic, Suite;
ToolTip = 'Specifies that the change log is active.';
Caption = 'Change Log Activated';
trigger OnValidate()
begin
ConfirmActivationOfChangeLog();
ChangeLogSettingsUpdated := true;
end;
}
label(ChangeLogWarning)
{
ApplicationArea = Basic, Suite;
Caption = 'IMPORTANT';
Style = Strong;
}
label(ChangeLogWarningDescription)
{
ApplicationArea = Basic, Suite;
Caption = 'Tracking changes can impact performance, which can cost you time, and increase the size of your database, which might cost you money. To reduce those costs, consider the following:';
}
label(ChangeLogWarningDescPt1)
{
ApplicationArea = Basic, Suite;
Caption = '- Use caution when choosing the tables and operations.';
}
label(ChangeLogWarningDescPt2)
{
ApplicationArea = Basic, Suite;
Caption = '- Do not add ledger entries and posted documents. Instead, prioritize system fields such as Created By and Created Date.';
}
label(ChangeLogWarningDescPt3)
{
ApplicationArea = Basic, Suite;
Caption = '- Do not use the All Fields tracking type. Instead, choose Some Fields and track only the most important fields.';
}
}
}
}
}
area(factboxes)
{
systempart(Control1900383207; Links)
{
ApplicationArea = RecordLinks;
Visible = false;
}
systempart(Control1905767507; Notes)
{
ApplicationArea = Notes;
Visible = false;
}
}
}
actions
{
area(processing)
{
group("&Setup")
{
Caption = '&Setup';
Image = Setup;
action(Tables)
{
ApplicationArea = Basic, Suite;
Caption = 'Tables';
Image = "Table";
ToolTip = 'View what must be logged for each table.';
trigger OnAction()
var
ChangeLogSetupList: Page "Change Log Setup (Table) List";
begin
ChangeLogSetupList.SetSource();
ChangeLogSetupList.RunModal();
ChangeLogSettingsUpdated := ChangeLogSetupList.IsChangeLogSettingsUpdated();
end;
}
action(RetentionPolicy)
{
ApplicationArea = All;
Caption = 'Retention Policy';
Tooltip = 'View or Edit the retention policy.';
Image = Delete;
RunObject = Page "Retention Policy Setup Card";
RunPageLink = "Table Id" = filter(405); // Database::"Change Log Entry";
AccessByPermission = tabledata "Retention Policy Setup" = R;
RunPageMode = View;
Ellipsis = true;
}
}
}
area(Promoted)
{
group(Category_Report)
{
Caption = 'Report', Comment = 'Generated from the PromotedActionCategories property index 2.';
}
group(Category_Category4)
{
Caption = 'Setup', Comment = 'Generated from the PromotedActionCategories property index 3.';
actionref(Tables_Promoted; Tables)
{
}
}
}
}
trigger OnOpenPage()
begin
Rec.Reset();
if not Rec.Get() then begin
Rec.Init();
Rec.Insert();
end;
end;
trigger OnClosePage()
begin
if ChangeLogSettingsUpdated then
if Confirm(RestartSessionQst) then
RestartSession();
end;
var
ActivateChangeLogQst: Label 'Turning on the Change Log might slow things down, especially if you are monitoring entities that often change. Do you want to log changes?';
RestartSessionQst: Label 'Changes are displayed on the Change Log Entries page after the user''s session has restarted. Do you want to restart the session now?';
ChangeLogSettingsUpdated: Boolean;
local procedure ConfirmActivationOfChangeLog()
var
EnvironmentInfo: Codeunit "Environment Information";
ConfirmManagement: Codeunit "Confirm Management";
begin
if not Rec."Change Log Activated" then
exit;
if not EnvironmentInfo.IsSaaS() then
exit;
if not ConfirmManagement.GetResponseOrDefault(ActivateChangeLogQst, true) then
Error('');
end;
local procedure RestartSession()
var
SessionSetting: SessionSettings;
begin
SessionSetting.Init();
SessionSetting.RequestSessionUpdate(false);
end;
}