Diese Website verwendet Cookies sowie Analyse-Software zur Erfassung und Auswertung der Webseiten-Nutzung. Details zur Art und Umfang der Datenerhebung finden Sie in unserer Datenschutzerklärung. Wenn Sie diese Website weiterhin nutzen, stimmen Sie der Verwendung von Cookies zu.

Druckansicht der Seite www.rowisoft.de/handbuch-ab_ins_eingemachte
Dokumentation zum Warenwirtschaftssystem Rowisoft blue

Ab ins Eingemachte

Nach langer Theorie möchten wir nun endlich einen ersten Trigger entwickeln: Immer, wenn ein Lieferschein erstellt wird, möchten wir eine eMail an den Kunden schreiben, der Empfänger des Lieferscheins ist.

Um eine eMail zu verschicken, brauchen wir lediglich einen neuen Datensatz in die Tabelle „Nachrichten“ schreiben. Das Feld „Nachrichtentyp“ müssen wir dabei mit dem Wert „20“ füllen, welches mit „Postausgang“ gleichzustellen ist.

Außerdem füllen wir die Felder „Empfaenger“, „Absender“, „Mitarbeiter“ (mit dem Wert -1, so dass die eMail im globalen Postausgang erscheint), sowie „Betreff“. Natürlich füllen wir auch das Feld „PlainText“ – in dieses Feld nämlich schreiben wir den eigentlichen Nachrichtentext!

Damit die eMail aber nur versendet wird, wenn es sich bei dem Vorgang um einen Lieferschein handelt, müssen wir dies in unserem Skript mit einer if-Abfrage prüfen. Dabei prüfen wir einfach das Trigger-Feld „Typ“ auf den Inhalt „Lieferschein“.

Um keine eMail zu versenden, wenn beim Kunden gar keine eMail-Adresse hinterlegt ist, fügen wir eine weitere if-Abfrage ein, die vorher die eMail-Adresse des Kunden holt und diese auf „leer“ prüft. Ist die eMail-Adresse nicht leer, fügen wir schließlich den neuen Datensatz in die Tabelle „Nachrichten“ – und dazu nutzen wir die Funktion „RunSQL“.

Das fertige Skript:

<cpp
{
   String vorgangsTyp = GetSQL("SELECT Typ FROM
   Vorgaenge WHERE Nummer = "+GetTriggerFieldAs("Nummer",
   "string"));
   if (vorgangsTyp == "Lieferschein")
   {
     String kdMail = GetSQL("SELECT eMail FROM Kunden WHERE
        Kundennummer = "+GetTriggerFieldAs("Kundennummer",
        "string"));
 if (kdMail != "")
 {
   String kdSQLMail = GetSQLAs("SELECT eMail FROM
             Kunden WHERE Kundennummer = "+
             GetTriggerFieldAs("Kundennummer", "string"), "string");
        RunSQL("INSERT INTO Nachrichten (Empfaenger,
                Absender, Mitarbeiter, Betreff, PlainText, Nachrichtentyp)
                VALUES ("+kdSQLMail+",
                'status@ihrefirma.de', -1,
                'Versandbenachrichtigung', 'Sehr geehrter
                Kunde,'+#13+'Ihre Sendung mit der
                Lieferscheinnummer '+"+
                GetTriggerFieldAs("Nummer", "string")+" +
                ' ist nun auf den Weg zu Ihnen. Danke für
                Ihre Bestellung!', 20)");
      }
   }
}
cpp>

Sie sehen also, dass die Entwicklung des Triggers vom Prinzip her gar nicht so kompliziert und umfangreich ist. Es werden lediglich ein paar Funktionen benötigt. Für unseren Trigger haben wir lediglich „GetSQL“, „GetSQLAs“, „GetTriggerFieldAs“ und „RunSQL“ verwendet. Der Rest des Skripts setzt sich zusammen aus ganz normalen C++Kontrollstrukturen (if-Abfragen), sowie aus SQL-Anweisungen.

Die „Kunst“ ist es also vielmehr, den Überblick zu behalten und auch im Nachhinein noch zwischen SQL und C++ - Teilen des Skripts unterscheiden zu können.

Die URL dieser Seite ist: www.rowisoft.de/handbuch-ab_ins_eingemachte.html
Gedruckt am Mittwoch, 26. April 2017.
© Copyright by Rowisoft GmbH.
Commercial use prohibited.


Notizen: