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
    • 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']
                })

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott 
      Ich beantworte nur die einfachen Sachen.
      Das schwierige Zeug überlasse ich Leo, Axel, Torsten, Tacho, Michi, Mirko, Lars und den anderen Cracks.

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

      UweG Hallo Uwe, soweit hat es ja funktioniert nur wie ich das geübt habe hatte ich nur eine PDF in der Tabelle MesseBerichte drin nun habe ich noch ein wenig probiert und ich bekomme immer nur diese eine PDF zugesendet. Wie kann ich das jetzt steuern das er den Bericht schickt den ich ausgefüllt habe und nicht den ersten der in der Tabelle steht.

      Ich hatte es schon versucht mit last anstatt dem hier aber da merkert es 

      attachments: first(select MesseBerichte 
      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott 

      Wie sieht denn das Datenmodell aus?

      Verknüpfungen, Untertabellen etc.?
      Von welcher Tabelle wird das Script ausgeführt.
      Ist die Tabelle Messedaten irgendwie verknüpft? Womit? Vielleicht als Untertabelle?

      Das ist sonst reines raten wenn man nicht die Zusammenhänge der DB kennt.

      Was macht die Scriptzeile: newD.Messen := me
      Wenn ich raten soll wird hier eine Verknüpfung zugeordnet.

      Etwas mehr Content wäre hilfreich.
       

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

      UweG Haupttabelle ist Messen Kunden ist Verknüpft N:1 von Messen ist ein Verknüpfung zu MesseBerichte 1:n das Script wird von Messen ausgeführt.

      Die legt in Tabelle Messen neuen Datensatz an soweit ich das weiß ich bin da nicht so fit drin 

      Da hatte ich Hilfe hier im Forum 

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott 
      attachments: last(Messeberichte).Datei

      Wenn ich den DB Aufbau richtig verstanden habe.
      Damit wird das zuletzt durch das Script erstellte PDF aus der mit diesem Record verknüpften Tabelle 'Messeberichte' ausgewählt.
      Ein Blick in die DB hätte mehr Klarheit gebracht als das Raten um den DB-Aufbau.
      Wenn viele Verknüpfungen/Untertabellen vorhanden sind und sich Daten in dieser Abhängigkeit befinden, ist es hilfreich das Datenmodell mit zu beschreiben.

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

      UweG Danke Uwe, hätte ich sie dir senden sollen? oder dich ins Team einladen? 

      Oder eine leere Kopie senden? 

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott Leere Kopie hilft meist weiter.
      Funktioniert es denn jetzt?

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

      UweG Was muss ich da exportieren alles? Daten und Dateien?

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

      UweG Nein leider kommt ne Fehlermeldung 

      • UweG
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Christian Rott Mach ein Backup der DB. Restore sie wieder. Mache alle Tabellen leer und lege einen Test Datensatz an. Dann nochmal Backup. Runterlasen und hier als Datei zufügen.

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

      UweG So da ist sie

    • UweG
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Moin Christian
    Das Übersenden der DB war hilfreich und auch der Hinweis, das du die DB in der Mac-App nutzt.
    Ich konnte das sendMail-Problem eingrenzen und lösen.
    Der Grund, warum in der Ninox-App der Fehler auftritt ist die Zeitverzögerung zwischen drucken und speichern des Berichts und dem raussenden  per Mail.
    Da die Datenbank im Team liegt, ist serverseitig der Datensync zwischen App und Server noch nicht abgeschlossen und das Attachment kann deshalb nicht gefunden werden.(Fehlermeldung)


    Ich habe dir jetzt das Script so angepasst, dass es prüft ob die App oder der Browser benutzt wird und bei der App erst auf den Abgleich mit dem Server wartet, bevor die Mail versandt wird.

    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");
        if ninoxApp() != "web" then waitForSync() end;
        sendEmail({
            from: userEmail(),
            to: EMPFÄNGER MailAdresse,
            subject: "Messe" + " " + Kunden.Firma,
            text: "Anbei der Messe Bericht von" + "_" + Messe + "_ " + Kunden.Firma + "_" + Datum,
            attachments: last(MesseBerichte).Datei
        })
    end

    Trotzdem würde ich darüber nachdenken, den Dokumenten unterschiedliche Namen zur Unterscheidung zu geben.

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

      UweG Moin Uwe,

      das ist super nett von dir TAUSEND DANK da hast du mir ganz doll geholfen mit.

      Ich werde es gleich mal ausprobieren. Das heißt dann falls die App mal keinen sync macht oder im Moment nicht online ist wird die eMail dann nach online sync gesendet? 

      Ja bei der Namesvergabe wollte ich es eigentlich erreichen das wie gesagt erst (Firma) (Messe)(datum) kommt um es im Büro dann entsprechend abzulegen.

      Ich bin halt ein absoluter Neuling darin

Content aside

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