Domino 9 und frühere Versionen > ND8: Entwicklung
Dokument geht nicht wieder auf
bikerboy:
Hallo zusammen, ich sitze hier gerade wie der Ochs vorm Berge und komme nicht weiter.
Ich habe eine Maske in der man einen Text eingeben kann. Dieser Text wird in einen QR-Code per Java-Agent im Backend umgewandelt und das generierte Bild wird als Anhang an das Dokument gepackt. Dies hat ja zur Folge,dass ich das Dokument erneut öffnen muss, damit Notes mir diesen Anhang auch anzeigt. Also habe ich im QueryClose folgenden Code eingebaut
--- Code: --- If bReopen Then
Dim Workspace As New NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Set db = Source.Document.ParentDatabase
Set doc = db.GetDocumentByUNID(Source.Document.UniversalID)
Call Workspace.EditDocument(True,doc,False,"",False,False)
End If
--- Ende Code ---
Die Variable bReopen ist global definiert und ist auch immer richtig gesetzt.
Nun zu meinem Problem. Das funktioniert nur für neue Dokumente! Wenn die Aktion auf ein bestehendes Dokument ausführe, macht er das Dokument zu und dann war es das. Dieses Verhalten kenn ich so nicht. Da ich den Code schon oft so benutzt habe.
Bin dankbar für jeden Hinweis!
Axel:
Hast du dir den Code schon mal im Debugger angeschaut? sind alle Variablen so gesetzt wie sie sollen?
Axel
Peter Klett:
Habe es nicht ausprobiert, aber ich könnte mir vorstellen, dass es nicht funktioniert, solange Source noch existiert. Tritt das erst seit einer neuen Notesversion auf, oder waren es bisher immer nur neue Dokumente?
Probier es doch mal so:
If bReopen Then
Dim Workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim id As String
id = Source.Document.UniversalID
Delete Source ' Falls Delete einen Fehler bringt, nimm Erase, ich verwechsel die gerne
Set db = session.CurrentDatabase
Set doc = db.GetDocumentByUNID (id)
Call Workspace.EditDocument (True, doc, False, "", False, False)
End If
Du schließt das Dokument sicherlich aus einer Routine, warum öffnest Du es nicht in der gleichen Routine? Auch dort musst Du m.W. die Variablen/Objekte vor dem Öffnen löschen, damit das klappt.
marschul:
Da bOpen global deklariert ist: Hast Du zwischenzeitlich den kompletten ScriptCode der DB neu kompiliert (im Designer Werkzeuge\Lotus Script vollständig neu kompilieren)? Falls ja, geh mal in die Maske in die globalen deklarationen, füge an einer passenden Stelle ein Leerzeichen ein und speichere die Maske neu, damit das Masken-Script neu kompiliert wird. Muss ich hier auch immer machen, da diese Teile bei vollständigen Kompilieren "vergessen" werden.
bikerboy:
ach so ein Ärger.
--- Code: --- Option Declare
--- Ende Code ---
und dann hab ich eine durchgehend deklarierte Variable
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln