0

Einem Dat

Guten Morgen,

ich habe eine Frage zu Berechnung mit Tagen.

Nach der Änderung vom Datums-Feld 'Mailing versandt am' soll das folgende Skript ausgeführt werden, welches abhängig vom Tag eine bestimmte Anzahl von Tage dem Datums-Feld 'Follow-Up Termin' hinzurechnet. Es soll sozusagen die Transportzeit der Post berücksichtigt werden, bis man beim Kunden einen Anruftermin plant.

Die Folgende Formel erledigt den Job, aber kommt mir unnötig komplizert bzw. lang vor. Ich habe es jedoch nicht hinbekommen in der if-Abfrage gleich mehrere Wochentage abzufragen bzw. die Formel mittels Switch Case aufzubauen, da mir hier angezeigt wurde: "Diese Funktion darf keine Datenänderungen vornehmen."

 

Übersehe ich hier etwas, wie sich das Ganze kürzen und reduzieren lässt? Danke euch vorab!!! 

 

'Follow-Up Termin' := if weekday('Mailing versandt am') = 0 then
date('Mailing versandt am' + 4)
else
if weekday('Mailing versandt am') = 1 then
date('Mailing versandt am' + 6)
else
if weekday('Mailing versandt am') = 2 then
date('Mailing versandt am' + 5)
else
if weekday('Mailing versandt am') = 3 then
date('Mailing versandt am' + 4)
else
if weekday('Mailing versandt am') = 4 then
date('Mailing versandt am' + 4)
else
if weekday('Mailing versandt am') = 5 then
date('Mailing versandt am' + 5)
else
date('Mailing versandt am' + 4)
end
end
end
end
end
end

3 Antworten

null
    • 3VIERTEL Online Marketing
    • Daniel_Stoltzner
    • vor 3 Jahren
    • Gemeldet - anzeigen

    🙈 sorry da gingen im Text ein paar Buchstaben verloren

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

    Hallo Daniel, besagte Fehlermeldung deutet darauf hin, dass der Code in einem Funktions- bzw. Berechnungsfeld ausgeführt wird. Wenn dem so ist, solltest du ihn statt dessen als Trigger "Nach Änderung" im Feld 'Mailing versandt am' ausführen lassen.

     

    if 'Mailing versandt am' then
       let myDay := weekday('Mailing versandt am');
       let plusDays := switch myDay do
          case 0: 4
          case 1: 6
          case 2: 5
          case 3: 4
          case 4: 4
          case 5: 5
          default: 4
       end
       'Follow-Up Termin' := 'Follow-Up Termin' + plusDays
    end

     

    Wobei ich davon ausgegangen bin, dass 'Follow-Up Termin' und 'Mailing versandt am' Felder vom Typ "Datum" sind.

    • 3VIERTEL Online Marketing
    • Daniel_Stoltzner
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter, tausend Dank für deine Arbeit! Das ist clean coding.

    Ich hab noch:

    'Follow-Up Termin' := 'Follow-Up Termin' + plusDays

    in: 

    'Follow-Up Termin' :='Mailing versandt am' + plusDays

    getauscht, damit es vom Versanddatum aus rechnet. Mit dem Trigger funktionert es jetzt ebenfalls 👍🏻