CoreEmailClasses:
Const MEMO_SEND = &h00000400&
Send Action:
MEMO_SEND:="1024";
FIELD ActionInProgress:=MEMO_SEND;
@If(@Command([FileSave]);@Command([FileCloseWindow]);@Return(""))
oder wissen die nix voneinander ?
das eine ist eine Script- Bibliothek, das andere eine Notes- Formel. Die wissen überhaupt nix voneinander...
Du brauchst dringend Basics, sonst wird Dein Stunt in die Hose gehen...
Tode
Das stimmt so nicht ...
Die wissen schon voneinander .... Das Feld wird gesetzt und in der Klasse wieder ausgelesen und gelöscht.
CoreEmailClasses Funktion ...
Public Function GetActionInProgressFromNoteItem()
If Me.m_noteMemo.HasItem(ITEM_ACTIONINPROGRESS) Then
Call SetActionInProgress(Val(Me.m_noteMemo.GetItemValue(ITEM_ACTIONINPROGRESS)(0)))
Call SetOptionField(ITEM_ACTIONINPROGRESS,ITEM_REMOVE)
End If
End Function
Ok, weiter im Text:
Also PostSaveExtension sieht gut aus... scheint ja extra für sowas gemacht zu sein. (Auch wenn sich das jetzt laienhaft anhört)
Hier gibts ja sogar das uidoc und lngActionInProgress um Statusahängig arbeiten zu können.
Zu Eurer Beruhigung: Ansonsten ist das Template im Urzustand.
Was schonmal klappt, ist das Auslesen des "Haken"-Items und abhängig davon es zu löschen und zu speichern.
Allerdings haut das Öffnen des "Ablage-UIDocs" im aktuellen workspace nicht hin...
Hier mal mein Code :
Function PostSaveExtension(Source As notesUIdocument, lngActionInProgress As Long) As Integer
'These function are provided as event callouts, allowing easy flow control, extensions and modifications
If Source.Document.Ablage(0) = "1" Then
Dim wstemp As New NotesUIWorkspace
Dim uidoctemp As NotesUIDocument
Set uidoctemp = wstemp.ComposeDocument("","andereDB.nsf","EMailAblage")
Source.Document.Ablage = ""
Call source.Document.Save(True,False)
End If
PostSaveExtension = True
End Function
Wahrscheinlich kann ich hier nicht - wie sonst in eigenen Anwendungen - mir eine Workspace-Variable holen ...
Es muss wohl irgendwie im Context der CoreClasses ablaufen.
Ich gebe ja zu, dass dies das erste Mal ist, dass ich mich in eine so komplexe Anwendung "einklicke".
Aber irgendwann ist immer das erste Mal. :)
Juchu,
es klappt jetzt :) (Bierpause hat weitergeholfen)
So hats hingehaun:
- globale Variable "Ablagedoc" im Memo des Templates angelegt
Dim Ablagedb As NotesDatabase
Dim Ablagedoc As NotesDocument
- Im Postsend-Event Haken abgefragt und dann im Backend Ablagedoc in Ablagedb erstellt :
If Source.Document.Ablage(0) = "Ablage" Then
Set Ablagedb = New NotesDatabase("","Ablagedb.nsf")
Set Ablagedoc = New NotesDocument(Ablagedb)
Ablagedoc.form = "EMail"
Ablagedoc.EMail = source.Document.Sendto
Ablagedoc.Name = source.Document.subject
Ablagedoc.Body = source.Document.Body
Call Ablagedoc.Save(True,False)
End If
- Dann im Queryclose auf Instanz von Ablagedoc geprüft und wenn vorhanden, dann Doc ins UI bringen
If Not Ablagedoc Is Nothing Then
Dim Ablageuiws As New NotesUIWorkspace
Dim Ablageuidoc As NotesUIDocument
Set Ablageuidoc = Ablageuiws.EditDocument(True,Ablagedoc,False,,True,True)
End If
Das gute daran ist, das Item hinterm Haken muss gar nicht gelöscht werden! Wird ja eh nur im Postsend abgefragt und da stoert es nach dem Versenden auch nicht mehr. Selbst wenn die Mail aus "Sent" später nochmal geöffnet wird zum lesen und dann wieder geschlossen: Das Ereignis tritt ja nicht ein. Im Gegenteil, es ist sogar ein Feature, da man so sofort erkennt, dass die Mail abgelegt wurde. (So verkauf ich dass zumindest)
Also vielen Dank für die großartige Hilfe... it löppt