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