0

Gespeicherten Anhang per sendEmail versenden

Hallo liebe Forummitglieder,

ich bräuchte mal wieder euere Profi Hilfe. Ich habe ein Bericht den ich in einer Tabelle ablege das funktioniert auch alles wunderbar. Nun würde ich gerne im folgenden Script auch noch gleich einbauen das dieser Bericht per sendEmail an unser Büro versendet wird. Wie kann ich das dort noch einbauen?

let antwort := dialog("Bericht exportieren", "Soll dieser Bericht abgespeichert werden?", ["Ja", "Nein"]);
if antwort = "Ja" then
    let DateiName := replacex(Kunden.Firma + "_" + text(Messe) + "_" + format(Datum, "DDMMYYYY"), "[~""#%&*:<>?/\{|}.]+", "_") + ".pdf";
    let me := this;
    let newD := (create MesseBerichte);
    newD.(Messen := me);
    newD.(Datei := importFile(newD, printAndSaveRecord(me, ""), DateiName));
    alert("Der Bericht wurde gespeichert")
end

38 Antworten

null
    • rainless
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Christian,

    das müsste eigentlich so gehen, wenn Du das nach dem alert() in die Abfrage der Antwort hängst.

    sendEmail({
        from: "christian@example.com",
        to: 'unserbuero@example.com',
        subject: "Bericht",
        text: "Beliebiger Text",
        attachments: newD.Datei
    })
    
    • Heinrich Frey Maschinenbau GmbH
    • Christian_Rott
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Lars,

    danke für die Antwort aber leider bekomme ich dann eine Fehlermeldung im Script.

    So hatte ich es auch schon versucht aber irgendwie geht das nicht.

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott Semikolon am Ende Zeile 8

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Danke Uwe,

      Semikolon gesetzt und dann bekomme ich folgende Meldung.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Die Meldung bekomme ich aber nur in der App auf dem Mac. Wenn ich über Web reingehe dann kommt keine Meldung die Email wird verschickt aber leider ohne Anhang!

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Habe es eben auf dem iPad ausprobiert auch dort bekomme ich die Fehlermeldung wie auf dem Mac. Was läuft da falsch

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Bei Attachments kannst du nicht newD.Datei verwenden sondern musst den Dateinamen angeben.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Hm ich bin komplett Neuling. Aber der Dateiname ändert sich ja bei jedem neuen Bericht. Was muss ich denn dafür einsetzen das er den mit anhängt in die eMail.

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott 

      Du kannst mal folgendes probieren:
      last(split(text(newD.Datei), "/"))
      Ich bin mit den Eigenheiten der Ninox-App nicht so vertraut.
      Da gibt es Unterschiede zur Browser-Version.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG im Web wird ne email gesendet aber wieder nix im Anhang. Im iPad und Mac kommt wieder die Fehlermeldung

    • Michi.1
    • vor 2 Jahren
    • Gemeldet - anzeigen

    bei mir läuft es so. Variable aa oder bb ist dabei der e-mail text.

    if Abrechnung = null or 'Abrechnung vom' = null then
        dialog("Abrechnung an VK senden nicht möglich, da keine Abrechnung eingefügt wurde.", "Bitte Abrechnung einfügen! oder Abrechnung vom einfügen", ["OK"])
    else
        if dialog("Abrechnung an VK senden", "bitte mit Ja bestätigen um Abrechnung zu senden", ["Ja", "Nein"]) = "Ja" then
            if Abrechnung and 'Versendet am' = null or 'versendet?' = false then
                sendEmail({
                    from: "deine mailadresse",
                    to: 'Aufträge'.Vertragspartner.'Mail Verkauf',
    subject: "Abrechnung vom" + " " + 'Abrechnung vom' + "" + " zu KV: " + 'Aufträge'.'KV-Nr.' + "/ " + 'Aufträge'.Name + " - " + 'Aufträge'.Vorname,
                    text: "html",
                    html: if 'Hinweise: *** TEXT für MAIL ***' then
                        aa
                    else
                        bb
                    end,
                    attachments: [Abrechnung, 'Bild 1', 'Bild 2', 'Bild 3', 'Bild 4', 'Bild 5', 'Bild 6', 'Bild 7', 'Bild 8', 'Bild 9', 'Bild 10']
                })

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Michi Danke für die Nachricht aber ich glaube da muss ich erstmal noch mehr lernen um das umzusetzen 

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott Wenn ich den Beitrag so betrachte, nehme ich an, das die erstellte Datei sich in einer anderen Tabelle (Messeberichte) befindet als die Tabelle aus der das Script ausgeführt wird.
      Ich kenne deine DB-Struktur nicht und kann deshalb nur raten.
      Der Wert für attachments muss direkt auf das Feld der Tabelle mit dem entsprechenden Inhalt zeigen. Wenn es sich um eine andere Tabelle/Verknüpfung handelt must du das auch angeben.
      Bsp.
       

      let vBildSuche := DateinName;
      sendEmail({
          from: "christian@example.com",
          to: 'unserbuero@example.com',
          subject: "Bericht",
          text: "Beliebiger Text",
          attachments: first(select MesseBerichte [[last(split(text(Datei), "/")) = vBildSuche]]).Datei
      })

      Das ist nur geraten.

      • Michi.1
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott Vielleicht hilft die das:

      let aa := ---
      <p>Sehr geehrte Damen und Herren,</p><p>anbei die Abrechnung von { text('Abrechnung vom') }.<br><br>Hinweise:<br>{ replace('Hinweise: *** TEXT für MAIL ***', "
      ", "<br>") }</p><br/>
      <p>F&uuml;r R&uuml;ckfragen stehe ich Ihnen jederzeit gerne telefonisch zur Verf&uuml;gung.</p>


      <p>
      Mit freundlichen Gr&uuml;&szlig;en</p>

      <p>i.A. Name<br />
      - Kundenservice -</p>

      <p>
      Firma<br />
      Straße<br />
      Ort</p>

      <p>Tel.: +49 <br />
      Fax: +49 </p>

      <p>web: www.xxxx.de<br />
      email: xx@xxxx</p>

      <p>Gesch&auml;ftsf&uuml;hrung<br />
      xxxxxxx<br />
      Gericht<br />
      Steuernummer: xxxxxx
      </p>
      ---;
      let bb := ---
      <p>Sehr geehrte Damen und Herren,</p><p>anbei die Abrechnung von { text('Abrechnung vom') }.<br><br>

      <p>F&uuml;r R&uuml;ckfragen stehe ich Ihnen jederzeit gerne telefonisch zur Verf&uuml;gung.</p>


      <p>
      Mit freundlichen Gr&uuml;&szlig;en</p>

      <p>i.A. Name<br />
      - Kundenservice -</p>

      <p>
      Firma<br />
      Straße<br />
      Ort</p>

      <p>Tel.: +49 <br />
      Fax: +49 </p>

      <p>web: www.xxxx.de<br />
      email: xx@xxxx</p>

      <p>Gesch&auml;ftsf&uuml;hrung<br />
      xxxxxxx<br />
      Gericht<br />
      Steuernummer: xxxxxx
      </p>
      ---;
      let me := this;
      let Dat := (select Messeberichte where "deine bedingung" = me).Datei;

                  sendEmail({
                      from: "deine Mail",
                      to: 'Aufträge'.Vertragspartner.'Mail Verkauf',
      subject: "Abrechnung vom" + " " + 'Abrechnung vom' + "" + " zu KV: " + 'Aufträge'.'KV-Nr.' + "/ " + 'Aufträge'.Name + " - " + 'Aufträge'.Vorname,
                      text: "html",
                      html: if 'Hinweise: *** TEXT für MAIL ***' then
                          aa
                      else
                          bb
                      end,
                      attachments: Dat
                  });
                  

      für den mailtext die Variable immer mit den strichen beginnen und enden let aa:= ---
      <p>Sehr geehrte Damen und Herren,</p><p>anbei die Abrechnung von { Deine Felder kannst so einfügen }.<br><br>Hinweise:<br>{ replace('Hinweise: *** TEXT für MAIL ***', "
      ", "<br>") }</p><br/>
      <p>F&uuml;r R&uuml;ckfragen stehe ich Ihnen jederzeit gerne telefonisch zur Verf&uuml;gung.</p>


      <p>
      Mit freundlichen Gr&uuml;&szlig;en</p>

      <p>i.A. Name<br />
      - Kundenservice -</p>

      <p>
      Firma<br />
      Straße<br />
      Ort</p>

      <p>Tel.: +49 <br />
      Fax: +49 </p>

      <p>web: www.xxxx.de<br />
      email: xx@xxxx</p>

      <p>Gesch&auml;ftsf&uuml;hrung<br />
      xxxxxxx<br />
      Gericht<br />
      Steuernummer: xxxxxx
      </p>
      ---;

      Ich gehe mal davon aus das dein PDF in einem Bildfeld "Datei" in der Tabelle Messberichte geschrieben wird. Dann kannst du auch den Anhang so erzeugen also nicht direkt, musst halt nur deine bedingungen formulieren.

      let me := this;
      let Dat := (select Messeberichte where "deine bedingung" = me).Datei;

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Hallo Uwe, sorry ich dachte das hatte ich oben mit angegeben das ich es in einer Tabelle ablege. Ich habe vergessen in einer anderen Tabelle zu schreiben 😯

      Ja stimmt ich habe in der Tabelle Messe Besuche einem Formular das über ein Button  mir dann das ausgefüllte Pdf erstellt das ist der Code den ich oben eingefügt habe. Und diesen dann in die Tabelle MesseBerichte ablegt. Was auch alles super funktioniert. Hatte ich ja oben beschrieben. 

      Und eben nun wollte ich dieses PDF welches in der Tabelle MesseBerichte liegt gleich noch per email senden und das eben in dem oben genannten Code mit einarbeiten.

      Ich werden deinen Code gleich mal versuchen

      Besten Dank schonmal 

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG was genau macht vBildSuche?

      Bekomme wenn ich den Code probiere Meldung das Tabellen Spalte nicht gefunden wird DateiName in Zeile 9 Spalte 29

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG 
      Du kannst dir die Zeile  'let vBildsuche := DateiName' sparen und in der attachments-Zeile vSuche durch DateiName ersetzen.
      Dateiname ist ja schon eine deklarierte Variable.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG DANKE TAUSEND DANK

      nun funktioniert es 

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott 
      Das kann eigentlich nicht sein, da du ja mit:

      let DateiName := replacex(Kunden.Firma + "_" + text(Messe) + "_" + format(Datum, "DDMMYYYY"), "[~""#%&*:<>?/\{|}.]+", "_") + ".pdf";
          

      DateiName bereits deklariert hast.

      Poste bitte mal das vollständige Script.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG 

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Und da ist die eMail mit PDF

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott 
      Scheint zu funktionieren, oder?

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG JA Perfect so wie ich es mir vorgestellt habe

      Super!

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott 

      Da war ich nicht allein dran beteiligt.

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 2 Jahren
      • Gemeldet - anzeigen

      UweG Hast mir ja schon viel geholfen auch bei andern Sachen. TAUSEND DANK

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 38Antworten
  • 137Ansichten
  • 4 Folge bereits