0

Blockabfertigung bei Sammel Mailing

Liebes Ninox Forum,

hier eine Problemstellung zum Mailing über die Desktop Version. 

Wir verwalten in unserem Unternehmen sehr viele Adressaten von unseren Mailings, tatsächlich kein Spam, sondern ausgewählte Medienpartner. 

Über folgende Schaltfläche werden die Nachrichten personalisiert und versendet:

for i in Kampagne[(Status = 1 or Status = 8) and Englischsprachig = true] do
let myText := switch i.Medienpartner.Geschlecht do
case 1:
"Dear " + i.Vorname + ", dear " + i.Bezeichnung + " Team"
case 2:
"Dear " + i.Vorname + ", dear " + i.Bezeichnung + " Team"
default:
"Dear " + i.Bezeichnung + " dear"
end + ",

" + 'Follow Up EN' + "

" + Vorname;
openURL("mailto:" + i.'E-Mail Primär' + ", " + i.'E-Mail Sekundär' + ", " + "?subject=" + "Submission " + upper(Artist.Artist + " - " + Titel) + "&body=" + myText);
i.(Status := 4)
end

 

Hier stößt nun der Mail Client vom MAC oft an seine Grenzen, so nach ca. 100 Empfängern kommt dieser nicht mehr mit und bringt Fehlermeldungen. Ist es möglich eine Art Blockabfertigung anzulegen?

Über das "Status" Feld werden die Empfänger zB von "leer" auf "versendet" = 1 und nach Rückmeldung auf "bestätigt" gesetzt. Für ein Follow Up würde ich mir wünschen immer die ersten 100 Datensätze mit Status = 1 zu suchen und die Funktion auszuführen, anschließend auf Status = 4 zu wechseln. Bei erneutem klicken wieder die ersten 100 mit Status = 1 suchen -> Mailing erstellen -> Status = 4 setzen.

 

Wie bekomme ich sowas hin?

15 Antworten

