As you aware that with new version of business central comes up breaking changes which actually change the way of writing few points like assisted setup and many more.
Today we will see how to create assisted setup in wave 2 with new events. In this document have created one of the most simple assisted setup.
Step 1 :- Create New table
table 50100 "SetupTable"
{
DataClassification = CustomerContent;
fields
{
field(1; GroupCode; Code[10])
{
DataClassification = CustomerContent;
}
Field(2; "Group Description"; text[100])
{
DataClassification = CustomerContent;
}
}
keys
{
key(PK1; GroupCode)
{
Clustered = true;
}
}
}
2. Create New page
page 50100 "SetupPage"
{
PageType = ListPart;
SourceTable = SetupTable;
layout
{
area(content)
{
repeater(SetupGroup)
{
field(GroupCode; GroupCode)
{
ApplicationArea = All;
ToolTip = 'Select the specified group code';
}
field("Group Description"; "Group Description")
{
ApplicationArea = All;
ToolTip = 'Specifies a description.';
}
}
}
}
}
Step 3 :- Now use new assisted setup module to create assisted setup as below
codeunit 50100 "SetupTableAssistedSetup"
{
var
AssistedSetup: Codeunit "Assisted Setup";
AssistedSetupGroup: Enum "Assisted Setup Group";
CurrentGlobalLanguage: Integer;
SetupWizardTxt: Label 'Set up Table';
SetupWizardLinkTxt: Label 'https://google.com', Locked = true;
AlreadySetUpQst: Label 'Setup is already set up. To change settings for it, go to the setup again.Do you want go there now ?';
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Assisted Setup", 'OnRegister', '', false, false)]
local procedure SetupInitialize()
begin
CurrentGlobalLanguage := GlobalLanguage();
AssistedSetup.Add(GetAppId(), PAGE::SetupPage, SetupWizardTxt, AssistedSetupGroup::Extensions, '', SetupWizardLinkTxt);
GLOBALLANGUAGE(1033);
AssistedSetup.AddTranslation(GetAppId(), PAGE::SetupPage, 1033, SetupWizardTxt);
GLOBALLANGUAGE(CurrentGlobalLanguage);
GetInformationSetupStatus();
end;
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Assisted Setup", 'OnReRunOfCompletedSetup', '', false, false)]
local procedure OnReRunOfCompletedSetup(ExtensionId: Guid; PageID: Integer; var Handled: Boolean)
begin
if ExtensionId <> GetAppId() then
exit;
case PageID of
Page::"Assisted Company Setup Wizard":
begin
if Confirm(AlreadySetUpQst, true) then
Page.Run(PAGE::SetupPage);
Handled := true;
end;
end;
end;
local procedure GetAppId(): Guid
var
Info: ModuleInfo;
EmptyGuid: Guid;
begin
if Info.Id() = EmptyGuid then
NavApp.GetCurrentModuleInfo(Info);
exit(Info.Id());
end;
local procedure GetInformationSetupStatus()
var
SetupTab: Record SetupTable;
begin
SetupTab.SetFilter(GroupCode, '<>%1', '');
If SetupTab.IsEmpty() then
exit;
AssistedSetup.Complete(GetAppId(), Page::SetupPage);
end;
}
Publish the extension and you will see following result.
Hope this will help you….
Thank you very much for this!
LikeLike
Welcome
LikeLike
Welcome
LikeLike