Autor Thema: ws.EditDocument => "Zielrahmen ist Vorläufer des Script-Objekts"  (Gelesen 4547 mal)

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
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

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Das Backend-Dokument gespeichert, bevor Du es öffnest?
Ansonsten zeig mal ein bissl Code her.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
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

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
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.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
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

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
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.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz