Domino 9 und frühere Versionen > ND6: Entwicklung

Refresh(True) führt zum Speicherkonflikt?

(1/1)

TomLudwig:
Hallo zusammen,

ich weiß nicht was ich falsch mache...


--- Code: ---Set uidoc = uiwork.CurrentDocument
Call uidoc.Save()
uidoc.EditMode = False
Set doc = uidoc.Document ' mark backend doc
noteid = doc.NoteID ' mark noteid
unid = doc.UniversalID ' mark unid

Set agent = session.CurrentDatabase.GetAgent("PrintOfferAUE")

If agent.Run(noteid) = 0 Then
uidoc.EditMode = True
Call uidoc.Refresh(True)
Else
Messagebox MsgErrorAgent, 64, MsgInformation
End If

--- Ende Code ---

Der Agent (JAVA) verändert im Backend das gerade geöffnete UIDoc und speichert dies dann. Um alles anzeigen zu lassen (Auch RichTextFelder) setzte ich ein Refresh(True) ab.

Leider bekomme ich nun folgende zwei Fehlermeldungen:
"Eine weitere Kopie dieses Dokuemnts wurde gespeichert, während Sie das Dokument bearbeiten. Sollen Ihre Änderungen auch als Konfliktdokument gespeichert werden?"
"Notes Fehler - Ein anderer Benutzer hat dieses Dokument zur gleichen Zeit geändert"


Natürlich hat sich das Dokument im BackEnd verändert. Deshalb möcht ichs ja auch im Frontend aktualisieren....


Danke vielmals.

P.S.: Es ist egal wie das Dokument im JavaAgenten gespeichert wird (.save(true), .save(false), usw.)

TomLudwig:
Nachtrag:
Wenn es möglich ist, möchte ich das Dokument nicht schließen und erneut öffnen.
Performance...

Tode:
Refrsh( True ) ist ein sehr "penetranter" Befehl, der im Hintergrund tatsächlich das Dokument neu speichert (nicht in allen Versionen, zwischenzeitlich war das mal anders, in aktuellen Versionen ist es wieder so), um die Änderungen sichtbar zu machen.

Du kommst also um ein Reopen NICHT drumrum. No Chance...

Tode

smoki:
Ich bin mir nicht ganz sicher... aber bringt es was, wenn du das Backend-Dokument vor dem Aufruf des Agenten explizit speicherst?

Gruss
Chris

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln