Domino 9 und frühere Versionen > ND6: Entwicklung
Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus
Thomas Schulte:
Hier kriegst du jetzt Code der genau so geschrieben ist wie es funktionieren muss wenn du das über eine Aktion in der Maske ausführen willst. Ohne Save und ohne Wechsel in den Edit Mode.
Sub Click(Source As Button)
Dim wksp As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As notesdatabase
Dim uidoc As notesuidocument
Dim doc As notesdocument
Dim docunid As String
Set db = session.CurrentDatabase
Set uidoc = wksp.CurrentDocument
docunid = uidoc.Document.UniversalID
Call uidoc.Close(True)
Set doc =db.GetDocumentByUNID(docunid)
Call wksp.EditDocument(False,doc,False,,True,True)
End Sub
Wenn das nicht funktioniert, dann solltest du ganz von vorne anfangen und alle möglichen Fehlerquellen die dir bereits genannt wurden, wie
- Arbeiten mit lokaler Replik oder auf unterschiedlichen Servern.
- Hat der andere das Dokument denn wirklich geändert und gespeichert.
Und so weiter, ich spare es mir das jetzt noch einmal aufzuzählen.
SYSTEMATISCH der REIHE nach untersuchen und als Fehlerursache ausschließen. Mit besonderer Berücksichtigung des Hinweises den dir der letzte Post vorher gibt.
TRO:
Schmeiß mal zwischendurch das doc weg und/oder setze mit GetDocumentByUNID ein anderes NotesDocument.
Sub Click(Source As Button)
Dim wksp As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As notesdatabase
Dim uidoc As notesuidocument
Dim doc As notesdocument
Dim Ndoc As notesdocument
Dim docunid As String
Set db = session.CurrentDatabase
Set uidoc = wksp.CurrentDocument
docunid = uidoc.Document.UniversalID
Call uidoc.Close(True)
' Achtung: manche berichten hier von einem Crash (auch in 6.5.5), der
' vermieden wird, wenn uidoc.close ohne True-Parameter aufgerufen wird
Delete uidoc
Set Ndoc =db.GetDocumentByUNID(docunid)
Call wksp.EditDocument(False, Ndoc,False,,True,True)
End Sub
DAU-in:
--- Zitat von: TRO am 29.10.08 - 12:47:24 ---Schmeiß mal zwischendurch das doc weg und/oder setze mit GetDocumentByUNID ein anderes NotesDocument.
--- Ende Zitat ---
äääääääääää
wo schmeisst du hier das doc weg?
und warum brauchst du ein NDoc bzw. warum deklarierst du ein doc zum NDoc dazu?
lotus blue:
Hallo Mädels :-P
also zunächst (zwar schon mal gemacht aber doppelt hält besser) nochmal alles kontrolliert.
Der selbe Server, die gleiche DB, nichts auf Lokal oder der gleichen.
Und sonst auch nix. Der zweite Benutzer ändert was und speichert es auch.
............usw.
Dann nochmal das Script von Thomas ausprobiert-> es tut sich nix. Script läuft ohe Fehler durch, ändert aber nix.
Zu guter letzt das Script von TRO ausprobiert und -->
:love: :love: :love: :knuddel: :knuddel: es funzt.
Danke TRO
auch wenn ich momentan gar nix mehr kapier und der Kopf raucht
TRO:
Hallo DAU-in,
mit der Zeile Delete uidoc wird das Frontend- und damit auch das Backend-Doc verworfen.
Bei dem GetDocumentByUNID wurde offensichtlich auf das BE-Doc im Cache/Hauptspeicher zurückgegriffen, was nach dem Delete unmöglich wurde.
Das mit dem Ndoc ist in diesem Fall überflüssig (bei mir brauch ich das schon, da ich meist parallel zum setzen des Frontend-Doc auch das BE-Doc in einer Variable ablege).
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln