Ist denn überhaupt eine Anmeldung an der Datenbank des Containers möglich?
Der erste Schritt ist immer AL Go (Alt+AL), um ein AL-Projekt zu erzeugen. Das legt die Vorgaben für launch.json und app.json und HelloWorld.al im Projekt an.
Für Syntax-Highlighting reicht es schon, wenn irgendeine AL-Extension installiert ist und eine (ggf. neue erzeugte) Datei die Endung .al hat.
Die Snippets (Eintippen: tt,tf,tp,tc,tr,… usw.) im Editor sollten dann ebenfalls schon anspringen. Das sind sind aber noch Muster ohne Wert, solange keine Verbindung zu einer Datenbank und damit die notwendige Anbindung an deren Schema, Objekten und Funktionen vorhanden ist.
Dazu ist es notwendig, sich an der Datenbank anzumelden (die eine gültige Entwicklerlizenz hat),
Download Symbols durchzuführen (Liste: Strg+Umschalt+P), bei der sich der angegebene Dienst in der launch.json über den Developerport (Vorgabe 7049) der Datenbank verbindet. Dabei wird im VSCode-Projekt ein Ordner
.alpackages erzeugt, wo die .app-Dateien aus der Base App der Datenbank angelegt werden, die die obigen Inhalte bereitstellen.
alpackages.png
Dann kann man mit der Entwicklung anfangen.
Die VSIX, die man aus dem Container mittels Browser über Port 8080 runterladen kann, ist immer die passende. Die grundsätzliche Frage ist immer zusätzlich, soll für die Cloud oder On-Prem entwickelt werden.
Als Vorgabe haben die AL-Extensions aus dem Marketplace (Cloudentwicklung) die Beschränkung auf External-Funktionen u.v.a.m. und die AL-Extensions für NAV (= On-Prem) können als Vorgabe alle, auch die Internal-Funktionen, herkömmliche Dateifunktionen, Systemtabellen usw. nutzen. Über den Parameter "target" in der app.json (oder die Servereinstellung "Allowed Extension Target Level" bei herkömmlichen Servern) kann das ggf. aber auch beeinflusst werden.
Target.png