0

Rechnung freigeben anstatt per E-Mail zu versenden

Hallo alle zusammen,

ich möchte gerne Angebote und Rechnungen automatisch ihrem Empfänger zukommen lassen. Bei den Methoden

openURL("mailto:" ...  kann man meines wissens keine PDF's anhängen. Mit

sendEmail ... ist nicht sicher, ob der Empfänger meine Rechnung auch erhält, da sie nicht über meinen E-Mail-Account versandt wird.

Meine Idee ist nun, das PDF aus Ninox heraus für den Empfänger freizugeben. Dann könnte man ihn in einer Nachricht per Mail darüber mit sendEmail informieren und bräuchte die Rechnung nicht anzuhängen :-).

Hat dazu jemand eine Idee?

Viele Grüße Susanne

14 Antworten

null
    • Icarus_Ralf_Becker
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo,

    Wenn bei sendmail als Absender ein Account aus dem Ninox-Team genutzt wird, dann kommen die Mails auch zuverlässig an (zumindest ist das meine Erfahrung) und man kann auch PDFs anhängen. 

    Eine automatisierte Freigabe gibt es nicht, zumal man m. E. n. nur Datensätze freigeben kann, nicht aber nur Anlagen. 

    VG Ralf

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo, man kann die PDF-Datei natürlich in einem Bildfeld speichern und über dessen Kontextmenu manuell freigeben. Ich wüsste aber keine Möglichkeit, das script-gesteuert zu machen oder zumindest die Freigabe-URL automatisch auszulesen. Es wäre also schon etwas "Handarbeit" erforderlich. Aber vielleicht hat jemand anderes noch eine bessere Idee.

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Susanne,

    man kann in der Tabelle eine Ansicht erstellen, wo z.B. nur die Datensatznummer und die Bildfelder zu sehen ist.

    Wenn du diese Ansicht als HTML freigibst und dann in Ninox mit GET einliest, bekommst du eine  Kode über gesamte Tabelle mit  HTML Tags. Die Freigabe-Adressen  für Bildfelder sind dann mit a href gekennzeichnen. Wenn man jetzt den responce auseinender nimmt, kann man auch den Freigabelink extrahieren und mit mailto mitsenden. Kann als Funktion für eine Tabellenansicht mit zwei Spalten ("Nr","Rechnung") etwa so aussehen:

    ---

    function getShare(myID : text) do
    let url := "HTML FREIGABELINK FÜR DIE TABELLLENANSICHT MIT ZWEI SPALTEN";
    let responce := http("GET", url, "");
    let Text := text(responce.result);
    let myARR := split(Text, ---
    <td class="nx-type-nid">
    ---);
    let myERG := for i in range(1, cnt(myARR)) do
    let myT := item(myARR, i);
    myT := substr(myT, 0, index(myT, ---
    "><img src=
    ---));
    let myA := split(myT, ---
    </td><td class="nx-type-file"><a href="
    ---);
    {
    ID: first(myA),
    link: "https://share.ninoxdb.de" + last(myA)
    }
    end;
    first(for i in myERG do
    if i.ID = myID then i.link end
    end)
    end

    ---

     

    Wenn du jetzt aus dem Rechnungsdatensatz die Funktion aufrufst

    ---

    LinkFeld:=getShare(text(Nr))

    ---

    solltest du den Freigabelink ins Linkfeld geschrieben bekommen.

     

    Leo

    • Ninox-Professional
    • planoxpro
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Natürlich hat "jemand" noch eine bessere Idee ... ;)  Klasse. Darauf wäre ich (wieder mal) im Leben nicht gekommen.

    • Torsten_Stang.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    "Mit sendEmail ... ist nicht sicher, ob der Empfänger meine Rechnung auch erhält, da sie nicht über meinen E-Mail-Account versandt wird."

     

    ... ich setze bei sendEmail() den User in BCC (was ja auch ein x-beliebiger Empfänger sein könnte, z.B. ein Archiv-Account in der Form billing@...). 

    • Susanne_Wittpoth
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank für eure schnellen Antworten.

    Leo, deine Lösung werde ich morgen gleich einmal ausprobieren. Hört sich spannend an.

    vg susanne

    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Die lösung von leo findest du auch in dem ocr template im nx-api team. Wieso machst du es nicht mit dem integromat, hab es gestern vorgestellt im webinar ( werde es morgen im API workshop nochmals vorstellen). Du sendest die daten aus ninox an die webhook vom integromaten und dieser leitet sie an das mail modul weiter dort im mailmodul kannst sogar einstellen das die gesendete mail in deinem gesendet ordner gespeichert wird. Mit dem free account beim integromat kannst da schon einige rechnungen im monat schicken.

    • Susanne_Wittpoth
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Vielen Dank Bastian, auch ein guter Lösungsweg. Ich muss mir noch einmal über die Rechte und Verschlüsselungen beim Freigeben Gedanken machen. Vielleicht ist dann der Weg über den Integromat der bessere.

    vg susanne

    • Micha
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo ,

    gibt es eine genaue Beschreibung von der Mail via Intecromat von Basti?

    Insbesondere was im Intecromat alles eingestellt werden muss?

    eventuell auch die Aufzeichnungen aus dem Webinar in YouTube wäre genial.

    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Ich kann dir da gerne helfen (gegen Bezhalung). Mich findest du auf der Partnerseite hier bei Ninox ganz oben der erste Magicnetworks. Wenn du noch nicht ganz Firm bist mit Integromat könnte es etwas schwierig werden. Insbesonders das error Handling in integromat sollte konfiguriert werden. Ansonsten am Montag im Workshop um 17 Uhr oder Freitag im API Workshop um 10 Uhr fragen.

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hi Leo,

    den Freigabe-Pfad zur Datei aus der extra erstellten Ansicht zu extrahieren - spooky, aber klappt ;-)
    Leider offenbar aber nur beim ersten mal, oder irgendwie sporadisch. Ich dachte zunächst es ist ein Performanceproblem, aber nun glaube ich es hat System.

    Ich erzeuge auf Button click die Datei und verknüpfe Sie in das Bild "tmpFile". Dann rufe ich direkt die Tabelle ab, um den Pfad zu bekommen und gebe mir den zunächst mal zur Ansicht in "test" aus. Gibt es noch keine Datei in tmpFile scheint es zu klappen, gibt es eine und ich lösche diese (manuell) und werfe das Script nochmal an, läd Ninox und wird nicht mehr fertig. Versuche ich es dann in ein paar Minuten nochmal, klappts wieder auf Anhieb und das auch recht schnell. Sieht jemand ein Problem in der direkten Reihenfolge im Script? Warten die nachfolgenden Anweisungen, bis createTextFile fertig ist, oder rennt das einfach asynchron durch und ich habe in der Zeile danach evtl. die Ansicht noch gar nicht?

    tmpFile := "";
    tmpFile := createTextFile(this, "<html><head></head><body>" + text(raw(Zusammenfassung)) + "</body></html>", "tmpFile.html");
    let contentUrl := "";
    let url := "https://share.ninox.com/ig8brt5y09exqqlbgaexsmctff925nwp2jlb";
    let sharedViewTable := http("GET", url, "");
    let Text := text(sharedViewTable.result);
    let myARR := split(Text, ---
    <td class="nx-type-nid">
    ---);
    for i in range(1, cnt(myARR)) do
    let myT := item(myARR, i);
    myT := substr(myT, 0, index(myT, ---
    "><img src=
    ---));
    let myA := split(myT, ---
    </td><td class="nx-type-file"><a href="
    ---);
    if number(first(myA)) = Nr then
    contentUrl := "https://share.ninoxdb.de" + last(myA)
    end
    end;

    test := contentUrl

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Timo,

    ist schon ein Paar Monate her, als ich den Kode geschrieben habe. Ich würde auch auf den Zeitlimit setzen. Wenn du die Dokumente nicht im Akkord verarbeitest würde ich einen anderen Weg vorschlagen.

    Eine Tabelle TMP mit nur einem Datensatz und einem Bildfeld dort. Speihere im Bild eine Datei namens "tmpFile.html" und gebe diese manuell als HTML frei. Wenn du jetzt eine html Datei mit imer den gleichen Namen im bildfeld speicherst, wird die Datei ersretzt und die Freigebe bleibt bestehen:

    ---

    let myTmpRecord:=record(TMP,1);
    let me:=this;
    myTmpRecord.BILDFELD:=createTextFile(myTmpRecord, "<html><head></head><body>" + me.text(raw(Zusammenfassung)) + "</body></html>", "tmpFile.html");
    dialog("Datei ist erstellt","Die Datei "+last(split(text(myTmpRecord.BILFELD),"/"))+" ist erstellt",["OK"]);
    let myURL:="DEINE FREIGABE";
    HIER DEINE REST ABFRAGE an HTMLtoPDF

    ---

    mit dialog gewinnst du Zeit, weil du immer auf ok klicken muss um weiter zu kommen. 

    Leo

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Leo, Du bist mein Held!
    Das ist natürlich wesentlich schicker und braucht weniger Performance! Ich hatte nun zwischendurch immer wieder das Problem, das es nicht geklappt hat, vermutlich wenn es seht große Daten sind hat das createTextFile() eine nicht so gute Performance... wenn man den Dialog dazwischen schaltet scheint es aber auch mit größeren Strings zu funktionieren!

    • blickfang Internet- & Werbeagentur GmbH
    • Timo_L
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hi,

    gibt es mittlerweile eine  Ninox native Funktion um einen Freigabelink direkt abzuholen? Oder ist der einzige Weg immer noch, die Freigabe html Tabelle zu parsen und das rauszufischen was man benötigt?

Content aside

  • vor 2 JahrenZuletzt aktiv
  • 14Antworten
  • 4623Ansichten