Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Hendrik T. am 03.07.12 - 09:14:21

Titel: Verständnisfrage zum Workspace
Beitrag von: Hendrik T. am 03.07.12 - 09:14:21
Schönen guten Morgen :)

Ich versuche zur Zeit ein Problem in einer DB zu lösen und bin dadurch auf eine allgemeine Verständnisfrage gestoßen:

Was macht eigentlich der Workspace? Wofür ist er da, was sind wichtige Eigenschaften, wie kann ich mit ihm arbeiten?

Hintergrund:
Ich bin in einem Dokument. Über eine Schaltfläche springe ich zu einem anderen Dokument (einfacher Agent der auf Basis von Feldinhalten des ursprünglichen Dokuments das passende Dokument sucht und letztlich über workspace.EditDocument das neue Dokument öffnet). Nun bearbeite ich dieses neue Dokument und speicher die Änderungen. Dadurch läuft ein Agent, der eine Email schickt mit den Änderungen und einem Dokumentenlink.

Allerdings bezieht sich der Agent noch auf das ursprüngliche Dokument. Ist auch deutlich beim Debuggen. Beim Klick auf "Speichern und Änderung bekannt geben" im neuen Dokument macht er erstmal am Anfang "Set udoc = workspace.CurrentDocument". Das Current Document ist für ihn allerdings noch das alte.... Warum?

Um dies zu verstehen scheint es sinnvoll, Allgemein den Workspace zu verstehen. Hat da einer Lust, mir vielleicht auf die Sprünge zu helfen bzw. kennt das Problem?

Vielen Dank und Gruß

Hendrik
Titel: Re: Verständnisfrage zum Workspace
Beitrag von: ghostmw am 03.07.12 - 09:26:10
habe grade mal in der Hilfe zu dem ws.EditDocument gesucht und folgendes gefunden unten im letzten Absatz.
Zitat

NotesUIWorkspace
Syntax
Set notesUIDocument = notesUIWorkspace.EditDocument( [editMode] , [notesDocument] , [notesDocumentReadOnly] , [documentAnchor$] , [returnNotesUIDocument] , [newInstance] )
Parameters
...
Usage
The current document may be either of the following:
The document that's currently open.
The document that's currently selected in a view or folder.
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.

Könnte vielleicht dein Problem erklären ?
Titel: Re: Verständnisfrage zum Workspace
Beitrag von: Hendrik T. am 03.07.12 - 09:39:41
Habs mal ausprobiert. Das tuts leider auch nicht.

Der Workspace und dadurch das Current Document bezieht sich auf das ursprüngliche Dokument. Habe auch mal getestet, zum neuen zu springen und danach das ursprüngliche zuzumachen. Und dann den Agenten starten. Da kommt er auch nicht mit zu Recht, er möchte dann den Agenten mit einem Current Document ausführen, wo es keins mehr gibt.... Wo ist das neue? In einem anderen Workspace, in keinem?
Titel: Re: Verständnisfrage zum Workspace
Beitrag von: Axel am 03.07.12 - 12:04:11
Schau dir mal in der Designer-Hilfe die Klasse NotesAgent und da speziell die Methode Run an. Da gibt's auch zwei Beispiele dazu und das zweite ist vom Prinzip her ungefähr das was du machen willst.

Hier übergibst du die NotesID des entsprechenden Dokumentes auf welches sich dann der Agent bezieht.

Axel