Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: bikerboy am 16.05.11 - 16:58:29

Titel: Dokument geht nicht wieder auf
Beitrag von: bikerboy am 16.05.11 - 16:58:29
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

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!
Titel: Re: Dokument geht nicht wieder auf
Beitrag von: Axel am 16.05.11 - 18:57:56
Hast du dir den Code schon mal im Debugger angeschaut? sind alle Variablen so gesetzt wie sie sollen?

Axel
Titel: Re: Dokument geht nicht wieder auf
Beitrag von: Peter Klett am 17.05.11 - 08:00:07
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.
Titel: Re: Dokument geht nicht wieder auf
Beitrag von: marschul am 17.05.11 - 08:47:02
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.
Titel: Re: Dokument geht nicht wieder auf
Beitrag von: bikerboy am 17.05.11 - 13:46:50
ach so ein Ärger.

Code
 Option Declare 

und dann hab ich eine durchgehend deklarierte Variable
Titel: Re: Dokument geht nicht wieder auf
Beitrag von: bikerboy am 17.05.11 - 14:05:51
Ärgerlich zu früh gefreut, wieder das gleich...

Neues Dokument -> Dokument geht wieder auf und alles sieht aus wie gewünscht

Bestehendes Dokument -> Dokument bleibt geschlossen