Navision 3.56 Euro (DOS) Datenbankbereinigung

Nav123: Navision, Showare, OrderApp

Einleitung

In Navision 3.5x unter DOS (oder Windows im Textfenster) kann es auch einmal nötig sein, die Datenbank um alte Leichen zu bereinigen. Das gestaltet sich dort allerdings -zum Teil- wesentlich aufwändiger als in den neueren Windows-Versionen.

Mit dieser Anleitung hier und einer kleinen Stapelverarbeitung von mir (bitte Kontakt aufnehmen) wird es zum Kinderspiel.

Übrigens: Auch für ein Update von der blauen Version von Navision (Navigator, Avista) 3.56 auf aktuelle Versionen stehe ich zur Verfügung…wobei Sie auch heute wirklich noch gut mit dieser DOS Version arbeiten können. Auch unter Windows 10 64 Bit, ohne virtuelle Maschine, einfach nur so starten!

Navision 3.56, unter DOS.Navsion Blau oder "Blaues Navision" benannt, oder auch DOS Navision, Altes Navision
Navision 3.56, die verbreiteteste Navision-Version unter DOS. Zur Unterscheidung zu Navision Financials wurde diese Version dann oft als Navision Blau oder „Blaues Navision“ benannt.

Es klingt unglaublich, aber die 1993 eingeführte „Blaue Navisonversion“ (Woher die Bezeichnung kommt? Siehe Screenshot 🙂 ) läuft auch heute noch klaglos unter Windows 10 Pro 64 Bit. Und das sogar mit der NAVIN.EXE als echte 32 Bit Applikation mit reichlich Ram!

Und wenn Sie einmal diese Fehlermeldung erhalten:

Das Betriebsystem findet die folgende Datei nicht:
Und darunter steht dann nichts, also kein Dateiname: Dann ist Ihnen zuvor eine Navision-Sitzung abgetaucht und die Datenbankdatei ist noch im Zugriff des zugehörigen Datenbanktreibers NAVI_DC2.exe (Navision Database Cache Control, alle Schreib- und Lesezugriffe gehen bei der nativen Datenbank über den Cache-Controller, der kümmert sich dann darum, dass nicht im RAM vorrätige Daten von der Platte geholt werden. Darum kann man auch ganz ohne Datenbankserver auf einem PC zwei oder mehr Navisions gleichzeitig benutzen).

Starten Sie den Rechner neu, und alles ist wieder gut.

Ein Kunde hatte sich nicht so richtig um die Auslastung seiner Datenbank gekümmert und kam nun in eine Datenbankauslastung, welche die weitere Benutzung unmöglich machte. Aber natürlich liefere ich auch für die blaue Version noch sehr gerne Beratung, Anpassung, Unterstützung und Support!

Grundsätzlich ist die Navision 3.56 (DOS / OS/2 / Windows) Datenbank unglaublich robust, aber hier hatte der frühere Softwareanbieter (ich vermute es war GWS aus Münster, es gab viele Hinweise auf „ELVIS“, so hieß mal eine Branchenlösung von denen) mal so richtige Klopper reingehauen.

So schlimm, dass die logische Datensicherung von Navision DOS 3.56 nicht mehr benutzbar war! Zumindest nicht ohne einen passenden AL Schlüssel, die magische Navi_Inf.dat.

Die Datenbank war ziemlich voll. Damals wurde die Datenbank noch nach Größe bezahlt, eine Datenbankerweiterung kann nicht mehr gekauft werden. Versucht man nun die logische Sicherung einzulesen, so bekommt man beim Tabellen-Sortieren die Fehlermeldung:

Sie haben nicht genug freien Platz in Ihrer Datenbank, um diesen Task auszuführen. Um freien Platz zu schaffen, versuchen Sie…
*die Datenbankdatei zu vergrößern (geht nicht, wegen der Lizenz)
*nicht benötigte Daten zu löschen (Belege ließen sich im blauen Navision nicht so einfach löschen!)
*alte Einträge zu komprimieren (Selbst für kleine Komprimierungen war nicht genug Platz vorhanden)
*die Datenbank zu optimieren (Selbst für kleine Optimierungen war nicht genug Platz vorhanden)

Das war jetzt noch nicht soooo schlimm. Nun kann man ja einfach die Tabellen nachträglich sortieren über die Stapelverarbeitung „Alle Karteien sortieren“.

Aber: Nicht in dem GWS ELVIS System!

