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
-
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
-
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?
-
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
-
gerade versucht, selbes Problem leider, keine Personalisierung und keine E-Mails, was ohne Slice Funktion funktioniert...
lg Reinhard
-
es sieht so aus als würde Ninox nicht mehr auf die Daten der Untertabelle zugreifen können...
-
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) doi.(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 -
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...
-
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
-
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.
-
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
-
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
-
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
-
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!
-
Hallo Reinhard,
gut Ding will ja bekanntlich Weile haben :-)
Danke für die Rückmeldung.
lg, Torsten
-
ach, zur Ergänzung: mittlerweile funktionieren die switch-case-Konstrukte auch wieder ;-)
Content aside
- vor 4 JahrenZuletzt aktiv
- 15Antworten
- 2800Ansichten