Sofort-Kontakt

 
Kopfzeilen-Filter
Kopfzeilen-SchrÀge

Business Central

Kopfzeilen-AnfĂŒhrungszeichen Individualanpassungen Kopfzeilen-AnfĂŒhrungszeichen

Dynamics NAV Übersicht ĂŒber
installierte
Branchen-
und
Spezial­lösungen

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.

SQL-Skript

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.