Ostatni wpis, który był wstępem do wykorzystania platformy Docker do naszych potrzeb zakończyłem na komendzie, która pozwoli Ci uruchomić kontener Business Central. Tym razem pokażę Ci, że nie jest to jednak najlepszy sposób na uruchomienie własnego środowiska. Dużo lepszym wyjściem jest użycie świetnego modułem PowerShell – NAV Container Helper.
Czym jest NAV Container Helper?
W skrócie – NAV Container Helper jest modułem PowerShell służącym do ułatwienia zarządzania kontenerami Business Central (NAV). Prawda jest jednak taka, że nie sposób w kilku słowach opisać tego jak jest on pomocny. Daje on nam wiele możliwości tworzenia i zarządzania, automatyzując wiele standardowych operacji i konfiguracji.
Narzędzie to znajdziecie na stronie: https://github.com/Microsoft/navcontainerhelper. O tym jak je zainstalować u siebie w dalszej części wpisu.
Czym jest Dynamics 365 Business Central Sandbox?
Ponownie w skrócie – Dynamics 365 Business Central Sandbox jest to testowe środowisko systemu, które możecie wykorzystać do tworzenia i testowania własnych rozwiązań. Sandbox dostępny jest zarówno w postaci obrazu Docker oraz w formie subskrypcji (niestety na chwilę obecną nie dotyczy to Polski).
Pierwszy Dynamics 365 Business Central Sandbox
Utwórzmy zatem swój pierwszy kontener z Sandboxem Business Central. Zanim zaczniemy musisz najpierw zainstalować platformę Docker o czym pisałem w poprzednim wpisie. Wszystkie kroki będę demonstrował w Visual Studio Code – o którym pisałem tutaj.
Upewnij się, że Docker działa i uruchom Visual Studio Code (jako administrator). Utwórz i zapisz plik BCSandbox.ps1. Pierwszym krokiem będzie instalacja NAV Container Helper:
[cc lang=”PowerShell”]Install-Module -Name navcontainerhelper -Force
Write-NavContainerHelperWelcomeText[/cc]

Kolejnym krokiem będzie pobranie obrazu Business Central Sandbox i uruchomienie go za pomocą zainstalowanego modułu. Poniżej przykładowy skrypt, który wykona wszystkie operacje.
Uwaga! Ja podaję jako parametr plik licencyjny – nie jest on obligatoryjny, ale chciałem pokazać, że NAVContainerHelper ma wiele opcji niezbędnych do codziennej pracy.
[cc lang=”PowerShell”]$ImageName = 'mcr.microsoft.com/businesscentral/sandbox:base’
$ContainerName = „BusinessCentral”
docker pull $ImageName
New-NavContainer -accept_eula `
-accept_outdated `
-containerName $ContainerName `
-imageName $ImageName `
-licenseFile C:\finBC.flf `
-memoryLimit 3g `
-updateHosts `
-includeCSide `
-doNotExportObjectsToText `
-auth NavUserPassword `
-enableSymbolLoading `
-assignPremiumPlan `
-useBestContainerOS[/cc]
Po uruchomieniu skryptu rozpocznie się pobieranie obrazu, który sporo waży i w zależności o prędkości twojego łącza może to chwilę potrwać.
W trakcie wykonywania skryptu zostaniesz zapytany(a) o podanie użytkownika i hasła, które posłużą do korzystania z Business Central.
Jeżeli zobaczyłeś na ekranie coś na wzór poniższego to znaczy, że się udało.

Po zakończeniu na twoim pulpicie powinny pojawić się nowe skróty, a żeby uruchomić Business Central wystarczy uruchomić przeglądarkę i wpisać adres: http://BusinessCentral/NAV (http://[nazwa_kontenera]/NAV). Aby się zalogować użyj użytkownika i hasła, które podałeś(aś) podczas tworzenie kontenera.
Pamiętaj, że klient RTC nie jest już rozwijany i jedynym słusznym klientem jest klient sieci WEB.

Życzę Ci miłego klikania! A już w kolejnym wpisie stworzymy pierwsze Extension – czyli użyjemy nowego języka programowania AL w nowym narzędziu jakim jest Visual Studio Code w celu stworzenia prostego rozszerzenia systemu. Niestety modyfikowanie standardowych obiektów za pomocą Development Environment to już przeszłość.
Business Central in a Box
Ciekawym projektem jest także Business Central in a Box, który pozwala na zarządzanie kontenerami w trybie graficznym. Link do strony projektu: https://github.com/tfenster/BCinaB

Słowo na koniec
Co miesiąc ukazuje się aktualizacja Dynamics 365 Business Central (i Dynamics NAV), i jedyne co musisz zrobić aby zaktualizować swoje środowisko to ponownie wykonać skrypt z poprzedniego kroku. Pamiętaj jednak, że podczas tej operacji twoje dane zostaną usunięte. Jeżeli zależy Ci na zachowaniu danych w bazie możesz zawsze skorzystać z zewnętrznej bazy danych.
Do poczytania
Blog autora NAVContainerHelper, gdzie znajdziesz wiele ciekawych informacji i nowości: https://blogs.msdn.microsoft.com/freddyk/tag/navcontainerhelper/
Od zera do Extension – cz.1 Visual Studio Code
Od zera do Extension – cz2. PowerShell