AL-Code segmentieren und Namenskonflikte mit Namespaces reduzieren

Aktiviert für Öffentliche Vorschauversion Allgemeine Verfügbarkeit
Administrator*innen, Maker*innen, Marketingspezialist*innen oder Analyst*innen, automatisch 17. Aug. 2023 2. Okt. 2023

Geschäftswert

AL für Business Central unterstützt jetzt Namespaces, ähnlich wie andere Codesprachen. Namespaces bieten eine Möglichkeit, Objekte und Code logisch und hierarchisch zu organisieren. Sie können dazu verwendet werden, Namenskonflikte zwischen verschiedenen Erweiterungen zu vermeiden, was es einfacher macht, Erweiterungen zu pflegen und zu verstehen, einschließlich der Beziehung zwischen verschiedenen Objekten.

Details zur Funktion

Eine AL-Datei kann nun an oberster Stelle einen Namespace definieren, der für alle Objekte in der Codedatei gilt. Ein bestimmtes Objekt kann nur zu einem Namespace gehören, aber derselbe Namespace kann für mehrere AL-Dateien und -Objekte verwendet werden.

Beim Auflösen von Objekten wird zuerst der nächstgelegene Bereich verwendet. Um in ein ähnlich benanntes Objekt in einer abhängigen Erweiterung aufzulösen, muss der Verweis daher einen vollqualifizierten Namen verwenden. Alternativ ist es möglich, using-Direktiven zu definieren, um externe Namespaces einzuschließen und dadurch vollqualifizierte Namen vermeiden zu können.

Da Namespaces für die logische Segmentierung von Erweiterungen nützlich sind, zeigt AL Explorer auch Namespaces für Objekte an und ermöglicht die Gruppierung von Objekten nach Namespace. Dies macht es einfacher, verwandte Objekte zu finden, sich auf Unterbereiche einer App zu konzentrieren und Inkonsistenzen beim Hinzufügen neuer Objekte zu identifizieren.

Verschachtelte Namespaces ermöglichen eine bessere Benennung von Objekten, als die vollständige Struktur im 30-stelligen Objektnamen auszudrücken. Das Umbenennen vorhandener Objekte stellt jedoch eine „Breaking Change“ dar, sodass diese Funktion in Zukunft hauptsächlich bei der logischen Strukturierung vorhandener Objekte und neuen Namen hilft.

Es werden Codeaktionen verfügbar sein, um Entwickler*innen beim Hinzufügen von Namespaces zu vorhandenen Quellen zu helfen.

Hier sind einige Beispiele, zunächst zum Definieren von Namespaces im Code.

Beispiel für die Definition eines Namespace in der Entitätstexttabelle von System-Apps

Dann sehen Sie, wie Sie Objekte in anderen Namespaces in Ihren Bereich einbeziehen können, um sie zu verwenden.

Beispiel für die Einbindung von Objekten in andere Namespaces über „Using“ für den Zugriff im Code, hier in einer Tabelle namens „Customer“

Abschließend sehen Sie hier ein Beispiel für nach Namespace gruppierte Basis-App-Objekte, wobei sich die Tabelle „Customer“ im Namespace „Microsoft.Verkauf.Kunde“ befindet. Indem Sie Objekte nach Namespace auf diese Weise gruppieren, können Sie sich leichter auf verwandte Objekte konzentrieren und diese auffinden.

Beispiel für nach Namespace gruppierte Basis-App-Objekte

Siehe auch

Namespaces in AL (Dokumente)