Install the App
This section covers the installation of the COSMO Logistics. Typically an installation is only performed once and is not executed by the user, but an administrator. The installation differs from SaaS and On-Premises (OnPrem) environment.
To install in SaaS environment
In SaaS environments, the app can be installed from the AppSource. There are two ways to install the app, from external and internal of Business Central. All dependencies are installed automatically. Uninstall and install the app again to upgrade to the most current version.
AppSource
Visit the AppSource and choose Free trial. You will be forwarded to the page where you must log in with your Business Central user credentials and must select an environment to install the app to. Follow the wizard instructions to complete the installation.
Extension Marketplace
In Business Central, choose the icon, enter Extension Marketplace, and then choose the related link. In the marketplace, search for COSMO Logistics and select Free trial. Follow the wizard instructions to complete the installation.
To install in on-premises environment
Depending on the technology, different scripts are provided as basis to install the app and its requirements in on-premises environments. You can find the runtime packages of the apps in the COSMO CONSULT Solution Portal. Check the technical specifications of each version to find the minimum dependent version of Business Central and the Base Application.
Besides the Business Central Base Application, the app depends on additional library apps, that needs to be installed in the correct order first.
- COSMO Licensing app
- COSMO Logistics app
Docker
To install the apps to a docker container, the module BcContainerHelper must be installed first. Change the file names, container name and credential type to your values.
$licensingAppFileName = Join-Path $PSScriptRoot "COSMO Licensing.app"
$tmAppFileName = Join-Path $PSScriptRoot "COSMO Logistics.app"
$Global:containerName = "your-container-name"
$Global:credential = "your-credential"
function Install-CosmoAppToContainer {
Param (
[Parameter(Mandatory=$true)]
[string] $AppFileName
)
Publish-BcContainerApp `
-appFile $AppFileName `
-containerName $Global:containerName `
-credential $Global:credential `
-install `
-sync `
-skipVerification `
-scope "Global" `
-syncMode "Add"
}
try {
if (!(Get-Module -ListAvailable -Name "BcContainerHelper")) { throw "BcContainerHelper must be installed to run this script." }
Install-CosmoAppToContainer -AppFileName $licensingAppFileName
Install-CosmoAppToContainer -AppFileName $tmAppFileName
} catch {
throw "Error on installation: $($_.Exception.Message)"
}
Server Instance
Change the file names and server instance to your values.
$licensingAppFileName = Join-Path $PSScriptRoot "COSMO Licensing.app"
$tmAppFileName = Join-Path $PSScriptRoot "COSMO Logistics.app"
$Global:serverInstance = "your-server-instance"
function Install-CosmoAppToServerInstance {
Param (
[Parameter(Mandatory=$true)]
[string] $AppFileName,
[Parameter(Mandatory=$true)]
[string] $AppName
)
Publish-NAVApp `
-ServerInstance $Global:serverInstance `
-Path $AppFileName `
-SkipVerification `
-Scope Global
Sync-NAVApp `
-ServerInstance $Global:serverInstance `
-Name $AppName
Install-NAVApp `
-ServerInstance $Global:serverInstance `
-Name $AppName
}
try {
Install-CosmoAppToServerInstance -AppFileName $licensingAppFileName -AppName "COSMO Licensing"
Install-CosmoAppToServerInstance -AppFileName $tmAppFileName -AppName "COSMO Logistics"
} catch {
throw "Error on installation: $($_.Exception.Message)"
}