Grund: Die Tabelle „Benutzerdaten“ wird in der Funktion (heute Codeunit) 1 vom System geöffnet und ist dann für die Laufzeit des Navisions gesperrt. OK, kann man ja schnell mal rausnehmen…Pustekuchen!

Fehlermeldung Das folgende Objekt kann nicht mit dem Editor bearbeitet werden.
Objekt: Funktion 'Mandant'.
Dieses Objekt wurde beim letzten Sichern geschützt. Nur das Programm mit der Seriennummer 49-N3Axxxxx hat Zugriff auf dieses Objekt
Das folgende Objekt kann nicht mit dem Editor bearbeitet werden.
Objekt: Funktion ‚Mandant‘.
Dieses Objekt wurde beim letzten Sichern geschützt. Nur das Programm mit der Seriennummer 49-N3Axxxxx hat Zugriff auf dieses Objekt.
Die zentrale Startfunktion von Navision wurde hier von GWS(?) blockiert!

Und somit lassen sich die Tabellenschlüssel nur mit enormem Arbeitsaufwand einzeln über Design/Karteien/Schlüssel wieder reaktivieren, insofern man denn eine gültige Programmlizenz (navi_inf.dat) für das Karteiendesign hat!

Hatte dieser Kunde nicht. Somit wäre er bei einem Datenbankcrash hilflos, wenn er denn nur eine logische Sicherung hat.

Und die logische Sicherung ist normalerweise DIE Garantie dafür, ein Navision wieder lauffähig zu bekommen. Ziemlich blöd, was sich hier dieser Programmierer ausgedacht hat.

Wir haben die Datenbank dann aber doch noch flott bekommen.

Vorbereitung

Zunächst muss man die Datenbankdatei kopieren. Man weiß ja nie.

Übrigens „weiß“ bei dem blauen Navison 3.56 DOS der ERSTE Datenbankteil, wo die restlichen Datenbankteile liegen. Das wird bei „Datenbankpflege“ / „Datenbank erweitern“ abgespeichert. Das wird dann mit NAVI.EXE oder NAVIN.EXE oder, unter OS/2, mit NAVI2.exe (DOS-Extender) und dem Parameter database=erstedb+zweitedb+drittedb angegeben.

Wenn man viele Datenbankteile hat (ich glaube bis zu 16 waren erlaubt, à 2 Gbyte, wegen des Dateisystems der 90er), so muss man die Namen der Datenbankteile schon sehr kurzhalten, die Befehlszeile durfte nur 128 Zeichen lang sein…

Navision 3.56 Startparameter

Die benutzbaren Parameter verrät das blaue Navision 3.5x DOS übrigens mit NAVIN.EXE ?:

Parameter für die navin.exe
DATABASE CACHE COMMITCACHE NETTYPE DBTEST DBREADONLY MACRO TEMPPATH DEBUG KEYBOXPATH SIERIALNO AUTOENTER
Parameter für die navin.exe
DATABASE welche Datenbank genutzt werden soll
CACHE Größe des Lese-Speichers, max 64000
COMMITCACHE Größe des Schreib-Speichers, max 64000, wichtig für Restore und Komprimierung
NETTYPE TCP oder NETBios
DBTEST führt die DB Tests durch wie unter Datengrößen anwählbar
DBREADONLY z.B. für Datenbankrettungen
MACRO Ja, Navision 3.56 Euro (die blaue Version) konnte bereits Macros, und so z.B. alle 10 Minuten Aufträge von einem Webshop einlesen oder jede Nacht selbstständig eine logische Datensicherung machen!
TEMPPATH Wo sollen die __TEMP__ Dateien abgelegt werden?
DEBUG Debugger („Austester“) aktivieren, er wird dann im Allgemein-Menü sichtbar
KEYBOXPATH Pfad zur Entwickler-AL-Schlüsseldatei Navi_inf.dat (früher meist auf einer Diskette!)
SERIALNO Beim Benutzen einer fremden navi_inf.dat musste man hier die Seriennummer (siehe Startbildschirm) angeben, mit der man sich verbinden will.
AUTOENTER Sobald ein Feld voll ist, springt Navision automatisch in das nächste Feld. Super z.B. um in Kladden wie Verkaufszeile lange Texte einzugeben.
Zur Erinnerung: Auch die blaue Version konnte bereits in jedem Textfeld mit ?xxx einen Standardtext abrufen!!

Startparameter NETTYPE

Welche Netzwerktypen kennt Navision eigentlich? Das sehen Sie im Programmverzeichnis:


Mit dem Startparameter NETTYPE geben Sie an, welches NetworkControll Navision starten soll.

