Einstieg in AL

Navision · Shopware · App

Weitere Suchbegriffe: Getting startet with Navision / Business Central 2020, Start Programming with Navision / Business Central AL 2020, Einführung in VisualStudio Code für NAVISION / BUSINESS CENTRAL 2020, Einrichten Visuals Studio Code für Navision / Business Central Extensions.

Der erste Start in Business Central AL gestaltet sich für viele sehr schwierig. Ganz egal ob man von der Navision-Schiene kommt oder neu einsteigt: Die Hürden sind unglaublich viel höher als noch zu nativen Zeiten.
Das liegt nicht unbedingt daran das Business Central so kompliziert zu programmieren ist. Das liegt eher daran, das die früheren Versionen von Navision so unglaublich einfach zu programmieren waren! Wer einmal wirklich in Navision 3.5x (DOS) oder Navision bis Version 2009R2 entwickelt hat, für den ist alles, was danach kommt, unnötig und schrecklich kompliziert. Und: das ist es auch. Als „netter“ Seiteneffekt bleibt zu vermerken das nun jede noch so kleine Entwicklung / Anpassung mindestens die doppelte Zeit benötigt, verglichen zu den Versionen bis 2009R2. Kommt noch ein Report-Layout knapp über „Liste“ hinzu, so sollte man aus seiner Erfahrung eher mit dem Faktor 3-5 rechnen. Was in den nativen Navisions noch in Sekunden erledigt war (Spalte oder Feld einfügen, schnell eine Auswertung zusammen klicken), benötigt nun -bei bereits eingerichteter Entwicklungsumgebung!- eher 10 Minuten. Sobald es an Belege (Kopf/Zeilen, Seitenwechsel) geht, werden auch schnell Stunden und Tage daraus.

Alleine die Einrichtung der Entwicklunsgumgebung benötigt nun bei den ersten Gehversuchen leicht eine Stunde.

Einrichtung virtuelle Maschine

Wird nur ein einziges Navision betreut, z.B. das eigene Produktive in der Firma, entfällt dieser Schritt.
Die Zeiten, in denen 5 verschiedene Navisions recht problemlos auf einem Computer liefen, sind vorbei. Die gesamte folgende Einrichtung muss exakt (!) zum installiertem Navision / Business Central passen, am besten sogar zum Patchlevel (CU = Cumulative Update). Meine Empfehlung, gerade für Programmierer & Entwickler: Eine VM pro Installation, z.B. eine VM für eine Demoversion, eine VM für Kundenversion 2019 Second Wave Cu2 usw.

Einrichten einer HyperV mit 4 Kernen und 4096 MB Ram, mindestens 50 GB Harddisk.

Ordner für die VM auswählen

Ich empfehle UEFI
Arbeitsspeicher mindestens 4 Gb, 6 tun auch nicht weh
Die virtuelle Festplatte sollte mindestens 50 Gb groß sein

Booten von einer Windows 10 Image datei. Diese kann mit dem Media Creation Toolkit erzeugt werden
Wichtig: Hier gleich den minimalen Arbeitsspeicher einstellen, sonst bekommt man später beim Installieren schon mal die Fehlermeldung „Die Microsoft Software Lizenzbedingungen wurden nicht gefunden. Stellen Sie sicher, das die Installationsquellen gültig sind, und starten Sie die Installation erneut“.

Die Einrichtung von Windows 10 oder Windows Server brauche ich hier nicht zu dokumentieren, Sie ist unkritisch. Einfach „einmal wie immer“. Ich empfehle ein Offlinekonto, deaktivieren aller beim Setup angebotenen Features inkl. Cortana, direktes entfernen der Suchleiste, Mail. Microsoft Store aus der Taskleiste.

Direkt nach dem ersten Einrichten bitte prüfen ob ihr Windows die Wiederherstellungspartition HINTER die Datenpartition gepackt hat:

So sollte es NICHT aussehen: Die Datenpartition kann nicht mehr erweitert werden, weil die Wiederherstellungspartition hinter der Datenpartition gelegt wurde
So sollte es aussehen: Die Datenpartition kann erweitert werden, weil die Wiederherstellungspartition vor die Datenpartition gelegt wurde

Löschen der Wiederherstellungspartition

Um weiterhin die Datenpartition vergrößern zu können ist die Aufteilung von Windows mit der Wiederherstellungspartition hinter der Datenpartition äußerst störend. Sie können z.B. nicht einfach für die Wiederherstellung einer Datenbanksicherung mal eben das Laufwerk vergrößerern und danach einfach wieder verkleinern.Auf einer Vm können Sie aber sehr gut auf die Wiederherstellungspartition verzichten.