null
    • Torsten_Stang.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Reinhard,

     

    versuch's mal hiermit:

     

    let myCampaign := Kampagne[(Status = 1 or Status = 8) and Englischsprachig = true];
    for i in slice(myCampaign, 0, 100) do
       ...
    end

     

    lg, Torsten

    • Reinhard
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Torsten, also begrenzt ist das Mailing nun. Leider, wird jetzt weder die Personalisierung noch die Mailto (E-Mailadresse) erkannt...

    komplette Funktion:

    let myCampaign := Kampagne[(Status = 1 or Status = 8) and Englischsprachig = true];
    for i in slice(myCampaign, 0, 100) do
    let myText := switch i.Medienpartner.Geschlecht do
    case 1:
    "Dear " + i.Vorname + ", dear " + i.Bezeichnung + " Team"
    case 2:
    "Dear " + i.Vorname + ", dear " + i.Bezeichnung + " Team"
    default:
    "Dear " + i.Bezeichnung + " dear"
    end + ",

    " + 'Follow Up EN' + "

    " + Vorname;
    openURL("mailto:" + i.'E-Mail Primär' + ", " + i.'E-Mail Sekundär' + ", " + "?subject=" + "Submission " + upper(Artist.Artist + " - " + Titel) + "&body=" + myText);
    i.(Status := 4)
    end

     

    Vielleicht hast Du noch eine Idee?

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

    Hallo Reinhard,

     

    hm, eigentlich sollte es wie gewünscht funktionieren. Hast Du schon mal probiert, den Weg über "myCampaign" auszulassen? Also:

     

    for i in slice(Kampagne[(Status = 1 or Status = 8) and Englischsprachig = true], 0, 100) do
       ...
    end

     

    lg, Torsten

    • Reinhard
    • vor 5 Jahren
    • Gemeldet - anzeigen

    gerade versucht, selbes Problem leider, keine Personalisierung und keine E-Mails, was ohne Slice Funktion funktioniert...

     

    lg Reinhard

    • Reinhard
    • vor 5 Jahren
    • Gemeldet - anzeigen

    es sieht so aus als würde Ninox nicht mehr auf die Daten der Untertabelle zugreifen können...

    • T_Bartzsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Vielleicht mal das ganze Konstrukt in nur ein "i" packen...

    let myCampaign := Kampagne[(Status = 1 or Status = 8) and Englischsprachig = true];
    for i in slice(myCampaign, 0, 100) do

    i.(let myText := switch Medienpartner.Geschlecht do
    case 1:
    "Dear " + Vorname + ", dear " + Bezeichnung + " Team"
    case 2:
    "Dear " + Vorname + ", dear " + Bezeichnung + " Team"
    default:
    "Dear " + Bezeichnung + " dear"
    end + ",

    " + 'Follow Up EN' + "

    " + Vorname;
    openURL("mailto:" + 'E-Mail Primär' + ", " + 'E-Mail Sekundär' + ", " + "?subject=" + "Submission " + upper(Artist.Artist + " - " + Titel) + "&body=" + myText);
    Status := 4)
    end

    • Reinhard
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Tobias,

     

    danke für den Input. Jetzt erfolt leider keine Funktion mehr. Evtl. muss man dafür noch beachten, dass die Funktion in der Tabelle PRODUKTE ausgeführt wird, auf deren Untertabelle KAMPAGNE zugegriffen wird und diese sich die Daten wiederrum die Kontaktdaten aus der Tabelle MEDIENPARTNER holt... 

    • T_Bartzsch
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hast Du denn mehrere Medienpartner in der Tabelle? Oft braucht ninox ja auch first() oder last() bei verknüpften Tabellen, auch wenn nur ein eintrag verknüpft ist..... first(Medienpartner).Geschlecht

    • Reinhard
    • vor 5 Jahren
    • Gemeldet - anzeigen

    In der Tabelle 'Medienpartner' sind sehr viele, in der Untertabelle 'Kampagne' nur die selektierten Medienpartner (idR mehr als 100) die für das aktuelle 'Produkt' relevant sind und an dem Mailing / der Nachricht um das es geht interessiert sind.

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

    Hallo Reinhard,

     

    ich habe bei mir das Problem, dass Skripte mit switch-cases nicht funktionieren - kannst Du den Part mal versuchsweise per verschachtelter if-Abfrage umsetzen?

     

    lg, Torsten

    • Reinhard
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hi Torsten, leider habe ich beim verschachteln ein paar Probleme, bzw. verliere irgendwann den Überblick. So würde es nicht funktionieren:

     

    let myCampaign := Kampagne[(Status = 1 or Status = 8) and Englischsprachig = true];
    for i in slice(myCampaign, 0, 100) do
    if i.Medienpartner.Geschlecht = 1 then
    let myText := "Dear " + i.Vorname + ", dear " + i.Bezeichnung + " Team" + ",

    " + 'Anschreiben EN' + "

    " + 'Links EN' + "

    " + 'Fußtext EN' + "

    " + Vorname;
    openURL("mailto:" + i.'E-Mail Primär' + ", " + i.'E-Mail Sekundär' + ", " + "?subject=" + "Album Submission " + upper(Artist.Artist + " - " + Titel) + "&body=" + myText)
    else
    if i.Medienpartner.Geschlecht = 2 then
    let myText := "Dear " + i.Vorname + ", dear " + i.Bezeichnung + " Team" + ",

    " + 'Anschreiben EN' + "

    " + 'Links EN' + "

    " + 'Fußtext EN' + "

    " + Vorname;
    openURL("mailto:" + i.'E-Mail Primär' + ", " + i.'E-Mail Sekundär' + ", " + "?subject=" + "Album Submission " + upper(Artist.Artist + " - " + Titel) + "&body=" + myText)
    else
    if i.Medienpartner.Geschlecht = null then
    let myText := "Dear " + i.Bezeichnung + " Team" + ",

    " + 'Anschreiben EN' + "

    " + 'Links EN' + "

    " + 'Fußtext EN' + "

    " + Vorname;
    openURL("mailto:" + i.'E-Mail Primär' + ", " + i.'E-Mail Sekundär' + ", " + "?subject=" + "Album Submission " + upper(Artist.Artist + " - " + Titel) + "&body=" + myText);
    Kampagne.(Status := 1)
    end
    end
    end
    end

     

    Wie würdest Du das verschachteln? Lg Reinhard

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

    Hallo Reinhard,

     

    ist für mich auch ein rotes Tuch, weil ich es in meinen produktiven DBs vielfach umbauen musste. Ich versuch's mal :-)

     

    let myCampaign := Kampagne[(Status = 1 or Status = 8) and Englischsprachig = true];
    for i in slice(myCampaign, 0, 100) do
    let myText := if i.Medienpartner.Geschlecht=1 then
       "Dear " + i.Vorname + ", dear " + i.Bezeichnung + " Team"
    else
       if i.Medienpartner.Geschlecht=2 then
          "Dear " + i.Vorname + ", dear " + i.Bezeichnung + " Team"
       else
          "Dear " + i.Bezeichnung + " dear"
       end
    end + ",
    " + 'Follow Up EN' + "
    " + Vorname;
    openURL("mailto:" + i.'E-Mail Primär' + ", " + i.'E-Mail Sekundär' + ", " + "?subject=" + "Submission " + upper(Artist.Artist + " - " + Titel) + "&body=" + myText);
    i.(Status := 4)
    end

     

    lg, Torsten

    • Reinhard
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hi Torsten, sorry ich hab das Thema aus den Augen verloren nun aber endlich mal versucht, Es klappt perfekt wie beschrieben, Vielen Dank, das hilft uns sehr! Liebe Grüße und bleib gesund!

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

    Hallo Reinhard,

     

    gut Ding will ja bekanntlich Weile haben :-)

     

    Danke für die Rückmeldung.

     

    lg, Torsten

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

    ach, zur Ergänzung: mittlerweile funktionieren die switch-case-Konstrukte auch wieder ;-)