Dynamics NAV Ăbersicht ĂŒber
installierte Branchen-
und SpezialÂlösungen
installierte
und
FĂŒr das ERP-System Microsoft Dynamics NAV gibt es etliche Branchen- und Speziallösungen. Diese Branchen- und Speziallösungen erweitern Dynamics NAV um zahlreiche vertikale und horizontale Funktionen. Oftmals werden vom NAV-Partner sogar weitere Lösungen installiert, von deren Existenz die Anwendenden gar nichts wissen. Wir zeigen, wie sich eine Ăbersicht generieren lĂ€sst.
SQL-Skript
In Dynamics NAV werden den Objekten eine oder mehrere Versionsnummern hinterlegt.
Um einen schnellen Ăberblick ĂŒber alle installierten Branchen- und Speziallösungen zu erhalten, reicht aber ein Blick auf diese Versionsnummern nicht aus, da wir hier von tausenden EintrĂ€gen reden. Abhilfe schafft das folgende kleine SQL-Skript.
DECLARE @dbname varchar(20);
SET @dbname = 'INSERT_DBNAME';
DECLARE @stmt varchar(612);
SET @stmt =
'WITH sortedList AS
(
SELECT
SUBSTRING(vList.Item,0,PATINDEX(''%[0-9]%.%'',vList.Item)) AS Produkt,
SUBSTRING(vList.Item,PATINDEX(''%[0-9]%.%'',vList.Item),LEN(vList.Item)) AS allVersions
FROM
(
SELECT Item
FROM DelimitedSplit8K(
STUFF(
(
SELECT DISTINCT '','' + OBJ.[Version List] AS [text()]
FROM [' + @dbname + '].[dbo].[Object] OBJ
FOR XML PATH('''')
)
,1,1,'''')
,'','')
WHERE Item != ''''
) AS vList
)
SELECT sortedList.Produkt,MAX(sortedList.allVersions) AS Version
FROM sortedList
WHERE Produkt != ''''
GROUP BY sortedList.Produkt';
EXEC(@stmt);
Die im SQL-Skript genutzte Funktion âDelimitedSplit8Kâ basiert auf âTally-Tablesâ und ist die performanteste der allgemein bekannten SQL-Splitter-Methoden. Die Funktion kann hier heruntergeladen werden und muss â sinnvollerweise in der Master-DB â zuvor erstellt werden.
Mit dieser SQL-Abfrage wird zunĂ€chst eine kommagetrennte Auflistung aller VersionseintrĂ€ge erstellt. Die durch Komma separierten Elemente werden durch die Funktion âDelimitedSplit8Kâ voneinander getrennt und in eine temporĂ€re Tabelle gespeist. In dieser Tabelle befinden sich dann alle einzelnen Produktversionen der gesamten Tabelle âObjectâ. FĂŒr unsere Zwecke sind wir allerdings nur an den aktuellsten Versionen eines Produkts interessiert und geben letztendlich nur diese aus. ZusĂ€tzlich wird die Produktbezeichnung von der Versionsnummer getrennt.
Wird das SQL-Skript ausgefĂŒhrt, erscheint eine Liste mit allen in der Datenbank installierten Lösungen.
Es ist zu erwĂ€hnen, dass die Ausgabe nicht völlig fehlerfrei geschieht. Aufgrund der unglĂŒcklichen Namensgebung des Produktes âNAVW1â mit der darauffolgenden Versionsnummer und fehlender Möglichkeiten dies zuzĂŒglich auszufiltern, ist zu beachten, dass es in diesem Fall zu einer zusĂ€tzlichen vorangestellten â1â in der Versionsnummer kommt.
In der zweiten Zeile des SQL-Skripts muss in der Variable noch der Datenbankname der zu prĂŒfenden Datenbank eingetragen werden. Wir haben diese Stelle mit INSERT_DBNAME gekennzeichnet.