1. Starten Sie Diskpart als Administrator
2. Zeigen Sie die Laufwerke mit list disk an

3. Schalten Sie mit select disk 0 auf den ersten Datenträger (in der VM gibt es ja nur einen!)
4. Zeigen Sie die Partitionen mit list volume an

Anhand der Größen finden Sie schnell die zu löschenden Volumes (Partitionen), hier Volume 2 und Volume 3.
5. Schalten Sie mit select volume 2 auf das erste zu löschende Volume (Partition), und löschen sie diese mit delete partition override. Wiederholen Sie diesen Schritt wenn nötig.

Nun können Sie die Datenpartition wie gewohnt vergrößern und verkleinern und damit auch die zugehörige virtuelle Festplatte an den realen Bedarf anpassen.
Wenn Sie Oracle Vm Virtual Box verwenden, können Sie die virtuelle Festplatte nicht grafisch vergrößern. Hier wird die Festplatte generell auf der Kommandozeile verwaltet. Vergrößern Sie diese dann z.B. mit c:\“Programm files\oracle\VBoxManage“ modifyhd „volume.vdi“ –resize 60000.

Windows bootet nicht mehr mit Virtualisierung

Seit Windows 2004 / 2020H2 scheint es eine Inkompatibilität mit der Intel Virtualization zu geben. Zumindest hatte ich das unerfreuliche Erlebnis, das nach einem völlig normalen Rechnerneustart -ohne wissentliches Update/Änderung- mich mein Lenovo Thinkpad P73 nur noch mit Bluescreens of Death (BSOD) begrüßte. Meistens kam die Fehlermeldung IRQL NOT LESS OR EQUAL, seltener Kernel Security Check Failure. Abstecken der USB-C Dockingstation, entfernen von RAM, entfernen anderer Systemplatten, Aktivieren eines Wiederherstellungspunkt, selbst das Neuinstallieren einer über ein eigenes WImage Script erstellten Datensicherung brachten keine Änderung. Teilweise blieb Windows sogar direkt beim Booten hängen: Der sich unter dem Windows-Logo drehene Punktekreis blieb plötzlich stehen, nach kurzer Zeit startete der Rechner komplett neu.
Hier half auf meiner Maschine einzig das Abschalten der Intel Virtualization unterstützung!
Im (UEFI-)Bios: Security/Virtualization die beiden Optionen „Intel Virtualization Technology“ und „Intel VT-d Feature“ auf Disabled stellen.
„DMA Memory Protection“ sollte auf der Lenovo-Maschine beim Einsatz einer USB-C Docking Station ohnehin abgeschaltet sein, sonst hat man noch mehr Probleme. Nicht schlecht für eine Profi-Workstation vom Markenhersteller Lenovo, was? Aber dann läuft natürlich auch kein HyperV mehr. Meine einzige Lösung: HyperV & Sandbox unter Windows deinstallieren, und mit Oracle VM Virtual Box weiter arbeiten. Mit

vboxmanage clonehd „Quelle.VHDX“ „Ziel.VDI“ –format VHD kann von einer VHDX-Datei eine VDI Festplatte gezogen werden. Die VHDX kann danach gelöscht werden. über vboxmanage kann auch eine komplette VM initialisiert werden! Damit ist OracleVM Virtualbox vboxmanage insgesamt leistungsfähiger als HyperV… aber eben nicht so elegant integriert wie HyperV.

Einrichtung Navision / Business Central als Demo / Entwicklungsumgebung

Wenn bereits ein produktives System zur Verfügung steht, entfällt dieser Schritt. Führen Sie die Einrichtung nur auf einem Rechner durch, den Sie nicht produktiv für ein 2. Navision nutzen wollen, z.B. Test & Produktiv. Hier empfehle ich Ihnen den Einsatz zweier VM’s.

Mit dieser Anleitung installieren Sie ein 2020 SecondWave out of the box. Die früheren Versionen mit C/AL Side by Side finden Sie sehr kompakt hier.
Mit dieser Anleitung hier werden Sie auch eine Demoversion von Business Central (Navision) erstellen. Ziel ist aber die Einrichtung einer kompletten Umgebung für Business Central / Navision Programmierer/Entwickler/Berater.

Weisen Sie ihrem lokalen Adminkonto das Recht als Dienst anzumelden zu:

2. Starten Sie das Setup von der Business Central CD, akzeptieren Sie die Lizenbedinungen, und wählen Sie „Optionen für die erweiterte Installation“ an:

3. Wählen Sie Benutzerdefiniert an. Achtung: nicht auf „Konfiguration laden“ kommen.

4. Nehmen Sie folgende Einstellungen vor:

Stellen Sie das Dienstekonto und – Kennwort auf den lokalen Admin von Schritt 1 ein. Die anderen Einstellungen können Sie nach ihren Wünschen setzen. Navision / Business Central installiert „notfalls“ eine Demo (Express) Version des SQL-Datenbankservers. Dieser kann später noch zu einer Developer/Vollversion hochgestuft werden.

Haben Sie bereits einen SQL_Server im Einsatz, der die Navision-Datenbank hosten soll, so können Sie in diesem Schritt auch einfach diesen SQL-Server angeben.
Nach wenigen Minuten wird sich das Setup mit erfolg zurück melden. Sie haben nun Business Central, einen SQL-Server, die 3-Tier Architektur und einen Link auf ihrem Rechner installiert.

Je nach benutzter Windows-version fehlt ihnen jetzt noch ein Browser, der Navision / Business Central sauber darstellen kann. Hier haben Sie die Wahl zwischen Google Chrome (funktionierte schon sehr früh sehr gut mit Navision, meine Empfehlung), Edge (funktioniert erst mit Business Central, nachdem Microsoft ihre eigene Engine aufgegeben und die von Chromium übernommen hat), Firefox (funktioniert „ganz gut“, ist aber in diesem Zusammenhang 2. Wahl). Der Internet Explorer steht Ihnen nur zur Verfügung wenn Sie sich auch sonst lieber Tabasco und Limettensaft in die Augen tröpfeln. Aber er eignet sich ganz hervorragend dafür Chrome zu installieren :-).


Einrichten Business Central Servertier

Um mit VSC (Visual Studio Code) automatisch die Symbole und den Basis-Code (Base Application) laden zu können, muss der Navision / Business Central DiensteServer für die Entwicklungsumgebung frei gegeben werden. Starten Sie die Business Central Administration, wechseln Sie zur gewünschten Instanz (in dieser Demo hier ist das die BC160), Development

Allowed Extension Target Level: In unserem Beispiel haben wir eine OnPrem (onPremisses) Lösung
Enable Debugging: Aktivieren
Enable Developer Service Endpoint: Aktivieren
Der rest bleibt wie voreingestellt.

Einrichtung VS-Code

Die Zeiten einer integrierten Entwicklungsumgebung sind vorbei, auch „Low-Code“ oder „Easy-Programming“. Konnten Sie früher noch eine komplette Datenstruktur (allerdings ohne Löschweitergabe, das hat Navision/Microsoft leider nie hingekommen) inkl. Dokumentereport mit Kopf/Zeilenstruktur gänzlich ohne eine Zeile Programmcode erstellen, so können Sie heute nicht einmal ein Editable Ja/Nein ohne so etwas wie Programmcode ändern.


Ich empfehle unbedingt den Verzicht auf „Docker“, außer Sie sind schon mit diesem Thema („Docker“ unter Windows mit Navision / Business Central) erfahren. In diesem Fall benötigen Sie sicher auch nicht meine Anleitung. Nutzen Sie lieber das Konzept der virtuellen Maschinen wie oben beschrieben, gerade für den Einstieg.

  1. Laden, Installieren & starten Sie Visual Studio Code von hier (Sie können auch einfach im Browser nach Visual Studio Code suchen).
    Empfehlung: Aktivieren Sie alle Optionen.

2. Installieren Sie die AL-Umgebung „AL Language“ (das dauert ein paar Sekunden)

Sie können die AL-Umgebung auch aus dem Internet laden. Nehmen Sie bitte die zu ihrem Navision / Business Central mitgelieferte VSIX-Datei, dann haben Sie 100% die richtige Umgebung!
Sie finden die richtige VSIX-Datei hier: C:\Program Files (x86)\Microsoft Dynamics 365 Business Central\160\AL Development Environment Wobei 160 ihre BC-Version ist.


3. Aktivieren der aktuellen Navision / Business Central Umgebung
Mit Shift+Strg+P rufen Sie den Prozess (oder was auch immer das P bedeuten mag) Befehl auf, und starten mit al:go ihr erstes Navision-Objekt. Vorher können Sie die AL-Umgebung nicht laden!

AL:Go ist ein Snippet. Sie müssen alle Parameter, die nun abgefragt werden, im Kopf haben. Verlassen Sie einmal das Snippet, können Sie wieder von vorne anfangen oder müssen halt die darin enthaltenen Assistenten „zu Fuß“ abarbeiten. Willkommen bei Microsoft!

