Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: buzzy666 am 02.04.07 - 09:20:06

Titel: ws.EditDocument => "Zielrahmen ist Vorläufer des Script-Objekts"
Beitrag von: buzzy666 am 02.04.07 - 09:20:06
Hi zusammen,
ist bekomme o.g. Meldung, wenn ich versuche, von einer Aktion in einer Ansicht heraus ein neu angelegtes Dok als UIDoc zu öffnen.
Das Script läuft zuerst auf das in der Ansicht markierte Dok (via thisDB.unprocesseddocuments), liest da div. Sachen aus und erstellt im Hintergrund ein neues Dok, welches ich ganz am Ende mit ws.EditDocument öffnen will.
Und ebendiese Zeile bringt dann den Fehler.
Ich hab schon mal im Forum gesucht, aber ich hab nur 2 Threads aus 2003 gefunden, die beide auf "ws.SetTargetframe" abgezielt haben, aber das verwende ich garnicht.

Hat jemand nen Tip für mich, woran das liegen kann, bzw. wie ich das neue Dok auf kriege?

Danke & Gruß,
Buzzy
Titel: Re: ws.EditDocument => "Zielrahmen ist Vorläufer des Script-Objekts"
Beitrag von: m3 am 02.04.07 - 09:23:32
Das Backend-Dokument gespeichert, bevor Du es öffnest?
Ansonsten zeig mal ein bissl Code her.
Titel: Re: ws.EditDocument => "Zielrahmen ist Vorläufer des Script-Objekts"
Beitrag von: buzzy666 am 02.04.07 - 10:42:20
m.E. müsste alles passen.

   Dim mailDoc As New notesdocument(thisdb)
      
   Call mailDoc.Save(True,False)
   mailDoc.form = "Mail"      
   mailDoc.principal = "Hotline"
   mailDoc.MainID = thisdoc.UNID(0)
   mailDoc.KrisenNr = thisdoc.KrisenNr(0)
      
   mailDoc.sendto = trimmedMelderunde

   [Mail befüllen]
   
   Call mailDoc.Save(True,False)
   Dim mailUI As notesuidocument
   Set mailUI = ws.EditDocument(True,mailDoc,False,,True)   

Der Code ist an sich der gleiche, den ich an anderer Stelle erfolgreich aus einem Dokument aufrufe (also das, welches hier das thisdoc ist).

Der einzige Unterscheid ist, dass die Ansicht, aus der ich den Code aufrufe, in einem 3-teiligen Frame eingebaut ist...

Danke & Gruß,
Buzzy
Titel: Re: ws.EditDocument => "Zielrahmen ist Vorläufer des Script-Objekts"
Beitrag von: m3 am 02.04.07 - 11:09:53
Hüstel. Die Designer-Hilfe zum Thema "EditDocumen" hast Du schon gesehen?

Zitat
This method raises the error lsERR_LSXU13_ANCESTOR_TARGET_FRAME (4426) if it attempts to return a NotesUIDocument object for a target frame that is the ancestor of the frame containing the code. You can suppress returning the object by specifying returnNotesUIDocument as False. The document opens in the target frame but you do not have access to its NotesUIDocument object. Calling this method as a subroutine does not suppress returning the object; you must specify returnNotesUIDocument as False.
Titel: Re: ws.EditDocument => "Zielrahmen ist Vorläufer des Script-Objekts"
Beitrag von: buzzy666 am 02.04.07 - 12:59:49
Najaaaa, aber dieser Code (in der gleichen Ansicht) tut, was er soll:

   Dim ws As New notesuiworkspace
   Dim s As New notessession
   
   Dim thisdb As notesdatabase
   Set thisdb = s.Currentdatabase
   
   Dim doc As New notesdocument(thisdb)
   doc.form = "Mail"
   doc.sendto = "Hotline"
   doc.subject = "TEST"
   
   Call doc.Save(True,flase)
   
   Dim uidoc As notesuidocument
   
   Set uidoc = ws.EditDocument(True,doc,False)

Komischerweise funktioniert nun auch der andere Button, obwohl ich nix mehr dran gemacht habe  ???

Merkwürdig...

Gruß,
Buzzy
Titel: Re: ws.EditDocument => "Zielrahmen ist Vorläufer des Script-Objekts"
Beitrag von: m3 am 02.04.07 - 13:14:08
Nochmals. Vergleiche
Code
EditDocument(True,mailDoc,False,,True)
mit
Code
EditDocument(True,doc,False)

Der Unterschied? Im zweiten Fall verlangst Du NICHT, dass er ein NotesUIDocument zurückliefert (der letzte "True"-Parameter) -- und das Script funktioniert!
Zufall? Nein. Der Code verhält sich genau so, wie in der Doku beschrieben.
Da ist überhaupt nix komisch daran.
Titel: Re: ws.EditDocument => "Zielrahmen ist Vorläufer des Script-Objekts"
Beitrag von: buzzy666 am 04.04.07 - 13:14:34
D'OH!
Ich wollte mit dem letzten "true" eigentlich erreichen, dass er ne neue Notesinstanz öffnet - allerdings hab ich mich in der Position des Parameters vertan - ich wollte
EditDocument(True,mailDoc,False,,,True) schreiben...

Danke & Gruß,
Buzzy