Codeunit 5505377 M365 App Setup Management
Codeunit 5505377 M365 App Setup Management
Codeunit M365 App Setup Management (ID 5505377). Management codeunit to handle app setup.
Methods
CheckUpgradeMinimumVersion
procedure CheckUpgradeMinimumVersion(appInfo: ModuleInfo; minVersion: Version; raiseError: Boolean): Boolean
Checks against a passed minimum version of the app usually used in an upgrade codeunit. In case the actual data version is less than the passed minimum version, the procedure returns false, true otherwise. If raiseError is true, an error is shown instead.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension from where this procedure is called.
minVersion
VersionThe requested minimum version to test against.
raiseError
BooleanRaise an error instead of returning a boolean.
Returns
BooleanTrue if the requested minimum version is met, false or error otherwise.
RegisterAppPrefix
procedure RegisterAppPrefix(appInfo: ModuleInfo; appPrefix: Code[15]): Boolean
Used to register an application prefix (like FND for the Foundation) to the setup management. The value is stored within the Isolated Storage and can be read afterwards.
The so called App Prefix is used as the Configuration Data Code in the generic assisted setup.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension from where this procedure is called.
appPrefix
Code[15]The internally registered prefix of type Code[15].
Returns
BooleanTrue if the value could be stored, false otherwise.
GetAppPrefix
procedure GetAppPrefix(appInfo: ModuleInfo; appPrefix: Code[15]): Code[15]
Returns the stored App Prefix for the passed appInfo. If the appPrefix is filled, then this value is returned.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension from where this procedure is called.
appPrefix
Code[15]The internally registered prefix of type Code[15].
Returns
Code[15]The stored app prefix for the specified app or the passed default appPrefix.
GetAppPrefix
procedure GetAppPrefix(appInfo: ModuleInfo): Code[15]
Returns the stored App Prefix for the passed appInfo.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension from where this procedure is called.
Returns
Code[15]The stored app prefix for the specified app or an empty string.
GetAppPrefix
procedure GetAppPrefix(appId: Guid; appPrefix: Code[15]): Code[15]
Returns the stored App Prefix for the passed app Guid. If the appPrefix is filled, then this value is returned.
Parameters / Return Value
appId
GuidThe app Guid of the extension from where this procedure is called.
appPrefix
Code[15]The internally registered prefix of type Code[15].
Returns
Code[15]The stored app prefix for the specified app or the passed default appPrefix.
GetAppPrefix
procedure GetAppPrefix(appId: Guid): Code[15]
Returns the stored App Prefix for the passed app Guid.
Parameters / Return Value
appId
GuidThe app Guid of the extension from where this procedure is called.
Returns
Code[15]The stored app prefix for the specified app or an empty string.
CompleteAssistedSetup
procedure CompleteAssistedSetup(appId: Guid; packageCode: Code[20])
Sets the status of the assisted setup to Complete.
This is typically called from inside the assisted setup guide when the setup is finished.
Parameters / Return Value
appId
GuidThe app Guid of the extension from where this procedure is called.
packageCode
Code[20]The code of the related Configuration Package, usually combined of the Data Configuration Code, a dash, and the Languiage ID.
CompleteAssistedSetup
procedure CompleteAssistedSetup(configurationCode: Code[15]; appId: Guid)
Sets the status of the assisted setup to Complete.
This is typically called from inside the assisted setup guide when the setup is finished.
Parameters / Return Value
configurationCode
Code[15]The code of the related Configuration Data/the internal App prefix.
appId
GuidThe app Guid of the extension from where this procedure is called.
IsAssistedSetupComplete
procedure IsAssistedSetupComplete(appId: Guid): Boolean
Checks whether a user has already completed the setup.
Parameters / Return Value
appId
GuidThe app Guid of the extension from where this procedure is called.
Returns
BooleanReturns true if the given setup guide has been completed by the user, otherwise false.
BuildPackageCode
procedure BuildPackageCode(configurationDataCode: Code[15]; languageId: Integer; mustExist: Boolean): Code[20]
Creates a (RapidStart) Package Code from a Configuration Data Code/App Prefix and a Language ID. If mustExist is true, the function raises an error if the Configuration Package is not found.
Parameters / Return Value
configurationDataCode
Code[15]Configuration Data Code/App Prefix.
languageId
IntegerLanguage ID.
mustExist
BooleanIf true, raises an error if the Configuration Package is not found.
Returns
Code[20]Returns the built Configuration Package Code.
HasConfigurationPackage
procedure HasConfigurationPackage(packageCode: Code[20]): Boolean
Checks whether a Configuration Package with the passed code exists.
Parameters / Return Value
packageCode
Code[20]A Configuration Package Code.
Returns
BooleanReturns true if the package is found, false otherwise.
ImportConfigurationPackage
procedure ImportConfigurationPackage(packageCode: Code[20]; force: Boolean; var packageTempBlob: Codeunit "Temp Blob"): Boolean
Import the specified Configuration Package from a “Temp Blob”.
Parameters / Return Value
packageCode
Code[20]A Configuration Package Code.
force
BooleanTrue allows to overwrite an existing package.
packageTempBlob
Codeunit "Temp Blob"The package content as “Temp Blob”.
Returns
BooleanReturns true if the package exists and force is not specified or if the package was successfully imported, false otherwise.
CleanupConfigurationData
procedure CleanupConfigurationData(appInfo: ModuleInfo): Boolean
Deletes existing Configuration Data records from the database.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension to which the data belongs.
Returns
BooleanReturns true if data has been deleted, false otherwise.
ImportConfigurationDataAsConfigurationPackage
procedure ImportConfigurationDataAsConfigurationPackage(appInfo: ModuleInfo; configurationDataCode: Code[15]; languageId: Integer; force: Boolean): Boolean
Imports Configuration Data for the specified app, Configuration Data Code/App Prefix, and language ID.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension to which the data belongs.
configurationDataCode
Code[15]A Configuration Data Code/App Prefix.
languageId
IntegerThe language ID.
force
BooleanIf true, an existing Configuration Package gets overwritten.
Returns
BooleanReturns true of the import was successful, false otherwise.
ImportConfigurationDataAsConfigurationPackage
procedure ImportConfigurationDataAsConfigurationPackage(appId: Guid; configurationDataCode: Code[15]; languageId: Integer; force: Boolean): Boolean
Imports Configuration Data for the specified app, Configuration Data Code/App Prefix, and language ID.
Parameters / Return Value
appId
GuidThe application ID of the extension to which the data belongs.
configurationDataCode
Code[15]A Configuration Data Code/App Prefix.
languageId
IntegerThe language ID.
force
BooleanIf true, an existing Configuration Package gets overwritten.
Returns
BooleanReturns true of the import was successful, false otherwise.
ImportConfigurationDataAsConfigurationPackage
procedure ImportConfigurationDataAsConfigurationPackage(appInfo: ModuleInfo; configurationDataCode: Code[15]; force: Boolean): Boolean
Imports Configuration Data for the specified app, Configuration Data Code/App Prefix, and the current users language ID.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension to which the data belongs.
configurationDataCode
Code[15]A Configuration Data Code/App Prefix.
force
BooleanIf true, an existing Configuration Package gets overwritten.
Returns
BooleanReturns true of the import was successful, false otherwise.
ImportConfigurationDataAsConfigurationPackage
procedure ImportConfigurationDataAsConfigurationPackage(appId: Guid; configurationDataCode: Code[15]; force: Boolean): Boolean
Imports Configuration Data for the specified app, Configuration Data Code/App Prefix, and the current users language ID.
Parameters / Return Value
appId
GuidThe application ID of the extension to which the data belongs.
configurationDataCode
Code[15]A Configuration Data Code/App Prefix.
force
BooleanIf true, an existing Configuration Package gets overwritten.
Returns
BooleanReturns true of the import was successful, false otherwise.
ImportLocalConfigurationPackage
procedure ImportLocalConfigurationPackage(var returnPackageTempBlob: Codeunit "Temp Blob"): Boolean
Import an uncompressed Configuration Package file into the passed “Temp Blob”.
Parameters / Return Value
returnPackageTempBlob
Codeunit "Temp Blob"The returned “Temp Blob” containing the package.
Returns
BooleanReturns true of the import was successful, false otherwise.
ImportLocalConfigurationPackage
procedure ImportLocalConfigurationPackage(packageCode: Code[20]): Boolean
Import a Configuration Package file into Configuration Packages using the specified Package Code.
Parameters / Return Value
packageCode
Code[20]The Package Code to use.
Returns
BooleanReturns true of the import was successful, false otherwise.
FilterConfigPackageTable
procedure FilterConfigPackageTable(packageCode: Code[20]; tableId: Integer; var configPackageTable: Record "Config. Package Table"): Boolean
Filters an instance of Config. Package Table using the passed arguments.
Parameters / Return Value
packageCode
Code[20]The Configuration Package Code.
tableId
IntegerThe Table ID.
configPackageTable
Record "Config. Package Table"Returned, filtered Config. Package Table record.
Returns
BooleanReturns true if a record is available, false otherwise.
ApplyConfigurationPackage
procedure ApplyConfigurationPackage(packageCode: Code[20]; tableId: Integer): Boolean
Applies the contained data of a Configuration Package to the specified table.
Parameters / Return Value
packageCode
Code[20]Configuration Package Code.
tableId
IntegerTable ID.
Returns
BooleanReturns true if no errors occured, false otherwise.
ApplyConfigurationPackage
procedure ApplyConfigurationPackage(packageCode: Code[20]): Boolean
Applies the contained data of a Configuration Package to the configured tables.
Parameters / Return Value
packageCode
Code[20]Configuration Package Code.
Returns
BooleanReturns true if no errors occured, false otherwise.
ApplyWizardStepConfiguration
procedure ApplyWizardStepConfiguration(packageCode: Code[20]): Boolean
Applies the contained data of a Configuration Package to the M365 App Setup Wizard Step table.
Parameters / Return Value
packageCode
Code[20]Configuration Package Code.
Returns
BooleanReturns true if no errors occured, false otherwise.
HasConfigurationPackageTable
procedure HasConfigurationPackageTable(packageCode: Code[20]; tableId: Integer): Boolean
Checks whether a Configuration Package with the specified table exists.
Parameters / Return Value
packageCode
Code[20]Configuration Package Code.
tableId
IntegerTable ID.
Returns
BooleanReturns true if the specified table exists in the Configuration Package, false otherwise.
ShowConfigurationPackageTableData
procedure ShowConfigurationPackageTableData(packageCode: Code[20]; tableId: Integer): Boolean
Opens the Configuration Package data viewer page for the specified package and table.
Parameters / Return Value
packageCode
Code[20]Configuration Package Code.
tableId
IntegerTable ID.
Returns
BooleanReturns true if the records were available and were shown, false otherwise.
RemoveConfigurationPackage
procedure RemoveConfigurationPackage(packageCode: Code[20])
Remove the specified Configuration Package from the database.
Parameters / Return Value
packageCode
Code[20]Configuration Package Code.
RunWizard
procedure RunWizard(appInfo: ModuleInfo; configurationDataCode: Code[15]; originalPageId: Variant)
This is a relic from the ancient times when there were dragons and magicians. When this function is executed, a portal to the data contained in the Extension is opened as if by magic and a fully automatic setup is started.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension to which the data belongs.
configurationDataCode
Code[15]A Configuration Data Code/App Prefix.
originalPageId
VariantThe Page ID of the original dummy Wizard page each app has to provide for this to work.
BuildUpgradeTag
procedure BuildUpgradeTag(appInfo: ModuleInfo; workItemId: Integer): Code[250]
Returns a string with a fixed pattern for UpgradeTags including App Prefix and Work Item Id in Capitals.
The returned string is App specific. So no issues when using the same Work Item Id accross apps.
Parameters / Return Value
appInfo
ModuleInfoModuleInfo. The module info for the app to build the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id. Use a negative number to specify a non existing Work Item.
Returns
Code[250]Return a text in format FND-WI-1234 or FND-INT-9876 for negative Work Item Ids.
BuildUpgradeTag
procedure BuildUpgradeTag(appId: Guid; workItemId: Integer): Code[250]
Returns a string with a fixed pattern for UpgradeTags including App Prefix and Work Item Id in Capitals.
The returned string is App specific. So no issues when using the same Work Item Id accross apps.
Parameters / Return Value
appId
GuidGuid. The AppId for the app to build the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id. Use a negative number to specify a non existing Work Item.
Returns
Code[250]Return a text in format FND-WI-1234 or FND-INT-9876 for negative Work Item Ids.
HasUpgradeTag
procedure HasUpgradeTag(appInfo: ModuleInfo; workItemId: Integer): Boolean
Verifies if the upgrade tag exists.
Parameters / Return Value
appInfo
ModuleInfoModuleInfo. The module info for the app to check the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to check for. Use a negative number to specify a non existing Work Item.
Returns
BooleanTrue if the Tag for the given Work Item Id exist, false otherwise.
HasUpgradeTag
procedure HasUpgradeTag(appId: Guid; workItemId: Integer): Boolean
Verifies if the upgrade tag exists.
Parameters / Return Value
appId
GuidGuid. The AppId for the app to check the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to check for. Use a negative number to specify a non existing Work Item.
Returns
BooleanTrue if the Tag for the given Work Item Id exist, false otherwise.
HasUpgradeTag
procedure HasUpgradeTag(appInfo: ModuleInfo; companyName: Text[30]; workItemId: Integer): Boolean
Verifies if the upgrade tag exists.
Parameters / Return Value
appInfo
ModuleInfoModuleInfo. The module info for the app to check the tag for.
companyName
Text[30]Text[30]. The company name to check the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to check for. Use a negative number to specify a non existing Work Item.
Returns
BooleanTrue if the Tag for the given Work Item Id exist, false otherwise.
HasUpgradeTag
procedure HasUpgradeTag(appId: Guid; companyName: Text[30]; workItemId: Integer): Boolean
Verifies if the upgrade tag exists.
Parameters / Return Value
appId
GuidGuid. The AppId for the app to check the tag for.
companyName
Text[30]Text[30]. The company name to check the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to check for. Use a negative number to specify a non existing Work Item.
Returns
BooleanTrue if the Tag for the given Work Item Id exist, false otherwise.
SetUpgradeTag
procedure SetUpgradeTag(appInfo: ModuleInfo; workItemId: Integer)
Sets a new upgrade tag based on a Work Item Id.
Parameters / Return Value
appInfo
ModuleInfoModuleInfo. The module info for the app to add the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to add the tag for. Use a negative number to specify a non existing Work Item.
SetUpgradeTag
procedure SetUpgradeTag(appId: Guid; workItemId: Integer)
Sets a new upgrade tag based on a Work Item Id.
Parameters / Return Value
appId
GuidGuid. The AppId for the app to add the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to add the tag for. Use a negative number to specify a non existing Work Item.
SetDatabaseUpgradeTag
procedure SetDatabaseUpgradeTag(appInfo: ModuleInfo; workItemId: Integer)
Sets a new upgrade tag based on a Work Item Id.
Parameters / Return Value
appInfo
ModuleInfoModuleInfo. The module info for the app to add the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to add the tag for. Use a negative number to specify a non existing Work Item.
SetDatabaseUpgradeTag
procedure SetDatabaseUpgradeTag(appId: Guid; workItemId: Integer)
Sets a new upgrade tag based on a Work Item Id.
Parameters / Return Value
appId
GuidGuid. The AppId for the app to add the tag for.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to add the tag for. Use a negative number to specify a non existing Work Item.
AddUpgradeTag
procedure AddUpgradeTag(appInfo: ModuleInfo; var upgradeTags: List of [Code[250]]; workItemId: Integer)
Adds a Work Item Id Upgrade Tag to the passed list.
Parameters / Return Value
appInfo
ModuleInfoModuleInfo. The module info for the app to add the tag for.
upgradeTags
List[Code]List of [Code[250]]. The List of Upgrade Tags to extend.
workItemId
IntegerInteger. The Azure DevOps Work Item Id to add the tag for. Use a negative number to specify a non existing Work Item.
BasePerCompanyInstallation
procedure BasePerCompanyInstallation(appInfo: ModuleInfo; appPrefix: Code[15]; freshInstall: Boolean)
Performs a base installation of an app, including app prefix and setting all upgrade tags. Should be called from InstallAppPerDatabase().
Parameters / Return Value
appInfo
ModuleInfoModuleInfo. The module info for the installed app.
appPrefix
Code[15]The internally registered prefix of type Code[15].
freshInstall
BooleanTrue indicates a fresh installation, app was never installed before.
Events
OnInitializeNotifications
local procedure OnInitializeNotifications(var myNotifications: Record "My Notifications")
This event is raised when the Page “My Notifications” is opened.
Parameters / Return Value
myNotifications
Record "My Notifications"A modifyable Record “My Notifications”.
OnAfterInitializingNotification
local procedure OnAfterInitializingNotification()
This event is raised after the “My Notifications” are initialized.
OnRegisterManualGuidedExperienceSetup
local procedure OnRegisterManualGuidedExperienceSetup(var guidedExperience: Codeunit "Guided Experience")
This event is raised whenever the manual setup entries are registered. Use the passed “Guided Experience” Codeunit to add entries.
Parameters / Return Value
guidedExperience
Codeunit "Guided Experience"Codeunit “Guided Experience”.
OnRegisterAssistedGuidedExperienceSetup
local procedure OnRegisterAssistedGuidedExperienceSetup(var guidedExperience: Codeunit "Guided Experience")
This event is raised whenever the assisted setup entries are registered. Use the passed “Guided Experience” Codeunit to add entries.
Parameters / Return Value
guidedExperience
Codeunit "Guided Experience"Codeunit “Guided Experience”.
OnReRunOfCompletedGuidedExperienceAssistedSetup
local procedure OnReRunOfCompletedGuidedExperienceAssistedSetup(appInfo: ModuleInfo; var guidedExperience: Codeunit "Guided Experience"; var isHandled: Boolean)
Notifies the user that a setup that was previously completed is being run again.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension to which the setup belongs.
guidedExperience
Codeunit "Guided Experience"A reference to the Codeunit “Guided Experience”.
isHandled
BooleanThe flag which if set, would stop executing the run of the assisted setup guide.
OnBeforeRunAssistedSetup
local procedure OnBeforeRunAssistedSetup(appInfo: ModuleInfo; var isHandled: Boolean; var objType: ObjectType; var objectId: Integer)
Notifies that the Assisted Setup/Role Based Setup Experience has been invoked.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension to which the setup belongs.
isHandled
BooleanThe flag which if set, would stop executing the OnBeforeRunAssistedSetup of the assisted setup guide.
objType
ObjectTypeThe object type to run when the user clicks the setup.
objectId
IntegerThe ID of the page to open when the user clicks the setup.
OnAfterRunAssistedSetup
local procedure OnAfterRunAssistedSetup(appInfo: ModuleInfo; objType: ObjectType; objectId: Integer)
Notifies that the run of the assisted setup has finished.
Parameters / Return Value
appInfo
ModuleInfoThe ModuleInfo of the extension to which the setup belongs.
objType
ObjectTypeThe object type to run when the user clicks the setup.
objectId
IntegerThe ID of the page to open when the user clicks the setup.
OnWizardBeforeLoadPackageData
procedure OnWizardBeforeLoadPackageData(var appSetupWizardStep: Record "M365 App Setup Wizard Step")
The OnWizardBeforeLoadPackageData event is called before the package data to display is loaded.
Parameters / Return Value
appSetupWizardStep
Record "M365 App Setup Wizard Step"var Record “M365 App Setup Wizard Step”.
OnWizardAfterLoadPackageData
procedure OnWizardAfterLoadPackageData(var appSetupWizardStep: Record "M365 App Setup Wizard Step"; var matrixColumnCaptions: array[100] of Text[100])
The OnWizardAfterLoadPackageData event is called, after the package data to display is loaded.
Parameters / Return Value
appSetupWizardStep
Record "M365 App Setup Wizard Step"var Record “M365 App Setup Wizard Step”.
matrixColumnCaptions
Text[100]var array[100] of Text[100].
OnWizardBeforeTransferPackageDataToSetupFields
procedure OnWizardBeforeTransferPackageDataToSetupFields(var appSetupWizardStep: Record "M365 App Setup Wizard Step")
The OnWizardBeforeTransferPackageDataToSetupFields event is called, before package data is transferred to setup fields.
Parameters / Return Value
appSetupWizardStep
Record "M365 App Setup Wizard Step"var Record “M365 App Setup Wizard Step”.
OnWizardAfterTransferPackageDataToSetupFields
procedure OnWizardAfterTransferPackageDataToSetupFields(var appSetupWizardStep: Record "M365 App Setup Wizard Step"; var setupFields: JsonArray; var fieldValues: array[10] of Text)
The OnWizardAfterTransferPackageDataToSetupFields event is called, after package data is transferred to setup fields.
Parameters / Return Value
appSetupWizardStep
Record "M365 App Setup Wizard Step"var Record “M365 App Setup Wizard Step”.
setupFields
JsonArrayvar JsonArray.
fieldValues
Text[]var array[10] of Text.
OnAfterTransferSetupFieldsToPackageData
procedure OnAfterTransferSetupFieldsToPackageData(packageCode: Code[20]; tableId: Integer; firstRecordOnly: Boolean; var setupFields: JsonArray; var fieldValues: array[10] of Text)
The OnAfterTransferSetupFieldsToPackageData event is called, after the setup fields are transferred to package data.
Parameters / Return Value
packageCode
Code[20]Code[20].
tableId
IntegerInteger.
firstRecordOnly
BooleanBoolean.
setupFields
JsonArrayvar JsonArray.
fieldValues
Text[]var array[10] of Text.
OnAfterChangeStep
procedure OnAfterChangeStep(appId: Guid; step: Integer; var appSetupWizardStep: Record "M365 App Setup Wizard Step"; var wizardText: JsonObject)
The OnAfterChangeStep event is called whenever the current wizard step changes.
Parameters / Return Value
appId
GuidGuid.
step
IntegerInteger.
appSetupWizardStep
Record "M365 App Setup Wizard Step"var Record “M365 App Setup Wizard Step”.
wizardText
JsonObjectvar JsonObject.
OnGetPerDatabaseUpgradeTags
procedure OnGetPerDatabaseUpgradeTags(var upgradeTags: List of [Code[250]])
Use this event if you want to add upgrade tags for PerDatabase upgrade method.
Parameters / Return Value
upgradeTags
List[Code]List of [Code[250]]. List of upgrade tags that should be inserted if they do not exist.
OnGetPerCompanyUpgradeTags
procedure OnGetPerCompanyUpgradeTags(var upgradeTags: List of [Code[250]])
Use this event if you want to add upgrade tags for PerCompany upgrade method for a new company.
Parameters / Return Value
upgradeTags
List[Code]List of [Code[250]]. List of upgrade tags that should be inserted if they do not exist.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.