Domino 9 und frühere Versionen > ND6: Entwicklung

Call uidoc.Reload - Aktualisieren eines Doks im Lesemodus

<< < (12/13) > >>

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