Wir haben einen Agenten der die einfache aktion
Mailsenden benutzt..und zwar immer wenn ein dokuemt geändert oder neu ist. es kommt auch eine Mail, aber der absender ist der Sysadmin, der damit nun nichts zu tun hat. bekommt man es hin das der Autor des Dokumentes der absender ist? oder ist das dann formelsprache oder lotusscript?
Agent Mailsenden
- pegasus
- Erledigt
-
-
Dafür brauchst du LotusScript.
Mit Einfachen Aktionen ist immer der Unterzeichner des Agenten der Absender
-
ok..lotusscript....aber kann ich dann einfach diesen Agenten belassen? und lotus script verwenden?
und wie bekomme ich es hin das der Autor des dokumentes
als absender drinsteht? -
Nein, den musst du komplett neu schreiben, da du Lotus Script nicht mit einfachen Aktionen kombinieren kannst.
Ansonsten benutze mal die Suche. Das wurde hier schon häufiger abgehandelt
-
okk..hab mal im forum gesucht, aber das ergab bisher keinen richtigen treffer...einfache aktion woltle ich auch rausnehmen..ich meinte den agenten an sich..darf der so bleiben und in dem agenten dann statt der einfachen aktion ein lotusscript, oder muss ich in der datenbank im querysave ein script schreiben?
Mir wäre natürlich am liebsten ich darf den agenten so belassen.
kann der dann auch eine mail senden mit dem autor des dokumenten
als absender? -
-
ne, da hab ich schon geschaut, aber da steht ja drin wie ich
eine fremde statische ID eintrage...aber ich will doch den autor des aktuellen dokumentes eintragen. Weiss denn der agent von dem aktuellen autor wenn er loslegt?es ist ja kein Lotus script innerhalb des Dokumentes
-
Der Autor oder der aktuelle Bearbeiter?
Eventuell hast du in der Maske ja ein Feld, in welchem ja genau diese Information enthalten ist.
Ansonsten schau Dir einmal das NotesSession-Objekt an
(CommonUserName, UserName, EffectiveUserName)Andreas
-
Falsch.
Wenn du dir den Thread genau angeschaut hättest dann hättest du gesehen dass dort zwei Möglichkeiten aufgelistet sind dies innerhalb eines Script Agenten ohne eine fremde statische ID zu verwenden.
Natürlich weiss das der Agent, denn sonst würde er ja nicht loslaufen.
Siehe Eigenschaft UnprocessedDocuments
-
ne..ich meinte doch das der agent losgelöst vom dokument etwas sendet, "nachdem Dokument erstellt oder geändert wurde"
wie bekomme ich dann in dem agenten die informationen des
"akuell bearbeiteten dokumentes" heraus? -
Ich kann mich nur wiederholen:
Siehe Eigenschaft UnprocessedDocuments
-
Ok....bin erstmal ein ziemliches stück weitergekommen.
Jetzt stosse ich wohl auf "basics"
Ich möchte an das Subject zum Mailsenden noch einen Text
davorpappen. Er sagt mir aber "type mismatch"Dim session As New NotesSession
Dim current As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim mailbox As New NotesDatabase("","")
Dim maildoc As NotesDocument
Dim sendto, subject, sendas, message As String
Set current = session.CurrentDatabase
Set collection = current.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
sendas = doc.GetItemValue("From")
subject = "[Schwarzes Brett] " + doc.GetItemValue("subject")
Set doc = collection.GetNextDocument(doc)
Wendgemeint ist die Zeile :
subject = "[Schwarzes Brett] " + doc.GetItemValue("subject")mit Cstr(doc.GetItem... funktioniert es auch nicht.
Aber subject ist doch ein String. (laut DimAnweisung)
was mache ich falsch? -
doc.getItemValue liefert dir immer einen Array zurück.
Wenn du weisst dass dort nur ein Text drinsteht musst du noch eine (0) dahintersetzen, d.h. doc.GetItemValue("Feldname")(0).
Dann kannst du damit wie mit einem String arbeiten -
Jawohl, das hat geholfen.
Was mir noch fehlt ist der doclink zum aktuellen Dokument
ich versuche das gerade mit
Set rtitem = maildoc.CreateRichTextItem( "Body" )
Call rtitem.AppendText( message )
Call rtitem.AppendDocLink( doc, current.Title)aber dann macht er mir keinen doclink zum aktuellen dokument, sondern garnichts.
welches systemfeld muss man denn nutzen aus einem dokument um es als Doclink zu benutzen?
-
Wie du es machst ist genau der richtige Weg.
Allerdings wird ein DocLink nur innerhalb von Notes verfügbar sein.
Geht die Mail nach extern oder intern ?
Über Notesrouting oder SMTPRouting ? -
das ist nur intern.....nur es erscheint kein doclink in der email
wobei doc das aktuelle document ist
AppendDocLink(doc, "Test") birngt keinen doclink in das Richtextfeld hinein
Set rtitem = maildoc.CreateRichTextItem( "Body" )
Call rtitem.AppendText( message )
Call rtitem.AppendDocLink( doc, "Test")ich schicke die ganze sache zum testen erstmal exklusiv an mich selber...aber in notes steht kein doclink
-
Gibt es eine Default Ansicht in der Datenbank ?
Ist das Dokument schon gespeichert bevor du den Doclink anhängst ?
-
Hier mal der ganze agent.....eine abwandlung von eknori
Dim session As New NotesSession
Dim current As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim mailbox As New NotesDatabase("","")
Dim maildoc As NotesDocument
Dim sendto, subject, sendas, message As String
Set current = session.CurrentDatabase
Set collection = current.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
sendas = doc.GetItemValue("From")
subject = "[Schwarzes Brett] " + doc.GetItemValue("subject")(0)
Set doc = collection.GetNextDocument(doc)
Wend
sendto = "Pegasus"
message = "Bitte diesen Link anklicken um zu dem Dokument zu kommen"
' get handle to mail.box on the users current mail server
Set current = session.CurrentDatabase
Call mailbox.Open( current.server, "mail.box" )
' Create a new document in the servers mail box
Set maildoc = mailbox.CreateDocument
maildoc.Form = "Memo"
maildoc.From = sendas
maildoc.SendFrom = sendas
maildoc.SendTo = sendto
maildoc.Recipients = sendto
maildoc.Subject = subject
Set rtitem = maildoc.CreateRichTextItem( "Body" )
Call rtitem.AppendText( message )
Call rtitem.AppendDocLink( doc, "Test")
maildoc.PostedDate = Now()
maildoc.ComposedDate = Now()
maildoc.DeliveredDate = Now()
maildoc.Principal = sendas
maildoc.EncryptOnSend = False
Call maildoc.Save( True, False )
End Sub -
Und was ist mit meinen beiden Fragen ?
-
das dokument ist schon gespeichert momentan, weil ich dem agent sage "alle ausgewählten Dokumente"
eine Defaultansicht gibt es...."alle dokumente"