Du brauchst also doch so etwas, wie unsere dynamischen Doklinks. Das ist auch nicht so kompliziert, wie Du vermutest (für Mitleser, die vielleicht unsere allgemeingültigen dynamischen Doklinks kennen: es gibt bei uns hausintern eine Variante, die speziell auf unser System gebaut und dadurch einfacher in der Bedienung ist, die folgende Beschreibung gilt dieser).
1. Zur Versionierung der Dokumente
Jedes Dokument hat ein Feld Dokument1, in diesem steht die UniversalID der ersten Version eines Dokuments. Dieses Feld ist der eindeutige logische Schlüssel zu einem Dokument, unabhängig von der Version. D.h. alle Versionen eines Dokuments (z.B. der Arbeitsanweisung A) besitzen den gleichen Wert in Dokument1.
Jedes Dokument hat ein Feld Status, in dem erkennbar ist, ob das Dokument aktiv ist. Es kann nur ein aktives Dokument zum Dokument1 geben, das ist die aktive Version. Ist das Dokument nicht mehr gültig (also ohne gültigen Nachfolger), gibt es eben keines mit aktivem Status.
2. Der dynamische Doklink
In einer separaten Datenbank (=DDL) (man kann das auch in die Datenbank selbst mit einbauen, wenn man es nur für diese haben will. Man beraubt sich dann aber der Möglichkeit, das Verfahren mehrfach einsetzen zu können), gibt es Dokumente, die die ReplikID und die UniversalID aus Dokument1 besitzen. Beim Öffnen dieser Dokumente suchen die in der angegebenen Datenbank nach dem aktiven Dokument mit passendem Dokument1 und schließen sich selbst. Wird das Dokument gefunden, wird es geöffnet, sonst eine entsprechende Fehlermeldung ausgegeben.
3. Erstellen eines dynamischen Doklinks
In den Dokumenten (also z.B. den Arbeitsanweisungen) gibt es eine Aktion zur Erstellung eines dynamischen Doklinks. Diese sucht in der DDL nach einem Dokument für die aktuelle ReplikID und das aktuelle Dokument1, gibt es das noch nicht, wird es erstellt. Der Doklink auf dieses Dokument in der DDL wird in die Zwischenablage kopiert und kann dann wie ein "normaler" Doklink eingefügt werden.
Es wird also ein Doklink auf ein Dokument genutzt, das "weiß", welches Dokument geöffnet werden soll. Dadurch wird der Link dynamisch. Der Benutzer muss wissen, wann er einen festen Link verwendet, der auf genau diese eine Version des Dokuments verweist (das ist dann ein üblicher Doklink), und wann einen dynamischen, um die jeweils aktuelle Version eines Dokuments zu verknüpfen.
Mit diesem Verfahren brauchen wir auch keine UniversalIDs zu ändern, in denen ja auch die Information über das Erstelldatum enthalten ist. Ich fände es schon nervlich, wenn ich einem Prüfer erklären sollte, warum ein Dokument vom 1.7.2018 schon 10 Jahre alt ist, nur weil ich, um einen Doklink aufrecht erhalten zu können, die UniversalID durchschleppe. Aber das ist ein anderes Thema ...