Lesen von Dynamics NAV-Tabellenmetadaten mit SQL

Ich möchte das lesen könnenDynamics NAV 2013-Tabellenmetadaten direkt aus der SQL Server-Datenbank ohneBenötigt die NAV-Entwicklungsumgebung.

Ich kann die BLOB-Spalten mit binärem SQL-Code "image" mit einer Abfrage wie der folgenden anzeigen (entsprechend der WHERE-Klausel filtern):

SELECT 
    o.[Name],
    m.[Object Type],
    m.[Metadata], -- XML Metadata
    m.[User Code], -- C# Metadata
    m.[User AL Code] -- C/AL Metadata
FROM [Navision].[dbo].[Object Metadata] AS m
JOIN [Navision].[dbo].[Object] AS o
ON m.[Object ID] = o.[ID]
AND o.[Company Name] = 'YourCompanyName'
AND o.[Type] = 0 -- 0 is NAV Table Object Type

Ich kann die Binärdaten aus den [Metadaten], [Benutzercode] und [Benutzer-AL-Code] mit .Net-Code oder einem schnellen Skript mit SQL-Treiber in Dateien speichern. Ich habe versucht, 7-zip zum Dekomprimieren, einen Hex-Editor zum Anzeigen und den Cygwin-Befehl "file" zum Erkennen dieser BLOB-Dateitypen zu verwenden.

Leider kann ich nicht herausfinden, wie die Binärdaten in ein lesbares oder verwendbares Format dekodiert oder dekomprimiert werden. Bis ich die Daten in diesen Feldern direkt verwenden kann, muss ichÖffnen Sie die NAV-Entwicklungsumgebung, und verwenden Sie den Objekt-Designer, um die durch Kommas getrennten OptionString-Eigenschaften anzuzeigen Dropdown-Menü für nullbasierte Nachschlagelisten (jedes Element in der Liste wird in der Back-End-Datenbank als Ganzzahl gespeichert - 0 für das erste Element, 1 für das zweite Element usw.). Die Zeichenfolgenwerte sind in einer SQL-Nachschlagetabelle nicht vorhanden, aber NAV fügt sie in die Metadatenblobs der Tabelle ein.

Dies ist das fehlende Glied für mich, um meine NAV-Benutzer als DBA vollständig zu unterstützen, ohne dass ein NAV-Entwickler diese benutzerdefinierten NAV-Feldzuordnungen von Nummer zu Name für mich nachschlagen muss. Ich kann diese Listenwerte dann nachschlagen und nach Bedarf passende SQL CASE-Anweisungen oder benutzerdefinierte Nachschlagetabellen erstellen.

Sobald ich dieses Teil habe, sollte ich in der Lage sein, erweiterte SQL-Ansichten, Abfragen, Berichte und Tools zu erstellen, ohne auf die Front-End-Benutzer- oder Entwickler-Tools von Dynamics NAV zugreifen zu müssen.

Bitte teilen Sie mir mit, ob Sie das Binärdatenformat kennen, das für diese NAV-Objekt-Metadaten-Blob-Eigenschaften verwendet wird. Alle Ratschläge zur Konvertierung in ein lesbares oder verwendbares Format wären hilfreich.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage