vielen Dank für Deine Aspekte, die mir bei meinen weiteren Überlegungen sehr hilfreich sind.
Ich habe daraufhin wie folgt etwas experimentiert.
- Eine neue Relation als Locktable angelegt in die beim Öffnen eines Datensatzes über eine Frontendfunktion die geöffnete Datensatz-ID, die ID des öffnenden Benutzers und der Zeitpunkt gespeichert wird sofern es hierfür noch keinen Eintrag gibt.
- Über eine weitere Frontendfunktion prüfe ich die Datensätze in dieser Locktable, das Ergebnis dieser Funktion steuert das Verhalten des Formulars
0=Kein Eintrag vorhanden --> wird neu angelegt
1=Eintrag des aktuellen Benutzers --> Formulareingaben offen app.block_inputs(true)
-1=Ein anderer Benutzer hat den Datensatz zur Bearbeitung geöffnet --> app.block_inputs(false)
Das funktioniert sogar :)

Was jetzt an dieser Stelle natürlich sehr nützlich wäre, wäre ein 4. Event welches beim schließen des Formulars gefeuert wird "Formular schließen" bzw. "Formulardatensatz schließen" um dann eine weitere Frontendfunktion zum Entfernen des Locktable Eintrages auslösen könnte oder welche Funktion auch immer.
Eine Aktion auf der Form zum "entsperren" funktioniert, birgt jedoch die Gefahr das ein Anwender das Formular normal mit "X" schließt, was aktuell ja nicht abgefangen wird.

Ich werde als nächstes den Weg über die Richtlinie gehen, da es hier auch direkt auf der für mich auch wichtigen API greift.
Um einen geöffneten Datensatz wieder frei zu geben, scheint es mir derzeit nur über eine zeitgesteuerte Funktion möglich zu sein. Zumindest für die Benutzer die über die WEB UI arbeiten. Über den nativen Windows-Client kann ich natürlich derlei Events allesamt nutzen und den Eintrag unmittelbar aus der Locktable entfernen wenn die Bearbeitung abgeschlossen wurde.
VG
Jörg