Agent Mailsenden

  • 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?

  • 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?

  • 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)
    Wend



    gemeint 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?

  • 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

  • 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