Domino 9 und frühere Versionen > ND8: Entwicklung

Dokument geht nicht wieder auf

(1/2) > >>

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