Warenkorb
0
Wagen 0
Telefonische Beratung +49 (0) 4482-562 90 70
In diesem Fachartikel erläutern wir, wie Sie SMS-Nachrichten unter Verwendung des MBS Plugins direkt aus Ihrer FileMaker-Datenbank heraus versenden können. Dabei erstellen wir ein Teilscript, das durch einen Aufruf mit fünf Parametern beliebige SMS-Nachrichten an beliebige Empfänger senden kann. Als Gateway für den Versand von SMS-Nachrichten verwenden wir in diesem Beispiel den deutschen Anbieter smstrade.
Dieser Dienst bietet den Versand von SMS-Nachrichten in deutsche Netze ab 1,6 Cent pro Nachricht, weltweit können SMS-Nachrichten zu Preisen ab 4,9 Cent pro Nachricht versendet werden, jeweils zzgl. 19% Mehrwertsteuer. Nach der Registrierung stehen für den Start 30 kostenlose SMS-Nachrichten zur Verfügung, die zu Testzwecken versendet werden können. Eine monatliche Grundgebühr fällt bei diesem Anbieter nicht an. Im folgenden erfahren Sie, wie Sie SMS-Nachrichten automatisiert direkt aus Ihrer FileMaker-Datenbank heraus versenden können.
Um SMS-Nachrichten über das SMS-Gateway versenden zu können, registrieren Sie sich zunächst bei smstrade. Die Registrierung ist kostenlos und beinhaltet zum Start den Versand von bis zu 30 kostenlosen SMS-Nachrichten.
Zunächst werden in Ihrer FileMaker-Datenbank drei Felder benötigt, die die Zugangs- und Stammdaten für das SMS-Gateway enthalten sollen. Diese Felder gelten global für die Nutzung in Ihrer gesamten FileMaker-Lösung. Alternativ können Sie statt Feldern auch globale Variablen nutzen, die beim Start Ihrer Lösung in einem Script initialisiert werden. Für den Versand von SMS-Nachrichten werden folgende Felder für die Stammdaten benötigt:
Erstellen Sie in Ihrer Datenbank drei Felder oder globale Variablen, auf die Sie in ihrer gesamten Lösung Zugriff haben. Nach der Registrierung bei smstrade tragen Sie die Stammdaten in die entsprechenden Felder ein. Für den Versand von SMS-Nachrichten innerhalb Deutschlands empfehlen wir die Tarifoption ‚basic‘.
Im nächsten Schritt programmieren wir ein Script, mit dem Sie beliebige SMS-Nachrichten an beliebige Empfänger aus der gesamten Datenbank heraus versenden können. Das Script kann später mit folgenden fünf Script-Parametern aufgerufen werden:
Wenn Sie Felder ‚Absender‘, ‚Gateway Key‘ und ‚Route‘ aus Stammdatenfeldern erzeugen, sollte das Script zunächst prüfen, ob diese Felder auch gepflegt wurden. Aus diesem Grund enthält unser Script am Anfang eine entsprechende Abfrage. Im folgenden finden Sie das gesamte Script zum Versenden von SMS-Nachrichten mit Unterstützung des MBS FileMaker Plugins.
Beim Aufruf dieses Scripts werden fünf Script-Parameter in einem String übergeben, dessen Werte mit Hochstrich (|) getrennt werden. Für die Trennung des Strings nutzen wir eine eigene Funktion namens „StringTrennen“. Um das Script wie gezeigt verwenden zu können, legen Sie zunächst folgende Custom Function (eigene Funktion) in FileMaker Pro Advanced an:
StringTrennen (String; Nummer)
Falls(Nummer = 1;
ZeichenLinks ( String; (Position ( String; "|"; 1; 1))-1);
ZeichenMitte ( String;
(Position ( String; "|"; 1; Nummer-1))+1;
(Position ( String; "|"; 1; Nummer)) - ((Position ( String; "|"; 1; Nummer-1))+1)
)
)
Haben Sie die oben genannte Custom Function eingefügt oder verfügen über eine andere eigene Funktion, die durch ein Zeichen getrennte Strings extrahieren kann, legen Sie im Scripteditor ein neues Script an und benennen Sie es als Teilscript nach Ihrem persönlichen Namensschema (z.B. ‚ts.SMS_Versand‘).
Wenn [NICHT IstLeer(Absender) UND NICHT IstLeer(Key) UND NICHT IstLeer(Route)]
#Script-Parameter: Tel | Text | From | Key | Route
Variable setzen [$tel_nr; Wert:StringTrennen(Hole(ScriptParameter); 1)]
Variable setzen [$text; Wert:StringTrennen(Hole(ScriptParameter); 2)]
Variable setzen [$from; Wert:StringTrennen(Hole(ScriptParameter); 3)]
Variable setzen [$key; Wert:StringTrennen(Hole(ScriptParameter); 4)]
Variable setzen [$route; Wert:StringTrennen(Hole(ScriptParameter); 5)]
#
# Transfer initialisieren
Variable setzen [$r; Wert:MBS("Trace")]
Variable setzen [$to; Wert:MBS("String.EncodeURLComponent"; $tel_nr; "utf8")]
Variable setzen [$from; Wert:MBS("String.EncodeURLComponent"; $from; "utf8")]
Variable setzen [$body; Wert:Austauschen(MBS("String.EncodeURLComponent"; $text; "utf8"); "%20"; "+")]
Variable setzen [$curl; Wert:MBS("CURL.New")]
Variable setzen [$result; Wert:MBS("CURL.SetOptionpost"; $curl; 1)]
Variable setzen [$result; Wert:MBS("CURL.SetOptionVerbose"; $curl; 1)]
Variable setzen [$result; Wert:MBS("CURL.SetOptionURL"; $curl; "https://gateway.smstrade.de")]
#
# Input XML und SMS-Details setzen
Variable setzen [$content; Wert:"key=" & $key & "&" & "to=" & $to & "&" & "message=" & $body & "&" &
"route=" & $route & "&" & "from=" & $from & "&" & "charset=utf-8"]
Variable setzen [$content; Wert:MBS( "String.ReplaceNewline"; $content; 2 )]
Variable setzen [$result; Wert:MBS("CURL.SetOptionPostFields"; $curl; $content)]
#
# Transfer starten
Variable setzen [$result; Wert:MBS("CURL.Perform"; $curl)]
#
# Ergebnis prüfen
Variable setzen [$$debugText; Wert:MBS("String.ReplaceNewline"; MBS("CURL.GetDebugAsText"; $curl);1)]
Variable setzen [$$resultText; Wert:MBS("String.ReplaceNewline"; MBS("CURL.GetResultAsText"; $curl);1)]
Variable setzen [$r; Wert:MBS("CURL.Cleanup"; $curl)]
Sonst
Eigenes Dialogfeld anzeigen ["SMS-Gateway nicht eingerichtet"; "Keine Stammdaten eingetragen!"; "OK"]
Ende (wenn)
Im ersten Teil des Scriptes wird zunächst der übergebene Script-Parameter-String in einzelne Variablen extrahiert. Im zweiten Teil wird die CURL-Engine des MBS FileMaker Plugin initialisiert. Der dritte Teil setzt den String zusammen, der zum Server des SMS-Gateways gesendet wird. Der Versand findet im Teilscript „Transfer starten“ statt. Im letzten Teil wird der Versandstatus in die globalen Variablen $$result und $$debug geschrieben und kann hier nach dem Versand ausgelesen werden.
Damit Sie nicht in C=64-Manier den gesamten Quellcode abtippen müssen, stellen wir Ihnen die in diesem Artikel beschriebene Lösung als Beispieldatei zum Download zur Verfügung. Die Beispieldatei ist im fmp12-Format und setzt FileMaker 12, 13 oder 14 mit installiertem MBS FileMaker Plugin voraus. Wer nicht über eine Lizenz von FileMaker Pro Advanced, sondern nur über den normalen FileMaker Pro verfügt, kann diese Beispieldatei nutzen, die die benötigte Custom Function zum Trennen des Übergabestrings bereits enthält.
In einer zeitlich begrenzten Aktion legt FileMaker ab sofort bei Kauf von FileMaker Pro 12 oder FileMaker Pro Advanced 12 kostenlos die FileMaker Trainingsmodule in deutscher Sprache dazu. Die deutschsprachigen Trainingsunterlagen enthalten Übungen, Demo-Dateien und Videos (in englischer Sprache), mit denen Sie lernen können, wie man professionelle benutzerfreundliche FileMaker 12-Datenbanklösungen entwickelt.…
Seit heute bietet FileMaker erneut eine Aktion an, bei der nach dem Kauf von FileMaker Go für das iPhone oder das iPad eine Lizenz von FileMaker Pro zum halben Preis erworben werden kann. Die Aktion gilt bis zum 22. März 2012 und geht ganz einfach vonstatten: Kaufen Sie FileMaker Go…
Autor Horst-Dieter Radke bietet auf 368 Seiten eine profunde Einführung in die Arbeit mit FileMaker Pro 11 und macht dabei aus Einsteigern angehende Experten. Dabei beschäftigt sich der Autor mit diesen Themen: Datenbankgrundlagen: Was müssen die Leser über Datenbanken wissen? Datenbankentwicklung: Wie entsteht eine FileMaker-Datenbank? Datenbanken nutzen - Wie erfasst,…
FileMaker hat heute einige Sicherheitsupdates für FileMaker 13 veröffentlicht. In ca. zwei Wochen wird das Sicherheitsupdate auch für FileMaker 12 veröffentlicht. Das heute erschienene Update betrifft FileMaker 13 Pro/Advanced und FileMaker Server. FileMaker betont, dass die Updates auf jeden Fall in der korrekten Reihenfolge installiert werden müssen, weil anderenfalls FileMaker…
Hinzufügen von {{itemName}} zum Warenkorb
Hinzugefügt {{EinkaufsName}} zum Warenkorb