Einleitung
Es sind in diesem Tutorial Schritte nötig, die sich außerhalb von Navision befinden. Als erstes müssen wir uns bei einem Anbieter eines SMS-Gateways registrieren. Anschließend muss eine DLL besorgt werden, mit der wir einen HTTP-Request absenden können und zu guter Letzt erstellen wir eine Codeunit die diese DLL verwendet um eine SMS zu verschicken.
SMS-Gateway
Beginnen wir also mit der Suche nach einem geeigneten Anbieter eines SMS-Gateways. Mesmo, Massenversand, Seriensms, Hostserver und Teammessage sind nur wenige von den unzähligen Anbietern, die im Internet zufinden sind. Fast jeder dieser Anbieter besitzt eine HTTP-Schnittstelle die wir benötigen. Registriere dich einfach bei einem dieser Anbieter.
DLL
Verfügung stellt um einen HTTP-Request abzusetzen. Auch hier findet man im Internet passende Downloads. Viele davon sind jedoch kostenpflichtig. Für unser Tutorial laden wir uns so eine DLL bei der Firma KJA Associates herunter. Die heruntergeladene DLL muss im Betriebssystem mit dem Aufruf
regsvr32 khttp.dll
registriert werden und anschließend steht sie dir in Navision zur Verfügung.
Navision
Kommen wir nun zu den Arbeiten in Navision. Erstelle eine neue Codeunit über den ObjectDesigner. Über „Ansicht“ – „C/AL Globals“ erstellen wir eine Textkonstante mit der Bezeichnung „URL“. Der Wert dieser Textkonstante ist nun abhängig vom Anbieter des SMS-Gateways. In der Regel wird ein Internetskript aufgerufen und einige Parameter übergeben und könnte so aussehen:
http://www.anbieter.de/senden.php?id=1000&text=Test&emfaenger= 004917012345&absender=navision24
Diese Adresse bekommst du bei deinem gewählten Anbieter. Trage die komplette Adresse, also mit den Parameter in die Textkonstante ein. Dabei ist zu beachten, dass die Parameter „text“, „empfaenger“ und „sender“ durch die Navision-Platzhalter %1, %2 und %3 ersetzt werden. Die Textkonstante würde dann so aussehen:
http://www.anbieter.de/senden.php?id=1000&text=%1&emfaenger=%2&absender=%3
Nun erstelle eine neue Funktion mit der Bezeichnung „SendSMS“ und den drei folgenden Parametern:
Name | Datentyp | Länge |
---|---|---|
Text | Text | 160 |
Empfänger | Text | 30 |
Adresse | Text | 30 |
Außerdem erhält die neue Funktion eine lokale Variable mit der Bezeichnung „HTTP". Diese Variable ist vom Typ „Automation“ und Subtyp „'khttp 1.0 Type Library'.inet“. Auch der Subtyp ist von Anbieter zu Anbieter unterschiedlich.
Jetzt können wir die folgenden drei Zeilen Programmcode in die Funktion stellen:
CREATE(HTTP); HTTP.openurl(STRSUBSTNO(URL, Text, Empfänger, Absender)); CLEAR(HTTP);
Auch der Befehl openurl der Variable HTTP ist von Anbieter zu Anbieter unterschiedlich und muss eventuell angepasst werden.
Würden wir die neue Navision-Funktion beispielsweise wie folgt aufrufen:
SendSMS("Dies ist ein Test", "004917012345", "Navision24");
würde Navision jetzt eine SMS an die angegebene Handynummer schicken. Als Absender würde „Navision24“ erscheinen.