-
Notifications
You must be signed in to change notification settings - Fork 382
Expand file tree
/
Copy pathRemoveChangeLogEntries.Codeunit.al
More file actions
51 lines (44 loc) · 1.56 KB
/
Copy pathRemoveChangeLogEntries.Codeunit.al
File metadata and controls
51 lines (44 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
codeunit 50100 "BCTech_RemoveChangeLogEntries"
{
Permissions = tabledata "Change Log Entry" = rimd,
tabledata "Change Log Setup" = rimd;
trigger OnRun()
begin
RemoveChangeLogEntries();
end;
internal procedure RemoveChangeLogEntries()
var
ChangeLogEntry: Record "Change Log Entry";
ChangeLogSetup: Record "Change Log Setup";
ChangeLogFrom: BigInteger;
ChangeLogTo: BigInteger;
begin
if not ChangeLogSetup.Get() then
exit;
if ChangeLogSetup."Change Log Activated" then begin
ChangeLogSetup.Validate("Change Log Activated", false);
ChangeLogSetup.Modify(true);
Commit();
end;
ChangeLogEntry.Reset();
if not ChangeLogEntry.FindFirst() then
exit;
ChangeLogFrom := ChangeLogEntry."Entry No.";
ChangeLogTo := ChangeLogFrom + 100000;
if DeleteEntriesFromUntil(ChangeLogFrom, ChangeLogTo) then
TaskScheduler.CreateTask(Codeunit::"BCTech_RemoveChangeLogEntries", 0, true, CompanyName);
end;
local procedure DeleteEntriesFromUntil(ChangeLogFrom: BigInteger; ChangeLogTo: BigInteger): Boolean
var
ChangeLogEntry: Record "Change Log Entry";
begin
ChangeLogEntry.Reset();
ChangeLogEntry.SetRange("Entry No.", ChangeLogFrom, ChangeLogTo);
if not ChangeLogEntry.FindSet(true) then
exit;
ChangeLogEntry.DeleteAll(true);
Commit();
ChangeLogEntry.Reset();
exit(ChangeLogEntry.FindFirst());
end;
}