NEWS
Elegante Methode um mehrere IF-Abfragen zu gestalten
-
Hallöchen,
ich baue mir gerade einen Email-Send-Master.
Also ein Blockly was mir eine Email sendet unter bestimmten Bedingungen und das zentral gesteuert.
Also wenn irgendwo eine Email geschickt werden soll dann setze ich einen DP auf einen bestimmten Wert, z.B. 10.
Das Script weiss dann, okay Wert 10 bedeutet ich schicke eine Mail mit dem Inhalt "Gartenbewässerung gestartet" oder sowas.Das führt natürlich dazu dass irgendwann in einer riesigen IF-Abfrage ende.
IF 10
IF 11
IF 12 usw.Gibt es eine Idee, wie ich das elegranter machen kann?
Vielleicht sowas wie "CASE - SELECT"?
Oder Rückgabe über ein Array .. keine Ahnung.VG
-
@dapanic sagte: wie "CASE - SELECT"?
Prinzip:
@dapanic sagte in Elegante Methode um mehrere IF-Abfragen zu gestalten:
Mail mit dem Inhalt "Gartenbewässerung gestartet"
Weshalb schreibst du nicht gleich die Nachricht in den Datenpunkt?
-
@dapanic sagte in Elegante Methode um mehrere IF-Abfragen zu gestalten:
Gibt es eine Idee, wie ich das elegranter machen kann?
Vielleicht sowas wie "CASE - SELECT"?
Oder Rückgabe über ein Array .. keine Ahnung.es gibt alles 3:
der case ist
Baustein für case/select- Arrays (die in Blockly als
Liste
geführt werden - JSON Objekte mit Attributen, wo du so ein Konstrukt aufbauen kannst:
{ val10: { message: "der Garten ist alle", delay: 30, repeat: false, recipients: ["max", "Moritz", "jedermann"]}, val20: { message: "der Garten ist voll", delay: 3000, repeat: true, repeatIntervall:10, recipients: []} }
A.
-
Ich würde auch so wie der 3. Fall von @Asgothian machen.
Eine Datenstrukturen aufbauen wo alle notwendigen Informationen enthalten sind und dann nur eine kleine programmlogik, welche anhand Input die entsprechenden Daten aus der Datenstrukturen auswählt und anhand der Parameter dann die Aktionen ausführt.
Das ist sehr flexibel und für zukünftiger Erweiterungen offen.
Auch durch minimierten Programmcode weniger Fehleranfälligkeit, was nachher die Suche schwierig macht. -
@oliverio Das würde ich mir dann mal anschauen.