OnChange => @MailSend ?

  • Hi,


    möchte beim Ändern eines bestimmten Feldes in einem Formular, dass einige Leute davon in Form einer eMail in Kenntnis gesetzt werden.
    Dafür gibt es ja für jedes Feld, den OnChange-Event, welcher allerdings leider keine FormelSprache unterstützt (warum eingentlich nicht?). Das ist insofern schade, das ich bisher ähnliche Probleme nur mit @MailSend gelöst habe (meiner Meinung nach eine recht gute & einfache Lösung). In der Hilfe bin ich zu dem Thema nur zu Notesdocument.send gekommen, wobei hier aber wohl gleich das ganze Dokument verschickt wird und sonst nix eingestellt werden kann. Hier im Forum gab es zwar Hinweise, dass auch richtige eMails per Script versandt werden können, allerdings immer nur Code-Ausschnitte - nie was ganzes...


    -Gibt es eine Alternative zu @mailsend in LotusScript?


    -Wäre es nicht weniger aufwendig, wenn man mit dem OnChange einen Agenten anstossen würde, der in Formelsprache die Sache erledigt? Wie kann man aus LotusScript heraus einen Agenten aktivieren?


    Grüsse

  • Deine Herangehensweise an das Problem solltest du grundlegend überdenken. Schließlich kann ein Nutzer einen Feldwert 100 mal ändern bevor er speichert (wenn er nicht sogar aufs Speichern verzichtet weil ihm etwas anderes eingefallen ist...)


    Das wären dann 100 sinnlose Mails...!


    Ich würde erst beim Speichern oder sogar erst noch später über einen Hintergrundagenten der alle geänderten Dokumente durchforstet die entsprechenden Mails generieren. Und dort funktioniert sogar problemlos Formelsprache.


    Ansonsten ist per Script eine Mail schnell erzeugt:


    Dim mail as NotesDocument
    mail.Form = "Memo"
    mail.SendTo = "Max Muster"
    mail.Subject = "Betreff...."
    Call mail.Send( False )

  • OnChange ist nur fuer JavaScript aktiv und somit auch nur im Web einsetzbar. (Die JavaScript - Moeglichkeiten des Notes - Client sind arg beschraenkt).
    @MailSend ist doch eine gute Wahl fuer deinen Fall..ebenso wie Notesdocuemnt.send.
    Das nur das ganze Dokument verschickt wird.....was auch sonst???
    Aber welches Dokument verschickt wird kannst Du festlegen. (Muss ja nicht das Uidocument sein)
    Problem waere nur..wie bekommt man raus, ob sich der Feldinhalt geaendert hat??
    Hierfuer kann man sich ein verborgenens Dokument erstellen - bei NichtRichtText - Feldern und beim Oeffnen des Doks den Feldinhalt des zu beobachten Feldes einlesen.
    Beim Speichern wird dann ueberprueft, ob die Feldinhalte noch identisch sind oder es Unterschiede gibt.

  • Hmm,


    den Aspekt hatte ich noch gar nicht berücksichtigt. Tatsächlich wäre die ganze Sache natürlich erst beim Speichern sinnvoll. Und beim QuerySave ist die Sache mit dem LotusScript dann eh fällig!


    Danke für den Hinweis...

  • ... wie du das mit dem versteckten Feld (nicht verstecktes Dokument, oder?) erklärt hast, werd ich das auch machen...


    Danke!


    PS: Gibt es inzwischen jetzt auch schon Toaster mit MailSend-Funktion? ;)

  • Zitat

    OnChange ist nur fuer JavaScript aktiv und somit auch nur im Web einsetzbar.


    Das ist definitiv falsch.


    Aber tut nix zur Sache da der Topicstarter ja nun sinnvollerweise darauf verzichtet...insofern wollt ich das nur allgemein anmerken.

  • Wie schon gesagt habe ich jetzt vor ein verstecktes Feld einzubauen das beim Öffnen des Dokuments den gleichen Wert zugteilt bekommt, wie das Originalfeld um feststellen zu können, ob es Änderungen gab.
    Mit einem zur Anzeige Berechneten Feld geht das nur teilweise, wenn ich "@If(@IsNewDoc; Nothing; OriginalField);" angebe, da das Feld ja auch bei einem Refresh dann aktualisiert wird, aber es ja eigentlich nur zum Öffnen neu berechnet werden sollte. Wie stell ich das am besten an?


    So wie ich das sehe gibt es nur den Initialize-Event für das Problem, der aber akzeptiert wiederrum nur mit NotesScript. Gut, wenn sich´s nicht vermeiden läßt mach ichs auch in der ScriptSprache, wollt aber vorher nochmal nachfragen...


    Grüsse