Sonderbehandlung der Verknüpfungen Für die Personalplanung gilt es als Schiefstand, wenn es Verknüpfungen in der Tabelle HRP1001 ohne die zugehörige Rückverknüpfung auf der Datenbank gibt. Wenn der Infotyp 1001 nun genau so wie alle anderen Infotypen behandelt würde, würde jedoch genau dies passieren. Daher wurde folgendes Vorgehen implementiert:
Es gibt eine Tabelle HRP1001_ARCH für die Rückverknüpfungssätze bereits archivierter und gelöschter Verknüpfungen. Diese wird von den normalen HR-Funktionen nicht beachtet. Die Struktur dieser Tabelle ist genau dieselbe wie die Struktur der Tabelle HRP1001 .
Beim Schreiben des Archivs werden die Verknüpfungen sowohl aus HRP1001 als auch aus HRP1001_ARCH gelesen. Auf dem Archiv heißt die Tabelle immer HRP1001 .
Beim Löschen der archivierten Verknüpfungen wird wie folgt vorgegangen:
Wenn sich die Verknüpfung noch in der Tabelle HRP1001 befindet: Die Verknüpfung wird aus HRP1001 gelöscht. Die zugehörige Rückverknüpfung wird nach HRP1001_ARCH kopiert und aus HRP1001 gelöscht.
Wenn sich die Verknüpfung nicht mehr in der Tabelle HRP1001 befindet: Die Verknüpfung wird aus HRP1001_ARCH gelöscht.
Damit erreicht man insgesamt, dass die Tabelle HRP1001 entweder immer beide Sätze zu einer Verknüpfung enthält oder keinen. Außerdem werden zu einem Datenobjekt immer alle Daten geschrieben, die zu diesem Objekt gehören. Dies ist unabhängig von der Reihenfolge, in der die Objekte archiviert und gelöscht werden.
Für Zugriffe auf ein Objekt reicht immer der Objektschlüssel. Man bekommt in den Datenobjekten zu einem Objekt auch immer die zugehörigen Verknüpfungen.