Table 403 Change Log Setup (Table), source in 29
Source29
src/Layers/W1/BaseApp/System/ChangeLog/ChangeLogSetupTable.Table.al132 lines, Copyright (c) Microsoft Corporation. MIT
namespace System.Diagnostics;
using System.Reflection;
using System.Utilities;
table 403 "Change Log Setup (Table)"
{
Caption = 'Change Log Setup (Table)';
ReplicateData = false;
DataClassification = CustomerContent;
fields
{
field(1; "Table No."; Integer)
{
Caption = 'Table No.';
TableRelation = AllObjWithCaption."Object ID" where("Object Type" = const(Table));
}
field(2; "Table Caption"; Text[250])
{
CalcFormula = lookup(AllObjWithCaption."Object Caption" where("Object Type" = const(Table),
"Object ID" = field("Table No.")));
Caption = 'Table Caption';
FieldClass = FlowField;
}
field(3; "Log Insertion"; Option)
{
Caption = 'Log Insertion';
OptionCaption = ' ,Some Fields,All Fields';
OptionMembers = " ","Some Fields","All Fields";
trigger OnValidate()
var
ConfirmManagement: Codeunit "Confirm Management";
begin
if (xRec."Log Insertion" = xRec."Log Insertion"::"Some Fields") and (xRec."Log Insertion" <> "Log Insertion") then
if ConfirmManagement.GetResponseOrDefault(
StrSubstNo(
RemoveFieldSelectionQst, xRec.FieldCaption("Log Insertion"), xRec."Log Insertion"), true)
then
DelChangeLogFields(0);
end;
}
field(4; "Log Modification"; Option)
{
Caption = 'Log Modification';
OptionCaption = ' ,Some Fields,All Fields';
OptionMembers = " ","Some Fields","All Fields";
trigger OnValidate()
var
ConfirmManagement: Codeunit "Confirm Management";
begin
if (xRec."Log Modification" = xRec."Log Modification"::"Some Fields") and (xRec."Log Modification" <> "Log Modification") then
if ConfirmManagement.GetResponseOrDefault(
StrSubstNo(
RemoveFieldSelectionQst, xRec.FieldCaption("Log Modification"), xRec."Log Modification"), true)
then
DelChangeLogFields(1);
end;
}
field(5; "Log Deletion"; Option)
{
Caption = 'Log Deletion';
OptionCaption = ' ,Some Fields,All Fields';
OptionMembers = " ","Some Fields","All Fields";
trigger OnValidate()
var
ConfirmManagement: Codeunit "Confirm Management";
begin
if (xRec."Log Deletion" = xRec."Log Deletion"::"Some Fields") and (xRec."Log Deletion" <> "Log Deletion") then
if ConfirmManagement.GetResponseOrDefault(
StrSubstNo(
RemoveFieldSelectionQst, xRec.FieldCaption("Log Deletion"), xRec."Log Deletion"),
true)
then
DelChangeLogFields(2);
end;
}
field(6; "Monitor Sensitive Field"; Boolean)
{
DataClassification = SystemMetadata;
}
}
keys
{
key(Key1; "Table No.")
{
Clustered = true;
}
}
fieldgroups
{
}
var
RemoveFieldSelectionQst: Label 'You have changed the %1 field to no longer be %2. Do you want to remove the field selections?', Comment = '%1: Field caption, %2: The selected log action. Example: You have changed the Log Modification field to no longer be Some Fields';
procedure DelChangeLogFields(InsModDel: Integer)
var
ChangeLogSetupField: Record "Change Log Setup (Field)";
begin
ChangeLogSetupField.SetRange("Table No.", "Table No.");
case InsModDel of
0:
ChangeLogSetupField.SetRange("Log Insertion", true);
1:
ChangeLogSetupField.SetRange("Log Modification", true);
2:
ChangeLogSetupField.SetRange("Log Deletion", true);
end;
if ChangeLogSetupField.Find('-') then
repeat
case InsModDel of
0:
ChangeLogSetupField."Log Insertion" := false;
1:
ChangeLogSetupField."Log Modification" := false;
2:
ChangeLogSetupField."Log Deletion" := false;
end;
if ChangeLogSetupField."Log Insertion" or ChangeLogSetupField."Log Modification" or ChangeLogSetupField."Log Deletion" then
ChangeLogSetupField.Modify()
else
ChangeLogSetupField.Delete();
until ChangeLogSetupField.Next() = 0;
end;
}