Tipp: Führen Sie einmal das Snippet AL:Go aus, und notieren Sie sich (ja, so mit Bleistift und so) die Abfragen die kommen, zusammen mit den Antworten. Evtl. tragen Sie die Antworten nach. Dann verwerfen Sie dieses erste Projekt, tragen alle fehlenden Antworten in Ihre Notiz ein, und fangen noch mal an.
Sie brauchen: Projetkname (gewöhnen Sie sich schnell ein zentrales Verzeichnis an!), TargetPlattform (ihr Server), evtl. Benutzername, Benutzerkennwort, Servername

launch.json und app.json anpassen

Editieren Sie gleich die entstandene launch.json.
Fügen Sie „schemaUpdateMode„:“ForceSync“ hinzu:
(Tipp: Zu diesem Zeitpunkt muss nach der Eingabe von sche bereits der AutoCompleteWizzard erscheinen!)
Fügen Sie „port“:7049 (siehe Development Port weiter oben) hinzu
Ändern Sie die Authentication auf Windows

Editieren Sie die app.json, fügen Sie „target„: „onPrem“ hinzu:

Anmerkung: Natürlich müssen sie für eine reguläre Entwicklung auch ganz viele der anderen Parameter anpassen, aber das ist ein anderes, gaaaaanz weites Thema. Hier geht es nur darum ein erstes Glücksgefühl zu erzeugen.

Anmerkung 2: Warum OnPrem? Nur auf diese Weise können Sie weiter .Net (DotNet) Objekte in Navision / Business Central integrieren – und das auf so eine professionelle Art, das ihnen das in dem neuen Navision richtig Spaß machen kann. Umgekehrt wird daraus: In allen anderen Zielen (Targets), insbesondere in der Cloud, existiert schlicht kein .Net (DotNet) mehr. Ende. Aus. Punkt. Vorbei. Kein „Aber“ und kein „Ich brauche doch…!“.
OK Ok ok… Über Blazor geht es dann doch wieder, aber auch das ist hier nicht das Thema für eine Einführung.

Symbole laden

Nun können / müssen Sie die Symbole (alle internen Referenzen, Befehle, Funktionen, Tabellennamen, Felder…) laden: STRG+Shift+P, AL:Download Symbols

Nach wenigen Sekunden erscheint die Meldung, das die Symbole korrekt herunter geladen wurden. Die Meldung verschwindet, die Freude bleibt: Die vom Wizzard eingetragene HelloWorld Applikation kompiliert plötzlich fehlerfrei:


Herzlich Willkommen in Ihrer neuen Navision / Business Central Entwicklungsumgebung (Programmierumgebung).

Lizenzverwaltung Fin.flf

Sogar Microsoft empfiehlt 2020 den Navision-Entwicklungsclient zu benutzen um die Lizenz einzusehen und zu aktualisieren. Das ist natürlich nur ein Scherz.. hoffe ich. Denn dieser wird seit Navision / Business Central 2019 second Wave schon gar nicht mehr mitgeliefert. Sie müssen die Powershell dafür benutzen.
Starten Sie die Navision / Business Central Administration Powershell als Admin:

Anzeigen der aktuellen Lizenzinformationen


Tippen Sie „export-navs“ und drücken Sie die TAB-Taste, dann Leertaste und Instanzenname + Enter. In unserem Beispiel also
Export-NAVServerLicenseInformation bc160


Navision / Business Central zeigt Ihnen die in dieser Lizenz gespeicherte Lizenzinformation an:

Importieren einer neuen Lizenzdatei

In der gleichen Shell tippen Sie bitte Import-NAVS und drücken TAB. Wenn nicht sofort der richtige Befehl angezeigt wird, so schalten Sie mit TAB in der Powershell (wie in der früheren Batchprogrammierung bei den Dateinamen) mit TAB durch die Befehle durch:
Import-NAVServerLicense BC160 -LicenseData ([Byte[]]$(Get-Content -Path „c:\temp\fin.flf“ -Encoding Byte)) -Database NavDatabase

Bitte beachten Sie: BC160 ist ihre Instanz, „c:\temp\fin.flf“ ist der Pfad und Dateiname Ihrer Lizenzdatei. Achtung! Navision / Business Central bzw. die Powershell prüft schon, ob die Lizenz für Ihr System geeignet ist. Wenn nicht, wird eine entsprechende Warnung ausgegeben. Aber die Lizenzdatei wird trotzdem importiert! Bevor Sie also eine neue Lizenzdatei importieren, prüfen Sie immer das Sie die bisherige Lizenzdatei als Datei vorliegen haben. So können Sie im Fehlerfall wieder auf den vorherigen Zustand zurück schalten indem Sie die funktionierende FIN.FLF einfach erneut importieren.