Hallo Welt!
Ich habe folgendes Problem beim Versenden von gespeicheten Entwürfen.
Siehe erstmal Code und Beschreibung dann weiter unten.
On Error Goto Errorhandler
Dim session As New NotesSession
Dim db As NotesDatabase
Dim uiws As New NotesUIWorkspace
Dim uidoc As notesuidocument
Dim doc As notesdocument
Set db = session.CurrentDatabase
Set uidoc = uiws.CurrentDocument
uidoc.Document.SaveMessageOnSend = True
uidoc.Send
Set doc = uidoc.Document
Call doc.Save(True,False,True)
Dim ndc As NotesDocumentCollection
Set ndc = db.GetProfileDocCollection("Güllehülle")
Call ndc.AddDocument(doc)
doc.SaveOptions = "0"
Call uidoc.Close(True)
' ... hier noch x Zeilen weiterer Code - im wesentlichen mit der ndc - die aber für's Versenden nicht wichtig sind
Exit Sub
Das Problem ist, dass uidoc.Send nur dann funktioniert, wenn dieser Code aus einer Mail-DB aufgerufen wird in deren Vorgaben der aktuelle Benutzer als Besitzer eingetragen ist.
Wird der Code in einer DB ausgeführt in der der User nicht der Besitzer ist (also eine Mail DB die über entsprechende ACL Settings freigegeben ist) dann passiert beim Senden einfach gar nix...
In den Vorgaben wurde auch schon -Default- bei der Deligierung eingetragen, nutzt aber nix. Wird der Besitzer testweise geändert funktioniert das für den neuen Benutzer plötzlich, bis er eben wieder nicht mehr Besitzer ist.
Die Sache läuft auf unterschiedlichen Servern und mit unterschiedlichen Clients nicht.
Das ganze tritt wie gesagt nur mit gespeicherten Entwürfen auf. Wird ein Memo frisch erstellt und über den selben Code sofort versandt dann läuft alles wunderbar (für alle user).
Kann mir hierbei jemand helfen?
Vielen Dank schon mal.
Viele Grüße,
-Moritz
Hallo Bernhard,
sorry, so ganz verstehe ich Deinen Hinweis immer noch nicht.
In der Maske ist nur im QuerySend folgender (unveränderter) Code:
Sub Querysend(Source As Notesuidocument, Continue As Variant)
If(source.Document.HasItem("ActionInProgress")) Then
source.Document.RemoveItem("ActionInProgress")
End If
End Sub
Die Designer Hilfe sagt mir zur UIDoc.Send Methode auch nicht wirklich viel mehr außer "Mails a document"...
Mich irritiert die Tatsache, dass das alles funktioniert, sobald man Besitzer der DB ist...
Im Backend arbeiten würde bedeuten den "Send" Mechanismus den es schon gibt neu zu erfinden und das finde ich irgendwie nicht sinnvoll.
Hallo Bernhard,
ja das mit Send/save is so ne Sache, da verwechselt man gern mal was ;)
Fakt ist aber, dass beim Senden einer Mail (durch Klick auf dem Button) diese gespeichert wird. Da steht bei mir folgender Code drin:
MEMO_SEND:="1024";
FIELD ActionInProgress:=MEMO_SEND;
@If(@Command([FileSave]);@Command([FileCloseWindow]);@Return(""))
Evtl löst ein fieldSettext und anschließender save das Problem ja.
Ein $keepPrivate Feld kann übrigens das Senden auch verhinden. (Es sollte aber dann eine entsprechende Meldung kommen)
Was mich aber wirklich wundert (obwohl bei Notes wundert mich manchmal gar nichts mehr) ist, dass das Event beim uiDoc.send nicht ausgelöst wird und dass laut OP auch kein Fehler auftritt.
Gruß
Roland