Quantcast
Channel: Microsoft Dynamics NAV
Viewing all articles
Browse latest Browse all 64865

Blog Post: How to Create a NAV 2013 R2 Multi-Tenancy Demo Environment

$
0
0

I have had a few people asking for this .. So I’m just going to share you my script that I always you to convert a Single Tenancy Demo Environment to a Multi Tenancy Demo Environment, with some (Empty) companies per Tenant and such.. .

And I’m going to make it easy on me .. there are no guarantees that it will work for you out-of-the-box :) .

The Script

#Preparing PowerShell  Set-ExecutionPolicy RemoteSigned -Force  Import-Module 'C:\Program Files\Microsoft Dynamics NAV\71\Service\NavAdminTool.ps1'    #Parameters  $ServerInstanceName = "DynamicsNAV71" #The current ServiceInstance  $DatabaseServer = "localhost" #The Database Server where the database is located  $Databasename = "NAV2013R2_BE" #The database that will be migrated to Multi-Tenancy  $DemoCompanyName = "CRONUS BELGIË NV" #This company will be renamed to "MainCompany". The data of this company will be available in the Mult-Tenancy environment.  $PathToDVD = 'C:\$installs\Dynamics.71.BE.1349272.DVD' #The path to the DVD    #The Script  $CurrentServerInstance = Get-NAVServerInstance -ServerInstance $ServerInstanceName  $MainCompanyName = "MainCompany"  $MainTenant = "MainTenant"    Write-host "Preparing Companies - Rename and delete default companies"  $CurrentServerInstance | Rename-NAVCompany -CompanyName $DemoCompanyName -NewCompanyName $MainCompanyName -Force  $DemoCompanies = $CurrentServerInstance | Get-NAVCompany  foreach ($DemoCompany in $DemoCompanies)  {  if (!($DemoCompany.CompanyName -like $MainCompanyName))  {  $CurrentServerInstance | Remove-NAVCompany -CompanyName $DemoCompany.CompanyName -Force  }  }    Write-host "Preparing Companies - Create a new company with data"  $CurrentServerInstance | Copy-NAVCompany -SourceCompanyName $MainCompanyName -DestinationCompanyName "PRS Company Default" -Force    Write-host "Preparing Companies - Creating 10 empty Waldo Companies"  for ($i = 1; $i -le 10; $i++)  {  $CompanyName = 'Waldo Company'+$i  $CurrentServerInstance | New-NAVCompany -CompanyName $CompanyName -Force  }    Write-host "Preparing Companies - Creating 3 empty PRS companies"  for ($i = 1; $i -le 3; $i++)  {  $CompanyName = 'PRS Company'+$i  $CurrentServerInstance | New-NAVCompany -CompanyName $CompanyName -Force  }    Write-host "Split the Application Database and Customer Data"  Export-NAVApplication -DatabaseServer $DatabaseServer -DatabaseName $Databasename -DestinationDatabaseName "ApplicationDB" -Force  Remove-NAVApplication -DatabaseServer $DatabaseServer -DatabaseName $Databasename -Force    Write-host "Prepare NST for MultiTenancy"  $CurrentServerInstance | Set-NAVServerInstance -stop  $CurrentServerInstance | Set-NAVServerConfiguration -KeyName MultiTenant -KeyValue "true"  $CurrentServerInstance | Set-NAVServerConfiguration -KeyName DatabaseName -KeyValue ""  $CurrentServerInstance | Set-NAVServerInstance -start    Write-host "Mount app"  $CurrentServerInstance | Mount-NAVApplication -DatabaseServer $DatabaseServer -DatabaseName "ApplicationDB"    Write-host "Create Tenants and move companies"  Mount-NAVTenant -ServerInstance DynamicsNAV71 -Id $MainTenant -DatabaseName $Databasename -AllowAppDatabaseWrite -OverwriteTenantIdInDatabase    import-module "$PathToDVD\WindowsPowerShellScripts\Multitenancy\NAVMultitenancySamples" -verbose    Write-host "Move PRS Companies"  $MoveToTenant = 'PRS Company'  Get-NAVServerINstance | Get-NAVCompany -Tenant $MainTenant | Where-Object { $_."CompanyName" -like $MoveToTenant + '*' } | HowTo-MoveCompanyToTenant -ServerInstance $CurrentServerInstance.ServerInstance -FromDatabase 'NAV2013R2_BE' -OldTenantName $MainTenant -NewTenantName $MoveToTenant.Replace(" ","") -RemoveCompanyWhenMoved    Write-host "Move Waldo Companies"  $MoveToTenant = 'Waldo Company'  Get-NAVServerINstance | Get-NAVCompany -Tenant $MainTenant | Where-Object { $_."CompanyName" -like $MoveToTenant + '*' } | HowTo-MoveCompanyToTenant -ServerInstance $CurrentServerInstance.ServerInstance -FromDatabase 'NAV2013R2_BE' -OldTenantName $MainTenant -NewTenantName $MoveToTenant.Replace(" ","") -RemoveCompanyWhenMoved

Some words of explanation

As you see, I’m usually working with a Belgian database. The “parameters” section should help you to easily change the script to your own needs.

Furtheron, I’m just going to keep 1 active company (Belgian version has 2), copy it to a PRS company, create 13 more companies and going to create multiple tenants with each tenant some companies.. . Just try it out, and see what happens :) .

The Result

It creates for you a Multi-Tenancy environment with three tenants:


  • “MainTenant” will have 1 company, being “MainCompany”. Check With:

    Get-NAVServerInstance | Get-NAVCompany -tenant “MainTenant”

  • “prscompany” will have 4 companies. One with data (PRS Company). Check With:

    Get-NAVServerInstance | Get-NAVCompany -tenant “prscompany”

  • “waldocompany” will have 10 empty companies. Check with:

    Get-NAVServerInstance | Get-NAVCompany -tenant “waldocompany”

Good luck!


Viewing all articles
Browse latest Browse all 64865

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>