NETB steht dabei für Netbios, frühere Windowsversionen und in Novell-Netzwerken eingesetzt.

TCPW steht für das Windows-TCP, wie es in Windows 3.11 eingeführt wurde. Das auch bei Windows for Networks 3.11 eingeführte Microsoft-eigene Netbios wird dabei auch über NETB angesprochen.

TCPN ist das TCP/IP, welches später von Novell eingeführt wurde.

Ich glaube, TCPI steht für das Token-Ring TCP von IBM (daher das I), aber da wird es schon eng in meiner Erinnerung.

Dann könnte TCPM für das DOS-TCP von Microsoft stehen.

Und: Ja! Das blaue Navision 3.5x lief tatsächlich unter OS/2 (die ersten Financials und Atain-Versionen auch! Dafür war die NAVI2.exe), unter DOS (dafür war dann die NAVI.exe) und unter Windows (NAVIN.xe).

Unter Windows konnte wahlweise die NAVI oder die NAVIN.exe eingesetzt werden. N stand dabei, glaube ich, für NewTechnology, also Windows NT, unter dem das blaue Navision auch schon immer lief! Dort griff es auf den DOS-Extender zu, welches praktisch unbegrenzten Speicherzugriff (RAM) erlaubte und damit deutlich komplexere Programmabläufe.

Zur Erinnerung: Navision hatte damals noch keinen echten Object-Cache, wie er mit Navision 2.01 eingeführt wurde. JEDES Objekt wurde zur Laufzeit vom Server geholt (naja, ein paar KB Cache waren da schon…) und dann im Speicher ausgeführt.

Kleinere Datenschlüssel komprimieren

Markieren Sie nun erst einmal viele kleine Tabellen mit STRG+F1:

Dann setzen Sie bitte den Markierungsfilter mit STRG+F7    STRG+F7     STRG+F1    ESC.

Dann rufen Sie bitte Komprimieren auf:

und die Frage bitte mit Ja beantworten.

Das bitte nacheinander machen bis alle „Kleinen“ Tabellen komprimiert sind.

Man kann sehen, dass die Prozent unter Nutz (Nutzung) nun bei einigen Tabellen höher sind. Damit ist gleichzeitig ein wenig mehr Platz in Ihrer Datenbank, weil weniger „Luft“ gespeichert wird.

Sie können von mal zu mal mutiger werden und immer größere Tabellen mit aufnehmen.
Wenn Sie zu mutig waren, teilt Ihnen das Navision mit:

Sie können dann einfach die größte Tabelle mit STRG+F1 aus der Markierung rausnehmen.

Danach löschen Sie die Markierung und machen mit anderen Tabellen weiter. Das ist eine Sisyphusarbeit.

Ignorieren Sie Tabellen mit 1 oder 2 Sätzen, da lässt sich nichts komprimieren.

Mehrere hintereinander kommende Tabellen können Sie auch mit STRG+F7 auf der Spalte Numm (Nummer) filtern. Das ist manchmal eleganter als der Satzfilter.

Oder mit z.B. 114|115|124|125

Sie kommen auf diese Weise NICHT an die großen Tabellen ran, z.B. Warenposten!
Aber Sie schaffen so viel Platz, dass Sie meine Löschfunktion importieren und laufen lassen können.

Datenlöschung einlesen

Objekteinlesung unter NAvision 3.56 Euro (blaue Version)

Nun diese Stapelverarbeitung aufrufen:

Stapelverarbeitung für Navision 3.56 Euro (blaue Version) löscht ohne AL Schlüssel (Navi_Inf.dat) alte Daten aus der Datenbank. Euro-Konvertierungshistorien, alte Belege
Diese Stapelverarbeitung unter Navision 3.56 Euro (blaue Version) löscht Ihnen auch ohne einen AL Schlüssel (Navi_Inf.dat) alte Daten aus Ihrer Datenbank. Nicht mehr benötigte Euro-Konvertierungshistorien, alte (älter als 10 Jahre) Belege.

Diese Stapelverarbeitung bestätigt immer wieder die Datenbank. Dadurch kann sie massenhaft Daten löschen, ohne dass es zu einem „Nicht genug Speicher“-Fehler kommt.

Der Filter für „Älter 10 Jahre“ ist fest einprogrammiert und dynamisch. Diese Stapelverarbeitung kann also jedes Jahr erneut aufgerufen werden und sie löscht dann genau das abgelaufene Jahr.

