@MailSend im Zusammenhang mit @If und Speichern und Schließen nur eingeschränkt möglich?

  • Hallo zusammen,


    eine kleine Info vorab: ich bin im Umgang mit dem Notes Designer kein Vollprofi, deswegen wird es für das gewünschte Ergebnis wahrscheinlich eine bessere Lösung geben. Wäre aber schon froh, wenn die von mir angestrebte Lösung umsetzbar ist.
    Ich zähle also auf eure Hilfe und bedanke mich schonmal vorab bei allen Helfern!


    Nun zu meinem Problem:


    Folgendes soll geschehen (siehe Bild für mehr Informationen):


    Wir setzen ein (oder mehrere) Haken bei den Sortimentsverantwortlichen und zusätzlich bei Mail an Buchhaltung = Ja.
    Die Funktion hinter "Speichern mit Mailversand" sieht wie folgt aus:


    »
    @Command([FileSave]);


    @If(ProSortimentsverantwortlicher = "Guss"; @MailSend("XXXX@XXXX.de";"";"";"Betreff XY";"
    Sehr geehrter Herr XXXX,
    ein neues Projekt, welches in Ihr Aufgabengebiet fällt, wurde angelegt.
    Das Projekt »"+ProProjektname+"« in "+ProOrt+" hat eine Gesamtsumme von "+ProGesamtsummeText+".
    Weitere Informationen erhalten Sie über folgenden Link.";"";[IncludeDoclink]);"");
    @If(ProSortimentsverantwortlicher = "Kabelschutz"; @MailSend("XXXX@XXXX.de";"";"";"Betreff XY";"
    Sehr geehrter Herr XXXX,
    ein neues Projekt, welches in Ihr Aufgabengebiet fällt, wurde angelegt.
    Das Projekt »"+ProProjektname+"« in "+ProOrt+" hat eine Gesamtsumme von "+ProGesamtsummeText+".
    Weitere Informationen erhalten Sie über folgenden Link.";"";[IncludeDoclink]);"");
    @If(ProSortimentsverantwortlicher = "Steinzeug"; @MailSend("XXXX@XXXX.de";"";"";"Betreff XY";"
    Sehr geehrter Herr XXXX,
    ein neues Projekt, welches in Ihr Aufgabengebiet fällt, wurde angelegt.
    Das Projekt »"+ProProjektname+"« in "+ProOrt+" hat eine Gesamtsumme von "+ProGesamtsummeText+".
    Weitere Informationen erhalten Sie über folgenden Link.";"";[IncludeDoclink]);"");
    @If(ProSortimentsverantwortlicher = "Pumpen"; @MailSend("XXXX@XXXX.de";"";"";"Betreff XY";"
    Sehr geehrter Herr XXXX,
    ein neues Projekt, welches in Ihr Aufgabengebiet fällt, wurde angelegt.
    Das Projekt »"+ProProjektname+"« in "+ProOrt+" hat eine Gesamtsumme von "+ProGesamtsummeText+".
    Weitere Informationen erhalten Sie über folgenden Link.";"";[IncludeDoclink]);"");
    @If(ProSortimentsverantwortlicher = "PE"; @MailSend("XXXX@XXXX.de";"";"";"Betreff XY";"
    Sehr geehrter Herr XXXX,
    ein neues Projekt, welches in Ihr Aufgabengebiet fällt, wurde angelegt.
    Das Projekt »"+ProProjektname+"« in "+ProOrt+" hat eine Gesamtsumme von "+ProGesamtsummeText+".
    Weitere Informationen erhalten Sie über folgenden Link.";"";[IncludeDoclink]);"");
    @If(ProBuchhaltung = "Ja"; @MailSend("XXXX@XXXX.de";Ersteller;"";"Betreff XY";"
    Sehr geehrter Herr XXXXX,
    es wurde ein neues Projekt mit erhöhter Gesamtsumme angelegt.
    Das Projekt »"+ProProjektname+"« in "+ProOrt+" hat eine Gesamtsumme von "+ProGesamtsummeText+".
    Weitere Informationen erhalten Sie über folgenden Link.";"";[IncludeDoclink]);"");


    @Command([CloseWindow])
    «

    Sprich hier wird einfach nur überprüft ob ein Haken gesetzt ist oder nicht, und wenn, dann geht eine Mail raus.


    Jetzt das Problem: Wird das Formular neu erstellt und mit dieser Funktion gespeichert geht keine Mail raus.
    Wird das Dokument aber nochmal aufgerufen und der Button "Speichern mit Mailversand" nochmal gedrückt,
    werden alle Mails verschickt. Also "funktionieren" die Formeln... zumindest zum Teil...


    Wieso das? Wieso werden die Mails nur dann verschickt, wenn das Dokument schonmal gespeichert und
    geschlossen wurde?


    Ich hoffe ich habe das Problem verständlich geschildert.
    Solltet Ihr weitere Informationen benötigen sagt einfach Bescheid.


    Vielen Dank und schönen Gruß


    Yannik

  • Schau mal in die Designer Hilfe:

    Zitat

    When the [IncludeDocLink] option is used, the database must have a default view defined, and the linked document must be in it. Otherwise, @MailSend will fail.


    Ich nehme an, die Ansicht aktualisiert sich nicht richtig, bzw. zeitnah genug. Oder aber das fragliche Dokument ist in der Default View nicht gelistet.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Wenn ich das richtig verstehe, müsste er die Mails dann aber gar nicht verschicken, oder?
    Der Mailversand, also die Formel, funktioniert ja - jedoch erst beim 2. mal öffnen und ausführen der Aktion.

  • Wie gesagt: ich halte es für möglich, dass es mit dem Ansichtsindex zu tun haben könnte. Ohne das genauer zu untersuchen, bleibt das aber nur eine Vermutung.


    Warum gehst du nicht daher und lagerst den Code zum Mailversand in einen Agenten aus, der auf neue Dokumente anspringt? Zwischen Speichern und Agentenstart dürfte genug Zeit vergehen, dass -bei geigneter Konfiguration der View- das Problem gar nicht erst auftauchen sollte. Es spielen da aber auch noch andere Faktoren mit rein, wie bspw. die Cache-Größe o.ä.


    Was hast du denn bereits überprüft und welche Fehlerquellen konntest du ausschließen?

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Auf dem Knopf Speichern mit Mail eine Flag im Dokument setzen.
    Im PostSave event auf dieses Flag prüfen und falls vorhanden ein Mail schicken.


    Mit Lotusscript sehr einfach zu realisieren.


    Gibt es nicht mit dem @Command([Filesave]) Probleme mit der Ausführungsreihenfolge? Soweit ich mich erinnere wird ein @command[Filesave] am Schluss ausgeführt, egal wo es im Code steht.

  • @RockWilder : Meinst du einen Agenten, der startet sobald man den Button "Speichern mit Mailversand" betätigt, oder einen, der jeden Tag zu einem bestimmten Zeitpunkt startet und auf bereits gesendete Dokumente prüft? Müsste mir dann mal zu Gemüte führen, wie die Syntax da aussehen soll...
    Einzige Fehlerquellen zum ausschließen sind die, dass es nicht an der Ausführungsreihenfolge liegen kann (s.u.) und die MailSend-Formel einen Fehler hat (sonst würde die Mail gar nicht rausgehen).



    @umeli : Eine Flag setzen und im PostSave event auf dieses prüfen?? Ich gebe zu, damit weiß ich nicht was du meinst :-/
    An der Ausführungsreihenfolge kann es eigentlich auch nicht liegen. Ich habe ja den Knopf "Speichern" der ein einfaches @Command([FileSave]) ausführt, danach "Speichern mit Mailversand" funktioniert auch nicht. Ich muss die Maske wirklich mit einem FileSave und CloseWindow schließen, erneut öffnen und dann nochmal "Speichern mit Mailversand" betätigen.


    Scheint doch meine Kenntnisse ein wenig zu überfordern...

  • Hallo,


    hat hierzu noch jemand eine Idee? Habe das gleiche Phänomen nun in einer anderen Maske - die Formel funktioniert, jedoch erst beim 2. mal Öffnen und Ausführen.
    In der neuen Maske habe ich eine Aktion (Speichern und Mail senden an...) mit Unteraktion eingefügt, die Formel hier lautet wie folgt:


    @MailSend("ABC@DEF.de";"";"";"Neue Umlagerung von "+UmlagerungVon+" nach "+UmlagerungNach+".";"Ein neuer Umlagerungswunsch wurde erfasst.
    Die Umlagerung soll von "+UmlagerungVon+" nach "+UmlagerungNach+" erfolgen.
    Weitere Informationen entnehmen Sie bitte dem folgenden Link:";"";[IncludeDoclink]);
    @Command([FileSave]);
    @Command([CloseWindow])


    Wie gesagt, hier das gleiche Problem wie bereits beschrieben, die Mail wird nicht beim Anlegen versendet, sondern erst dann, wenn das Dokument schon
    angelegt ist...


    Vielen Dank für eure Hilfe

  • Hallo Andreas,


    das habe ich mir auch schon gedacht, leider macht es keinen Unterschied ob ich das @Command([FileSave]) am Anfang der Formel unterbringe oder am Ende.
    Kann ich hier eine Reihenfolge der Durchführung festlegen, sprich 1. Speichern, 2. Mail senden und 3. Fenster schließen?


    Was ich allerdings noch merkwürdiger finde: Ich habe noch eine andere Maske mit @MailSend-Funktionen, die ohne Probleme funktioniert. Die Formel der
    funktionierenden Maske sieht wie folgt aus:


    @MailSend("ABC@DEF.de";"";"";"Neuer Besuchsbericht";"Es wurde ein neuer Besuchsbericht in der Datenbank hinterlegt.
    Von "+BesuchAnsprechpartner+" wurde die Firma "+BesuchGespraechspartner+" zum Thema "+BesuchThema+" besucht.
    Weitere Informationen erhalten Sie unter folgendem Link: " ;"";[IncludeDoclink]);
    @Command([FileSave]);
    @Command([CloseWindow])


    Also kein wirklicher Unterschied und das Teil funktioniert. Warum? Keine Ahnung...


    Danke dir schonmal.

    • Offizieller Beitrag

    Wird eventuell das Dokument an einer anderen Stelle gespeichert?


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hallo Dirk,


    die Datenbank ist die gleiche, lediglich eine andere Maske mit anderer Formel wird genutzt.
    Habe auch soeben noch eine Maske mit Mailbutton erstellt, auch hier funktioniert es wieder nicht...


    Was ich vergaß zu erwähnen:
    Ich habe auch schon zwei Buttons erstellt, den ersten nur mit @Command([FileSave]) und im Anschluss
    den Mailversand - kein Erfolg. Ich muss wirklich die Maske schließen, das Dokument wieder öffnen und
    erst dann funktioniert der Mailversand.


    Kann es irgendwo an einer Einstellung der Maske liegen?


    Auch dir vielen Dank.

    • Offizieller Beitrag

    bei @Command kann die Reihenfolge sich ändern,d.h. die Commands werden nicht in der angegebenen Reihenfolge abgearbeitet.


    Öffne mal ein neues Dokument, speicher dieses manuell und benutze dann die Schaltfläche.


    Gruß
    Dirk


    %edit%
    Eine Vorgabeansicht gibt es in der DB und das Dokument ist in dieser Ansicht auch vorhanden?
    %/edit%

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Guten Morgen,


    auch das manuelle Speichern und danach Mail senden funktioniert nicht - egal ob mit einem Button @Command([FileSave]) oder STRG+S.


    Eine Ansicht zu der Maske ist vorhanden, auch das Dokument welches versendet werden soll. Aus dieser Ansicht muss das Dokument nochmal geöffnet werden und kann dann per Mail verschickt werden.


    Ich verstehe wirklich nicht warum das in der einen Maske klappt und in der anderen nicht.
    Ich werde heute im Laufe des Tages mal eine funktionierende Maske kopieren, den Inhalt der »defekten« Maske einfügen und schauen ob es dann funktioniert.


    Ich berichte ;)

  • Folgendes habe ich nun getestet:


    Eine funktionierende Maske kopiert, den Inhalt der »defekten« Maske hineinkopiert, die Aktionen kopiert und eingefügt, gespeichert und ein Dokument erstellt - kein Erfolg...


    In der (bearbeiteten) kopierten Maske eine neue MailSend Aktion eingefügt - kein Erfolg...


    Hat noch jemand eine Idee?

  • Hallo,


    nach langem hin und her habe ich den Fehler gefunden!


    Das Problem ist [IncludeDoclink] in der @MailSend-Formel. Sobald ich diesen Part entferne geht die Mail bzw.
    gehen die Mails ohne Probleme raus. Aber leider ohne Dokumentenlink - ein Problem »gelöst«, ein neues erstellt...


    Was muss ich nun machen wenn ich dennoch meinen Dokumentenlink schicken möchte?


    In der Beschreibung zur @MailSend-Formel steht folgendes:
    »
    [INCLUDEDOCLINK]
    Include a link pointing to the document that was open or selected when @MailSend was used. You must include this flag if you want that
    document linked to the mail memo. A new document must be saved.
    Note: This option will only work if the database contains a default view.
    «
    So wie's hier steht: A new document must be saved = @command([FileSave]) = erledigt.
    Nun zur Notiz: This option will only work if the database contains a default view. <- Damit bin ich überfragt, was ist hier zu tun?


    Danke euch allen nochmal für die Mithilfe.

  • Auf die Default View habe ich dich schon hingewiesen, dazu hast du dich aber nie geäußert.


    Bzgl. Default Views: siehe Hilfe

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl