Introduction
In Navision 3.5x under DOS (or Windows in the text window) it may be necessary to clean up the database of old corpses. However, this is - in part - much more complex than in the newer Windows versions.
With these instructions here and a little batch processing from me (please contact me) it will be very easy.
By the way: I am also available for an update from the blue version of Navision (Navigator, Avista) 3.56 to the current version ... although you can still work really well with this DOS version today. Even under Windows 10 64 bit, without a virtual machine, just start like that!

It sounds unbelievable, but the "Blue Navison Version" introduced in 1993 (If you're wondering where the name comes from? Take a look at the screenshot 🙂) still runs today under Windows 10 Pro 64 Bit without complaint. And even with NAVIN.EXE as a real 32-bit application with plenty of RAM!
And if you ever get this error message:
The operating system cannot find the following file:
And there is nothing underneath, i.e. no file name: Then a recent Navision session is hiding and the database file can still access the associated database driver NAVI_DC2.exe (Navision Database Cache Control, all reading and writing accesses to the native database go through the cache controller, which then makes sure that data not available in RAM is fetched from the disk. That is why you can use two or more Navisions at the same time on one PC without a database server).
Restart the computer and everything will be fine.
A customer hadn't really taken care of the utilization of his database and was now faced with a database utilization that made further use impossible. But of course I am still happy to provide advice, customization, assistance and support for the blue version!
In principle, the Navision 3.56 (DOS / OS/2 / Windows) database is incredibly robust, but here the previous software provider (I suspect it was GWS from Münster, there were many references to "ELVIS", like one of their industry solutions was once called) really cause problems.
So bad that the logical data backup of Navision DOS 3.56 could no longer be used! At least not without a suitable AL key, the magical Navi_Inf.dat.
The database was pretty full. At that time the database was still paid for by size, a database extension can no longer be bought. If you try to read in the logical backup, you get this error message when sorting the tables:

*to enlarge the database file (not possible, because of the license)
*delete unnecessary data (receipts were not so easily deleted in the blue Navision!)
*to compress old entries (even for small compressions there was not enough space)
*to optimize the database (even for small optimizations there was not enough space)
That wasn't toooooo bad yet. Well, you can simply sort the tables afterwards using the batch processing "Sort all files".

But: not in the GWS ELVIS system!
Reason: The table "User data" is opened in function (today Codeunit) 1 by the system and is then blocked for the runtime of the Navision. OK, you can take it out quickly ... Nothing doing!

Object: 'Client' function.
This object was protected the last time it was saved. Only the program with the serial number 49-N3Axxxxx has access to this object.
The central start function of Navision was blocked by GWS (?)!
And so the table keys can only be reactivated individually with enormous effort via design / files / keys, given that you have a valid program license (navi_inf.dat) for the card design!
This customer didn't have that. So he would be helpless in the event of a database crash if he only had a logical backup.
And the logical backup is usually THE guarantee to get a Navision running again. It's pretty stupid what this programmer has come up with here.
We got the database up and running after all.
Preparation
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 start parameters
Die benutzbaren Parameter verrät das blaue Navision 3.5x DOS übrigens mit 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!!
Start parameter 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.
Compress smaller data keys


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.

Memorize data deletion




Nun diese Stapelverarbeitung aufrufen:


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:


Compress data
Beim Komprimieren von Daten werden Datensätze so zusammengefasst (summiert), dass sich die Ergebnisse daraus (Artikelbestände, Sachkonten oder Debitoren- oder Kreditorensalden, Offene Posten) not 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!

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:

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 the blue 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:



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…
