Page 1998 Guided Experience Item Cleanup in 24
- App
- System Application
- Namespace
- System.Environment.Configuration
- Source table
- 1990
Versions171819202122232425262728latest
Source in 24
src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperienceItemCleanup.Page.al122 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 System.Environment.Configuration;
page 1998 "Guided Experience Item Cleanup"
{
ApplicationArea = All;
Caption = 'Duplicated Guided Experience Item Cleanup';
SourceTableTemporary = true;
SourceTable = "Guided Experience Item";
Editable = false;
InsertAllowed = false;
DeleteAllowed = false;
ModifyAllowed = false;
DataCaptionExpression = '';
layout
{
area(Content)
{
label(PageInformation)
{
Caption = 'This page provides an overview of duplicated guided experience items. You can either delete individual items or schedule a daily job queue to clean up all duplicated items.';
}
repeater(DuplicatedGuidedExperienceItem)
{
field(Code; Rec.Code)
{
ToolTip = 'Specifies the code of the Guided Experience Item.';
}
field(Count; GetNumberOfDuplicatedItems(Rec.Code))
{
Caption = 'Number of Records';
ToolTip = 'Specifies the number of Guided Experience Items with the same code.';
}
}
}
}
actions
{
area(Promoted)
{
actionref(LoadDuplicatedItems_Promoted; LoadDuplicatedItems)
{
}
actionref(Cleanup_Promoted; Delete)
{
}
}
area(Processing)
{
action(Delete)
{
ApplicationArea = All;
Caption = 'Delete Duplicates';
ToolTip = 'Delete duplicated records for the selected Guided Experience Item.';
Image = Delete;
trigger OnAction()
var
TempGuidedExperienceItem: Record "Guided Experience Item" temporary;
GuidedExperienceItemCleanup: Codeunit "Guided Experience Item Cleanup";
SelectedGuidedExperienceItemCode: Code[300];
begin
CurrPage.SetSelectionFilter(TempGuidedExperienceItem);
SelectedGuidedExperienceItemCode := CopyStr(TempGuidedExperienceItem.GetFilter(Code), 1, 300);
if SelectedGuidedExperienceItemCode = '' then
Error(MoreThanOneSelectionErr);
if Dialog.Confirm(LongRunningOperationQst, false) then
GuidedExperienceItemCleanup.DeleteDuplicatedGuidedExperienceItems(SelectedGuidedExperienceItemCode);
end;
}
action(LoadDuplicatedItems)
{
ApplicationArea = All;
Caption = 'Load or Refresh Duplicated Items';
ToolTip = 'Load or Refresh duplicated Guided Experience Items.';
Image = Refresh;
trigger OnAction()
begin
LoadDuplicatedGuidedExperienceItems();
end;
}
}
}
var
LongRunningOperationQst: Label 'This operation may take a long time to execute, are you sure you want to proceed?';
MoreThanOneSelectionErr: Label 'Only one Guided Experience Item can be selected at a time.';
local procedure GetNumberOfDuplicatedItems(ItemCode: Code[300]): Integer
var
GuidedExperienceItem: Record "Guided Experience Item";
begin
GuidedExperienceItem.SetLoadFields(Code, Version);
GuidedExperienceItem.SetRange(Code, ItemCode);
exit(GuidedExperienceItem.Count());
end;
local procedure LoadDuplicatedGuidedExperienceItems()
var
TempGuidedExperienceItem: Record "Guided Experience Item" temporary;
GuidedExperienceImpl: Codeunit "Guided Experience Item Cleanup";
begin
Rec.DeleteAll();
GuidedExperienceImpl.GetDuplicatedGuidedExperienceItems(TempGuidedExperienceItem, 100);
if TempGuidedExperienceItem.IsEmpty() then
exit;
Rec.Copy(TempGuidedExperienceItem, true);
if Rec.FindFirst() then; // set focus on the first row
CurrPage.Update();
end;
}