Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel beschreibt einen Workflow zum Schreiben, Bereitstellen, Debuggen und zur Problembehebung mit X++-Code in mehreren Umgebungen.
Anmerkung
Ausführlichere Informationen erhalten Sie in den Präsentationen und Demos zur Tech-Talk-Reihe zu Dynamics 365 FastTrack. Einheitliche Entwicklungserfahrung für Finanzen und Betrieb | Dynamics 365 FastTrack Tech Talk
Gehen wir am Anfang von einem Entwicklungscomputer mit mehreren vereinheitlichten Entwicklungsumgebungen aus.
Mehrere vereinheitlichte Entwicklungsumgebungen
Über einen Entwicklungscomputer können Verbindungen zu mehreren vereinheitlichten Entwicklungsumgebungen hergestellt werden. Eine Instanz von Visual Studio kann jedoch jederzeit nur mit einer Umgebung verbunden sein und nur eine aktive Metadatenkonfiguration haben. Sie können die aktive Konfiguration über den Menüpunkt Erweiterungen>Dynamics 365>Metadaten konfigurieren umschalten.
Durch das Wechseln der aktiven Metadatenkonfiguration ändert sich die Umgebung, mit der Sie verbunden sind, nicht. Sie können sie über den Visual Studio Menüpunkt Extras>Mit Dataverse verbinden ändern.
Dieselbe Konfiguration kann für mehrere Umgebungen mit denselben Finanz- und Betriebsanwendungen und Plattformversionen gültig sein. Es ist immer noch besser, eine Metadatenkonfiguration pro Umgebung zu haben. Diese Konfigurationen können gemeinsame Werte für benutzerdefinierte und Referenzmetadatenordner und mehr haben. Die aktuelle Konfiguration und die aktuelle Verbindung bestimmen gemeinsam, was bereitgestellt wird und in welcher Umgebung.
Für unterschiedliche Zwecke können unterschiedliche Umgebungen mit unterschiedlichen Finanz- und Betriebsanwendungen und Plattformversionen verwendet werden. Die Version der Visual Studio-Erweiterung für Finanzen und Betrieb sollte mit der Umgebung übereinstimmen.
Der X++-Compiler, der Beschriftungs-Compiler und andere Tools, die von den einzelnen Versionen der Visual Studio-Erweiterung abgerufen werden, entsprechen der Anwendungsversion der aktiven Konfiguration, die Sie als aktuell festgelegt haben.
Wenn es keine wesentlichen Änderungen zwischen den verschiedenen Zielanwendungs- und Plattformversionen gibt, wenn die älteste Version für Finanzen und Betrieb verwendet wird, stellt die Visual Studio-Erweiterungsversion sicher, dass die erstellten Artefakte mit höheren Laufzeitversionen in den Umgebungen kompatibel sind.
Eine vereinheitlichte Entwicklungsumgebung und mehrere Entwicklungscomputer
Unabhängig davon, ob wir von derselben oder einen anderen Entwicklungsfachkraft sprechen, steigt bei der Verwendung mehrerer Entwicklungscomputern die Wahrscheinlichkeit, dass die gemeinsame, vereinheitlichte Entwicklungsumgebung unbeabsichtigt beschädigt wird (dies ist allerdings nicht unvermeidlich). Dies kann passieren, wenn eine Änderung bereitgestellt wird, die nicht berücksichtigt, was bereits in derselben Umgebung bereitgestellt wurde.
Die oben beschriebene Situation könnte auch auf demselben Entwicklungscomputer auftreten, falls der benutzerdefinierte Metadatencode plötzlich nicht mehr konsistent ist, beispielsweise durch den Wechsel von Git-Branches.
Um die Konsistenz zu gewährleisten und unbeabsichtigte Änderungen an den vereinheitlichten Entwicklungsumgebungen zu verhindern, kann eine Versionskontrolle eingesetzt werden, zum Beispiel Azure DevOps mit Git, um sicherzustellen, dass ein referenzierter Datensatz von allem vorliegt, was bereits in einer Umgebung bereitgestellt wird.
Wichtig
Wir können die wichtige Rolle der Versionskontrolle für die Gewährleistung einer guten Codehygiene und die Bereitstellung historischer Datensätze, Prüfpunkte und Synchronisierungspunkte gar nicht genug betonen.
Code bereitstellen und die Datenbank synchronisieren
Sehen wir uns an, welche Optionen Sie beim Bereitstellen von Code und Synchronisieren der Datenbank in einer vereinheitlichten Entwicklungsumgebung haben.
| Szenario | Bereitstellungsmethode | Anmerkungen |
|---|---|---|
| Eines oder mehrere bereits erstellte Module bereitstellen | Verwenden Sie das Dialogfeld Dynamics 365>Bereitstellen>Modelle bereitstellen .... | Optional können Sie die Datenbank für die Module synchronisieren. |
| Ein oder mehrere Module als Teil eines vollständigen Builds bereitstellen | Initiieren Sie über den Dialog Dynamics 365>Modelle erstellen nach Sie die Option auf In einer vernetzten Onlineumgebung bereitstellen festgelegt haben. | Sie können die Datenbank für die Module optional mit der Einstellung Datenbank synchronisieren auf der gleichen Registerkarte Optionen synchronisieren. |
| Ein oder mehrere Module als Teil des Erstellens/Neuerstellens von X++-Projekten im Projektmappen-Explorer bereitstellen | Initiieren Sie dies über die Erstellung/erneute Erstellung der Projekte oder der Lösung, nachdem Sie die Option auf Änderungen in der Onlineumgebung bereitstellen festgelegt haben. Dadurch werden nur Änderungen seit der letzten erfolgreichen Bereitstellung bereitgestellt und es ist außerdem schneller | Optional können Sie die Datenbank für die eingeschlossenen Änderungen synchronisieren |
| Ein Modul für ein bestimmtes X++-Projekt aus dem Lösungs-Explorer bereitstellen | Führen Sie die Initiierung durch, indem Sie mit der rechten Maustaste auf das Projekt klicken und Modell für Projekt bereitstellen … auswählen. | Dadurch werden nur die Änderungen seit der letzten erfolgreichen Bereitstellung bereitgestellt, die Datenbank für das Modul wird jedoch nicht synchronisiert. |
| Kein Bereitstellen irgendwelcher Module, sondern Synchronisieren der Datenbank für alle Module in der Umgebung | Führen Sie die Initiierung über den Dialog Dynamics 365>Datenbank synchronisieren … durch. | Dies ist ein zeitintensiver Vorgang, da DBSync für alle Module ausgeführt wird. |
Anmerkung
- Kontinuierliche inkrementelle Builds und Deployments könnten bei großen Modulen deutlich schneller sein als eine vollständige Bereitstellung.
- Führen Sie für ausschließlich binäre Module, die Sie von ISVs oder anderen Drittanbietern erhalten haben, eine vollständige Bereitstellung und Datenbanksynchronisierung durch.
- Versuchen Sie nicht, Systemmodule zu ändern und dann bereitzustellen.
Von ISVs oder anderen erhaltene Module hinzufügen
Sie können X++-Module auf viele verschiedene Arten erhalten. Die Dateien können als ZIP-Dateien oder vollständig bereitstellbare Pakete, einzeln oder als Sammlung von Modulen, nur mit Code oder als Binärdatei und mit oder ohne ISV-Lizenzen mit Ihnen geteilt werden.
In all diesen Fällen möchten Sie sie versionieren, indem Sie sie in ein Versionskontrollsystem einpflegen. Anschließend sollten Sie die aktive Metadatenkonfiguration aktualisieren, sodass sie auf diese verweist.
Fahren Sie fort, indem Sie im Ordner für Referenzmetadaten eine neue Referenz hinzufügen, auf die Schaltfläche Hinzufügen klicken und zum gemeinsamen übergeordneten Ordner für alle Referenzmodule navigieren. Wenn Sie beispielsweise Module01 und Module02 hinzufügen möchten, platzieren Sie sie in einem gemeinsamen Ordner (zum Beispiel E:\ISVModules) und verweisen Sie dann auf den übergeordneten Ordner.
Wann eine Lizenz für Module einbezogen werden sollte
Lizenzen können direkt eingebunden und bereitgestellt werden, indem Sie sie im Ordner __License (mit zwei Unterstrichen) im Modell auf derselben Ebene wie Ihr bin-Ordner platzieren. Diese Lizenz wird überprüft und angewendet, wenn Sie das Paket bereitstellen.
Wenn Sie beispielsweise eine Lizenzdatei licenseFile01 für Module01 unter E:\ISVModules\Module01 hinzufügen möchten, erstellen Sie einen untergeordneten Ordner E:\ISVModules\Module01__License und fügen Sie die Datei als E:\ISVModules\Module01__License\licenseFile01 ein. Darüber hinaus ist eine Vollständige DB-Synchronisierung aus dem Dynamics 365-Menü in Erweiterungen erforderlich, damit die angewendete Lizenz wirksam wird.
Weitere Informationen finden Sie unter Lizenzierung für unabhängige Softwareanbieter (ISV)
Ein vollständig bereitstellbares Paket (Lifecycle Services-Legacy-Paket) in das neue Format konvertieren
Beschreiben wir nun, wie ein vollständig bereitstellbares Paket (Lifecycle Services-Legacy-Paket) in das neue Format konvertiert wird, damit es kompatibel ist und in Umgebungen bereitgestellt werden kann.
Suchen Sie ModelUtil.exe im bin-Ordner und führen Sie es in der Befehlszeile aus, um die Verwendungsinformationen anzuzeigen. Wählen Sie als Nächstes die Option -convertToUnifiedPackage aus und geben Sie die Paket-ZIP-Datei und den Ausgabespeicherort als Parameter an.
Anmerkung
Die Konvertierung in ein vereinheitlichtes Paket schlägt möglicherweise mit einer Meldung fehl, die mit „Die Datei ‚temp path\modelName\bin\fileName‘ ist bereits vorhanden“ endet. Dazu kommt es, wenn im Originalpaket mehrere Versionen des Modells identifiziert werden.
Lösung: Stellen Sie sicher, dass das Originalpaket neu erstellt wurde, und achten Sie dabei darauf, dass nur eine Version jedes Modells im Paket am Speicherort <OriginalPackage.zip>/AOSService/Packages/files/<model.Version> vorhanden ist.
Bereitstellen von Paketen, während sich die Umgebung im Verwaltungsmodus befindet
Die OnlineDev/UDE-Umgebung unterstützt die Paketbereitstellung (nur Code) im Verwaltungsmodus. Dieser Wiederherstellungspfad überspringt die Datenbanksynchronisierung. Sie können ein Paket mit einem Fix bereitstellen, bevor Sie versuchen, den Verwaltungsmodus zu beenden.
Weitere Informationen finden Sie unter Bereitstellen von Paketen in einer einheitlichen Entwicklerumgebung im Verwaltungsmodus.
Bereitstellungs- oder DBSync-Fehler beheben
Die Paketbereitstellung kann aus verschiedenen Gründen, darunter wegen Entwicklungsfehlern, in verschiedenen Phasen, einschließlich der DB-Synchronisierung, fehlschlagen. Ein Link zum Herunterladen von Vorgangsprotokollen ist im Visual Studio-Ausgabebereich verfügbar. Sie werden heruntergeladen, wenn Fehler aufgetreten sind oder wenn Sie die Einstellung in Tools> Optionen> Power Platform Tools aktivieren.
Sie können die Protokolle auch von Ihrer Dataverse-Organisation herunterladen, indem Sie wie folgt vorgehen.
- Melden Sie sich bei der Dataverse-Organisation an
- Suchen Sie die Paketmanager-App für Finanzen und Betrieb auf der Hauptseite
- Wählen Sie die App aus und wählen Sie dann im linken Bereich Vorgangsverlauf aus
- Öffnen Sie den entsprechenden Datensatz, indem Sie den Vorgangsnamen auswählen, und laden Sie die Vorgangsprotokolle herunter (
operationlogs.zip-Datei)
Bereitstellung und DBSync waren erfolgreich, aber ich muss meine Änderungen untersuchen
Wenn die Bereitstellung und die DB-Synchronisierung erfolgreich sind, sollten Sie Ihr Szenario ausführen und das erwartete und das tatsächliche Verhalten miteinander vergleichen, um Hinweise zu erhalten. Das Infolog ist hierbei oft sehr hilfreich.
Wenn das oben Genannte nicht ausreicht, sollten Sie den Debugger über das Menü Dynamics 365>Debugger starten an den laufenden AOS-Prozess in der vereinheitlichten Umgebung anhängen. Wenn Sie das Szenario dieses Mal mit einigen festgelegten Haltepunkten ausführen, erhalten Sie einen besseren Einblick.
Wir empfehlen, X++-Einheitentests für Ihren Code zu schreiben, um sicherzustellen, dass Regressionen einfach und schnell erkannt werden. Sie können auch Application Insights verwenden, um die in der vereinheitlichten Entwicklungsumgebung ausgeführte Anwendung zu überwachen und zu diagnostizieren.
Erfahren Sie mehr über Beobachtbarkeit: Überwachung und Telemetrie mithilfe von Application Insights
Welche Informationen müssen dem Microsoft-Support bereitgestellt werden?
Für die Untersuchung durch Microsoft sind die Korrelations-ID, der Name des Client-Computers und der Zeitstempel erforderlich. Die Korrelations-ID ist im Visual Studio-Ausgabebereich.
Die Protokolle werden auch in Microsoft.PowerPlatformVSExtension*.log-Dateien im Verzeichnis C:\Users<user>\AppData\Local\Microsoft\Dynamics365\Logs geschrieben. Darüber hinaus wird eine Protokolldatei mit dem Namen VisualStudioD365Extension*.log unter einem Pfad wie C:\Users\AppData\Roaming\Microsoft Corporation\Microsoft® Visual Studio®<Version>\VisualStudioD365Extension-*.log generiert.
Siehe auch
Einheitliche Entwicklungserfahrung für Finanzen und Betrieb | Dynamics 365 FastTrack Tech Talk
Schreiben, Bereitstellen und Debuggen von X++-Code
Bereitstellen von Paketen in einer einheitlichen Entwicklerumgebung im Verwaltungsmodus
Unit-Tests in der einheitlichen Entwicklererfahrung
Erstellen und verwalten Sie Umgebungen im Power Platform Admin Center
Dynamics 365-Apps verwalten