Re: What's New für Entwickler (mit VS Code)

4. Mai 2018 13:48

Mögliche ID-Konflikte, wenn parallel mit Extensions und C/SIDE entwickelt wird, werden derzeit leider nicht abgefangen. Hier ein Workround mittels SQL-Skript.
Prevent C/SIDE from using ID’s used by Extensions

Re: Developer Preview – March Update

14. Mai 2018 13:23

Kowa hat geschrieben:Das aktuelle Image für D365BC ist jetzt ohne Login im neuen Repository bcsandbox öffentlich verfügbar:

Es gibt eine neue Version Build 21812
docker pull microsoft/bcsandbox:12.0.21812.0-de (at,ch,…)
Ich habe eher zufällig davon über Yammer erfahren :roll: .
https://www.yammer.com/dynamicsnavdev/t ... 1085990920

Re: What's New für Entwickler (mit VS Code)

15. Mai 2018 07:50

Hallo zusammen

Ich wollte nun auch mal meine ersten Test mit VS Code und AL machen. Leider kann ich keine Verbindung zu unserer on premise NAV2018 Installation herstellen.
Zuerst erhielt ich die Meldung in VSCODE:
Code:
Reason: No published package matches the provided arguments.
[2017-10-30 16:44:44.56] Could not download reference symbols. Please ensure that:

The correct server name and instance are specified in the launch.json file.
The correct application locale and version are specified in the app.json file.


Danach habe ich dire korrekte Extension Version für AL Installiert in dem ich diese via dem vsix File welches zu meiner Version gehört (CU5) installiert habe.
Nun erhalte ich leider bereits beim starten von VSCode direkt Fehlermeldungen und der AL Server startet nicht mehr. Die Fehlermeldung (siehe Anhang) sagt dass anscheinend die Komponente Newtonsoft.Json, Version=10.0.0.0 fehlt. Wie kann ich diese Komponente installieren oder den Fehler lösen?

Besten Dank für die Hilfe.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: What's New für Entwickler (mit VS Code)

15. Mai 2018 09:20

Die erste AL-Extension war auf jeden Fall völlig veraltet, denn
The correct application locale

muss und darf man schon seit Monaten in den aktuellen Versionen in der app.json nicht mehr angeben.
Das war dieses Konstrukt, führt mittlerweile zum Fehler:
Code:
"application": {
"version": "11.0.0.0",
"locale": "DE"
}

Nur die Version wird jetzt hier noch angegeben, wie hier beschrieben.

Alle Microsoft.al-Ordner in diesem Pfad
C:\Benutzer\<Benutzername>\.vscode\extensions\
bzw.
C:\Users\<Benutzername>\.vscode\extensions\
komplett löschen, der richtige wird dann bei der nächsten Installation neu angelegt.

Auch wenn die aktuelle AL-Extension de- und neu installiert wird, bleiben trotzdem Dateien hier im Ordner dieser Extension liegen
C:\Benutzer\<Benutzername>\.vscode\extensions\Microsoft.al-x.xx.xxxxx
Es kann nach Kompilerabstürzen auch notwendig werden, hier alles zu löschen.

Re: What's New für Entwickler (mit VS Code)

15. Mai 2018 10:59

Hallo Kai
Besten Dank für deine Hilfe!
Ich habe nun die Ordner gelöscht und die Extension neu installiert. Den Fehler mit der Newton.Json konnte ich auch beheben mithilfe des Internets.
Nun habe ich aber immer noch den Fehler NotFound. Reason: No published package matches the provided arguments.

Ich habe habe bereits folgendes getan:
Beim DEV Dienst Enable Developer Service Endpoint und Enable Loading application symbol references at server startup auf ja gesetzt.
Im Admin CMD den Befehl finsql.exe Command=generatesymbolreference, Database="NAV2018-MIGRATION", ServerName=SRLY014 ausgeführt.
Versucht die Application property in der App.json auf 11.0.21836.0 zu setzen.


Der SQL Server ist auf dem selbem Windows server wie VScode und die Datenbank "NAV2018-MIGRATION" ist auf der Default Instance vom SQL Server installiert.
Verwenden tue ich NAV2018 CU5 (11.0.21836.0) und die AL Extension habe ich via VSIX Datei aus dem CU5 Ordner installiert.

Im Anhang ist meine app.json und meine launch.json als txt und ein Screenshot vom Service. Ich habe bestimmt etwas übersehen oder einen Fehler gemacht, leider weiss ich nicht welchen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: What's New für Entwickler (mit VS Code)

15. Mai 2018 11:26

In der launch.json fehlt diese Zeile
Code:
"tenant": "",

Joshua hat geschrieben:Versucht die Application property in der App.json auf 11.0.21836.0 zu setzen.

Das sollte man lassen, da bin auch drauf reingefallen :-) , nur so: 11.0.0.0

Generell würde ich aber empfehlen, einen Docker-Container aufzusetzen und sich damit zu verbinden. Da hat man immer alles in der richtigen Version enthalten und der ist mit den Cmdlets des Navcontainerhelpers auch viel einfacher zu nutzen.

