Das Notes Forum

HCL Notes / Domino / Diverses => Entwicklung => Thema gestartet von: Legolas am 21.12.21 - 10:51:49

Titel: HCL Locking Problem
Beitrag von: Legolas am 21.12.21 - 10:51:49
Hallo Forum,

habe ein Locking Problem, was ich nicht abfangen kann. Vielleicht hat jemand einen Ansatz hierfür:

Situation:
1)   Für die Anwendung ist das HCL Locking aktiviert.
2)   Ich öffne am Client 1 das Dokument1 im Lesemodus.
3)   Ich öffnen nun am Client 2 dasselbe Dokument1 und bearbeite und speichere es ab. (Verändere es also)
4)   Am Client 1 erstelle ich nun ein Responsedokument zum im Lesemodus geöffneten Dokuemnt1 was auch gleichzeitig eine Änderung in einem Feld des Dokument1 (ParentDok) mit sich bringt.

Nun das Problem:
Um die Änderung vom Response-Dok in das Dokument1 schreiben zu können prüfe ich, ob dieses gelockt ist. Wenn nein, schalte ich das Dokument1 in den Edit-Mode (Somit wird es gelockt) um zu verhindern, dass zufällig parallel jemand das Dokument1 bearbeitet.

Mache ich das wie beschrieben kommt jedoch die HCL Meldung, dass das Dokument1 inzwischen im Hintergrund verändert wurde (Vom Client2). Das ist soweit ja auch korrekt.

Nun die Frage dazu:
Kann ich irgendwie die Info erhalten, dass ein im UI geöffnetes Dokument1 bereits im Hintergrund verändert wurde?
Ich kann ja nicht in den Edit Mode umschalten, um ein Reload durchzuführen, da sonst die HCL Meldung kommt, dass das Dokument1 aufgrund einer Änderung im Hintergrund neu geöffnet werden muss.

Ich finde auch keine Möglichkeit die Fehlermeldung abzufangen um z.B. im Errorhandler dann das Ganze sauber klären zu können.

Ist das überhaupt möglich?

 
Grüße
Bernd

PS.
Ich wünsche allen ein frohes Weihnachtsfest, einen guten Rutsch in's neue Jahr, viele spannende Notes Projekte und vor allem Gesundheit!
Titel: Re: HCL Locking Problem
Beitrag von: jBubbleBoy am 21.12.21 - 11:59:26
Ich würde das geöffnete Dokument erneut aus dem Backend mit getDocumentByUNID holen.
Darüber lassen sich dann auch Vergleiche, wie Änderungsdatum etc. auswerten.
Titel: Re: HCL Locking Problem
Beitrag von: jBubbleBoy am 21.12.21 - 12:03:34
Oder alternativ nur den "Bearbeiten" Modus zulassen  ;D
Titel: Re: HCL Locking Problem
Beitrag von: Legolas am 21.12.21 - 13:28:45
Hi,

ja klar, das sind alles Möglichkeiten die aber das eigentliche Problem umgehen.

Ziel soll eben sein, nicht in den Edit Modus wechseln zu müssen wenn das nicht notwendig ist.
Ich habe gehofft, dass man eine Backendänderung evtl. per Befehl auslesen kann oder dass man die Fehlermeldung von HCL abfangen kann.

Wenn das nicht geht, werde ich das Dokument in den Edit Mode umschalten und nur dann zulassen, dass Antweortdokumente erzeugt werden.

Grüße
Bernd
Titel: Re: HCL Locking Problem
Beitrag von: Werner Götz am 22.12.21 - 07:37:13
Zu Deiner Frage kannst Du Folgendes abprüfen:
Code
Evaluate(|@GetDocField("| & <UNID Deines Dokuments> & |"; "$Revisions")|

Und den zurückgegebenen Wert mit Deinem Stand von $Revisions vergleichen:
- gleich viele Einträge?
- letzter Eintrag jeweils gleich?
- Achtung: Hierbei auch berücksichtigen, dass das Dokument noch kein Feld $Revisions haben kann.

ABER: Was machst Du denn, wenn das Dokument noch gelockt ist vom Client 2?

Wie kommt das Feld dann in das Dokument?

-Werner
Titel: Re: HCL Locking Problem
Beitrag von: Legolas am 22.12.21 - 09:48:56
Hallo Werner,

danke für die Rückmeldung.
Ich werde mal testen, ob das alle so funktioniert.

Am einfachsten wäre es natürlich gewesen, wenn das UI Dokument eine Funktion hätte, die bei der Abfrage ob sich das Dokument inzwischen im Hintergrund geändert hat, ein True oder False zurückliefert.

Grüße
Bernd