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 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.