Re: What's New für Entwickler (mit VS Code)

15. Mai 2018 11:32

Funktioniert leider trotz des Tenants nicht, selbe Fehlermeldung ); Was könnte ich sonst noch versuchen?

Generell würde ich aber empfehlen, einen Docker-Container aufzusetzen und sich damit zu verbinden. Da hat man immer alles in der richtigen Version enthalten und der ist mit den Cmdlets des Navcontainerhelpers auch viel einfacher zu nutzen.


Kannst du das genauer erläutern, ich bin leider ein kompletter Anfänger was VSCode/AL/Extensions angeht.
Was genau ist Docker und gibt es eine Anleitung dazu wie ich so einen aufsetze?

Re: What's New für Entwickler (mit VS Code)

15. Mai 2018 11:46

Joshua hat geschrieben:Was genau ist Docker und gibt es eine Anleitung dazu wie ich so einen aufsetze?

Siehe hier. Möglichst aber unter Window Server 2016 aufsetzen falls verfügbar, mit Windows 10 geht es zwar auch, ist aber instabiler.

Funktioniert der manuelle Login denn überhaupt, wenn die launch.json so eingestellt wird?
Code:
"authentication": "UserPassword",

Re: What's New für Entwickler (mit VS Code)

15. Mai 2018 12:56

Nein die Authentifizierung mit "UserPassword" schlägt fehl, ich habe es mit Domäne\Username und meinem AD Passwort versucht, so wie mein User auch in NAV eingerichtet ist.
Zusätzlich habe ich einen neuen Benutzer eröffnet (ohne Windows Login mit NAVPW) und auch bei diesem erscheint die Meldung:
failed with code Unauthorized. Reason: Unauthorized
Muss ich in NAV meinem User spezielle Rechte oder Einstellungen geben?

Re: What's New für Entwickler (mit VS Code)

16. Mai 2018 14:42

Joshua hat geschrieben:Muss ich in NAV meinem User spezielle Rechte oder Einstellungen geben?

Keine speziellen, aber alle, also Superuser sollte man sein.

Joshua hat geschrieben:Der SQL Server ist auf dem selbem Windows server wie VScode und die Datenbank "NAV2018-MIGRATION" ist auf der Default Instance vom SQL Server installiert

Mit anderen Worten: Der Dienst für die Datenbank läuft auf dem gleichen System wo VSCode installiert ist?

Re: What's New für Entwickler (mit VS Code)

16. Mai 2018 14:44

Super User bin ich wie auch der neuen User denn ich zum Testen erstellt habe.

Ja korrekt, der Dienst (NAV Instance), SQL Datenbank und VSCode sind alle auf dem selben Server.
Ich verstehe wirklich nicht wieso ich keine Connection herstellen kann /:

Re: What's New für Entwickler (mit VS Code)

17. Mai 2018 15:53

Dieses Tool beschleunigt das Erstellen des Variablennamens mit drei Optionen (Lang, Kurz, Kürzel) und ermöglicht das Anspringen der globalen und lokalen Variablen über die aus C/SIDE bekannten Shortcuts.
AL Variable Helper

Developer Preview – May 2018 Update

28. Mai 2018 08:48

Developer Preview – May 2018 Update

Re: Developer Preview – May 2018 Update

28. Mai 2018 09:25

Natalie hat geschrieben:Developer Preview – May 2018 Update

Die Neuerung "Contextual information in XLIFF files" ist ein gutes Beispiel, dass es sich lohnen kann, die verfügbaren Kommunikationskanäle bei Yammer zu nutzen.
Auf den Umstand, dass die Trans-Unit-IDs keinen Rückschluss auf den Ursprung in den Objekten zulassen, hatte ich im Dezember 2017 hingewiesen.
Danach kam zwar nie ein Hinweis, dass es in Arbeit ist, aber offensichtlich war es nicht untergegangen :-) .

Re: What's New für Entwickler (mit VS Code)

7. Juni 2018 14:00

Waldo geht hier auf die auf die neuen Aspekte beim Überladen von Funktionen ein.
Function Overloading in AL

Re: What's New für Entwickler (mit VS Code)

7. Juni 2018 15:18

Ein neues PowerShell-Modul, um die ApplicationArea in C/AL vor der Konvertierung in AL zu versorgen.
Change multiple Application Area tags with PowerShell
Hiermit wird die Sichtbarkeit von Feldern in D365BC gesteuert, und falsche oder fehlende Tags führen schnell zum Frust bei den Anwendern.

Re: What's New für Entwickler (mit VS Code)

13. Juni 2018 15:59

Hallo!

Ich versuche gerade ein stabile DEV Env für das modern dev aufzusetzen. Ich fahre mit Docker eine NAV Instanz hoch (Version DE 11.0.22292.0). Habe VS Code installiert und das Hello World aufgesetzt.

