Hallo,
ich habe hier ein Problem, an dem ich derzeit nicht weiterkomme.
Über einen Button innerhalb einer Maske starte ich einen Scriptcode.
Dieser Code erzeugt ein neues Object einer Klasse.
Im Konstrukor der Klasse wir ein Parameterdokument angelegt und ein Agent aufgerufen.
Dieser Agent wird mit "RunOnServer" aufgerufen und er bekommt die NoteId des erzeugten Parameterdokumentes übergeben.
Der Agent sucht in einer anderen Datenbank nach einem bestimmten Dokument (die Angaben dazu, wurden im Parameterdoc übergeben).
Wird das Dokument gefunden, so wird mittels CopyAllItems das Dokument in das Parameterdoc kopiert und vorhandene Leserfelder entfernt. Das Parameterdoc wird gespeichert und der Agent beendet.
Dies ist notwendig, da nur der Agent alle Dokumente in der entsprechnden Datenbank sehen kann. Die Dokumente sind mit Leserfeldern versehen!!!
Nachdem der Agent beendet wurde, wird das Parameterdokument ausgelesen und die Felder in private Variablen der Klasseninstanz kopiert. Danach wird das Parameterdokument gelöscht. Dazu wird ein weiterer Agent verwendet, der Löschrechte in der aktuellen Datenbank hat. (Der Anwender hat keine Löschrechte!!)
Nach der Initialisierung kann mit dem erzeugten Objekt gearbeitet werden.
Die Klasse hat eine Funktion ExtractAttament, die einen evtl. vorhandenen Anhang aus dem ermittelten Dokument lösen soll. (Dieses Dokument ist ja jetzt nur noch in der privaten Klassenvariable prv_FoundDoc vorhanden!!)
Hier beginnt nun mein Problem:
Die Funktion deklariert eine Variable o_Attachment as NotesEmbeddedElement und initialisiert diese mit dem entsprechenden Item
Set o_Attachment = prv_FoundDoc.GetAttachment( Attachmentname )
, jedoch führt der Aufruf von
Call o_Attachment.ExtractFile( filepath )
zur Fehlermeldung"Invalid oder nonexisting document".
Hinweis: filepath und o_Attachment sind ordnungsgemäß gefüllt.
Frage:
Muss das derzeit nur im Speicher befindliche Dokument prv_FoundDoc (welches mit CopyAllItems aus dem Parameterdoc erzeugt wurde und derzeit bewußt nicht gespeichert wurde!!) zunächst abgespeichert werden?
Dies wäre ziemlich übel, denn dann muss das in einer lokalen Datenbank passieren, das der Anwender keine Löschrechte in der aktuellen Datenbank hat.
Fällt Euch eine andere Möglichkeit ein, einen Anhang aus einem Dokument zu lösen, das nur "virtuell" im Speicher vorhanden ist?
Speedy