Die Eurokonvertierung ist natürlich nach dem ersten Lauf weg. Die Daten hat sowieso niemals jemand benötigt.
Beim ersten Lauf wird daher am Ende das System noch „wie eingefroren“ wirken, aber Navison arbeitet auch dann noch bis die Statuszeile Vollzug meldet:

In der Datenbank ist nun deutlich mehr freier Speicherplatz.

Vorher und nachher:

Daten komprimieren

Beim Komprimieren von Daten werden Datensätze so zusammengefasst (summiert), dass sich die Ergebnisse daraus (Artikelbestände, Sachkonten oder Debitoren- oder Kreditorensalden, Offene Posten) nicht verändern. Allerdings gehen natürlich Einzelinformationen, also einzelne Rechnungsnummern, Buchungsbeschreibungen etc. verloren. Das ist -am Ende der 10 jährigen Aufbewahrungspflicht- durchaus zu verschmerzen.

Es gelten auch für die blauen Navision Version die gleichen Regeln wie für Financials Attain und Navision bzw. Business Central: Daten, welche Sie EDV-mäßig vorhalten, müssen Sie für eine GdPDU auch aushändigen! Schon das alleine spricht dafür, dass Sie alte Daten auch in dieser Navision-Version löschen. Zusätzlich ist heutzutage die DSGVO ein weiterer Grund dafür, Daten nicht unendlich vorzuhalten.

Einstellungen für die Mahnposten:

Einstellung für die Inventurposten:

Man kann dabei ruhig satt Felder in die Auswahl packen, Navision meckert schon wenn ein Feld verboten ist:

Dann dieses Feld einfach wieder rausnehmen. Irgendwann lässt sich die Komprimierung von Buchungen starten. Und die lief damals schon super schnell! Das ist alles Technik von 1993!

Komprimieren von Buchungen in der blauen Version von Navision 3.56
Komprimieren von Buchungen unter der blauen Version von Navision 3.56 Euro

In dem Fortschritt kann man dann sehen, wie Sätze bereinigt (Inhalte werden gelöscht) und teilweise auch ganze Sätze gelöscht werden.

Navision „kennt“ die Regeln für jede Tabelle, die es zum Komprimieren anbietet. Zur 100%igen Sicherheit sollte natürlich vorher eine Datensicherung gemacht werden, aber i.d.R. funktioniert dieses Komprimieren sehr zuverlässig.

Für die Warenposten, der dickste Brocken, habe ich hier die löschbaren Felder aufgeschrieben, sonst braucht man recht lange dazu per Try and Error:


Kreditorenposten:

(Die gleichen bei den Debitorenposten.)

Und noch die Sachposten:

Auswahlfelder zum Löschen beim Komprimieren von Sachposten unter Navision 3.53 DOS

Nachdem nun massiv Daten in der blauen Navision 3.56 EURO unter DOS gelöscht wurden, konnte das System nun noch weiter genutzt werden.

Wirklich blöd, dass hier das Systemhaus echt mit Ihrer NAVI_INF.dat / Ihrem AL-Schlüssel (Ja, unter diesem Navision hieß das auch schon AL!) so ein schönes System so hart schach-matt gesetzt haben.

Assembler-Debugger in der blauen Navision 3.56 Version

Weil ich gerade das System mal in meinen Händen hatte: Kennen Sie den ECHTEN C/AL Debugger von dem blauen DOS Navision?

navin.exe debug zum Aktivieren des Debugmodus. Normalerweise würde man hier noch mit keyboxpath den Pfad zur Lizenzdatei mit angeben.

Dann kann der Debugger hier aktiviert werden:

Aktivieren des Debuggers unter Navision 3.56 Euro Blau

Nun… diesen Teil des blauen Navision 3.56 Euro Debuggers kennt sicherlich jeder, der auch nur einmal mit dem System gearbeitet hat.

Aber… Nur eine Taste weiter liegt der wahre Debugger, mit dem echten Assemblercode, den Navision in Wirklichkeit ausführt!

Wie blöd: Unter Windows 10 funktioniert diese Tastenkombination leider nicht mehr. Ich werde mal ein blaues Navision unter HyperV/Dos installieren und die zugehörigen Screenshots nachreichen.

Screensaver in Navision 3.56 Euro

Den aktuellen Bildschirm, immerhin ein DOS-Bildschirm, konnte man mit dem integrierten Screensaver unter STRG+D abspeichern. Weiß noch jemand, wie man den Inhalt der damit gespeicherten Screenshotdatei wieder sichtbar machen kann? Das ist schon soooo lange her…

Der im blauen Navision 3.56 Euro integrierte ANSI Screensaver