Benutze ich die "AL aus VSIX Option" (Die Datei kommt aus dem CU Image der Version die ich nutze) habe ich kein Syntax highlighting und keine Code Completion und kann das Projekt nicht starten. Benutze ich die AL Erweiterung aus dem Marketplace (ms-dynamics-amb.al) erkennt VS Code die NAV Objekte nicht - was nachvollziehbar ist. Das Projekt hingegen, lässt sich starten.

Benutzt noch jemand Docker/VS Code zur Entwicklung und kann mir ein paar Tips geben?

Re: What's New für Entwickler (mit VS Code)

14. Juni 2018 10:26

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Re: What's New für Entwickler (mit VS Code)

14. Juni 2018 11:36

Hallo Kai,

danke für deine ausführliche Antwort!

Ist denn überhaupt eine Anmeldung am der Datenbank des Containers möglich?

Ja, die Anmeldung funktioniert einwandfrei.

Mein Fehler: Syntax-Highlighting und Snippets gehen natürlich. Aber die code completion für Objekte aus dem Standard nicht (siehe Hello World Example -> "Customer List" wird nicht gefunden und ist rot unterstrichen).

Die nötige Lizenz ist eingespielt, die Optionen AllowedExtensionTargetLevel ist internal, die Optionen EnableSymbolLoadingAtServerStartup und DeveloperServicesEnabled auf true gesetzt.

Ich gehe davon aus, dass die ALLanguage.vsix das Problem ist. VS Code versucht die Datei in C:/Users/user/.vscode/extensions/.microsoft.al-0.12.16641.../ abzulegen und stört sich an Benutzerrechten. Benutze ich die Erweiterung aus dem Marketplace sind die Standardobjekte in VS Code unbekannt, aber das Projekt startet erfolgreich.

Ich versuche jetzt die al.VERSIONSNUMMER.VSIX aus dem Docker-Container irgendwie einzubinden. Vielleicht habe ich damit mehr Erfolg. Eine abschließende Frage:Docker startet NAV in Version 11.0.22292.0. Muss dann die ALLanguage-Datei nicht ebenfalls 0.11.XXXXX haben? Die vsix-Datei im Docker-Container hat die Version 0.12.17091.

Re: What's New für Entwickler (mit VS Code)

14. Juni 2018 13:36

rkirsten hat geschrieben: Muss dann die ALLanguage-Datei nicht ebenfalls 0.11.XXXXX haben?

Nein, die Versionsnummern nichts miteinander zu tun.

Einige andere Beispiele:
NAV 2018 CU05 Version 11.0.21836.0 -> al-0.12.14734.vsix
Current D365BC Version 12 -> al-0.15.18771.vsix (Marketplace)
Aktuelle Preview D365BC Version 12.2.22584.0-DE -> al-0.16.19969.vsix
Aktuelle Preview nächstes Master-Release D365BC Version 13.0.22621.0-DE -> al-0.17.20571.vsix

Re: What's New für Entwickler (mit VS Code)

16. Juni 2018 08:07

Das ständige Testen, ob eine fertige App auch mit den kommenden Builds noch funktioniert, ist eine zeitintensive Daueraufgabe.
Im Blogartikel ist beschrieben, wie das automatisiert werden kann.
Automated testing of a Business Central Extension V2 in TFS

Developer Preview – June 2018 Update

26. Juni 2018 09:26

Developer Preview – June 2018 Update
  • Debugger enhancements
  • Permission Set Creation
  • .NET Interoperability
    Siehe auch: DotNet with Extensions V2
  • Backwards compatibility

Developer Preview – July 2018 Update

31. Juli 2018 09:55

Developer Preview – July 2018 Update
  • OData-bound actions in AL
  • Event discovery using a recorder
    mit der neuen Seite "Event Recorder"
  • Extensible Enums

Re: What's New für Entwickler (mit VS Code)

7. August 2018 16:07

Joshua hat geschrieben:Ich verstehe wirklich nicht wieso ich keine Connection herstellen kann /:

Falls es noch aktuell ist bzw. für alle die damit Ärger haben:
Je nach Anmeldeverfahren die benötigten User für den Container nach der Erstellung manuell anlegen. Auch der Administrator wird nicht automatisch dort angelegt.
New-NavContainerWindowsUser
New-NavContainerNavUser
Dann klappt es normalerweise.

Re: Sync-NAVApp erforderlich für Extensions V2

13. August 2018 09:19

Kowa hat geschrieben:Zum bekannten Sync-NAVTenant gesellt sich für Extensions noch ein zweiter Befehl zum Synchronisieren: Sync-NAVApp.
Der muss zwischen Publish-NAVApp und Install-NAVApp eingeschoben werden, um Tabellen und Felder der Extension für die Installation bereitzustellen,

Im Container ist das Leben einfacher :-), man kann mit Publish-NavContainerApp des navcontainerhelpers dank der dort verfügbaren Zusatzparameter -install und -sync beides gleich mit erledigen.
Code:
Publish-NavContainerApp -appFile "C:\Temp\MyApp.app" -containerName MyContainer -install -packageType Extension -skipVerification -sync