FMM 201303 - MonkeyBread Software

Werbung
k aus dem
Nachdrucer Magazin
ak emaker-magazin.de
FileM
ch: w w w.fil
Christian Schmitz
(Jg. 1981) entwickelt seit 11 Jahren Software und
seit 2006 auch FileMaker Plugins. Außerdem Plugins
für Real Studio und allerlei Software für Mac OS X,
Windows, Linux und iOS.
[email protected]
siehe au
Script-Träger übers Netzwerk
Scripts triggern übers Netzwerk
Manchmal entwickelt man mit FileMaker außergewöhnliche Lösungen mit etwas anderen Funktionen. Möglicherweise wird es dabei erforderlich, ein Script auf einem
anderen Rechner anzustupsen oder sich per SQL-Abfrage
Informationen von einem anderen Computer zu holen.
Wenn man so etwas in FileMaker direkt umsetzen will, führt
wohl kein Weg an einem Server mit „Scheduled Scripts“
vorbei, die regelmäßig ein paar globale Felder überwachen.
Ohne Server geht nichts – wenn wir von diversen Hacks mit
AppleScript u. Ä. absehen. Und bei einer Runtime gibt es von
FileMaker selbst keinerlei Konnektivität nach außen.
Seit der Veröffentlichung der Version 3.2 des MBS FileMaker
Plugins kann man einige Socket-Funktionen benutzen, also
direkt per TCP/UDP-Verbindung Daten mit anderen Teilnehmern im Netzwerk austauschen. Außerdem gibt es die
Serversocket-Funktion zum Senden von Anfragen im Netzwerk. Für normale HTTP-/FTP-Up- bzw. Downloads kann
man weiterhin auf die bewährten CURL-Funktionen zurückgreifen.
Ein Anwendungsfall
Nehmen wir einmal folgenden Anwendungsfall. Wir haben
mehrere FileMaker Installationen im Büro, aber nur an e­ inem
Rechner ist ein bestimmter Drucker angeschlossen. Nun
möchten wir das Script zum Drucken von einem anderen
Computer aus triggern.
Dafür installieren wir auf beiden Rechnern das MBS File­
Maker Plugin. Beim Rechner mit dem Drucker starten wir
die Serversocket-Funktion des Plugins per Script. Beim zweiten FileMaker Rechner senden eine Anfrage um das Script zu
starten.
Auf Anfragen warten
Bei dem ersten FileMaker Computer setzen wir ein Startscript
ein, das die Startfunktion des Plugins aufruft. Dazu verwen24
den wir den Script-Schritt„Variable Setzen“ mit dem Funk­
tionsaufruf
MBS ("ServerSocket.Start"; 9000; "geheim")
Die Zahl 9000 ist die Portnummer, unter der das Socket auf
Anfragen wartet. Diese Nummer kann jede Zahl zwischen
1024 und 65535 sein – vorausgesetzt, der gewünschte Port
ist noch frei. Der FileMaker Server zum Beispiel läuft standardmäßig auf Port 5003 und benutzt zudem einige Ports
im Bereich 16000-16021. Der dritte Aufrufparameter ist
ein Kennwort, das Sie frei vergeben können, um den Zugriff
einzuschränken. Das Plugin soll ja nicht alle Anfragen beantworten, sondern nur solche, die von Ihrem Scripts kommen.
Nach dem Ausführen des Startbefehls wartet das Plugin auf
Anfragen, die dann beantwortet werden, wenn FileMaker
gerade nichts tut – zum Beispiel bei einer Script-Pause oder
wenn kein Script läuft.
Anfrage senden
Bei der anderen FileMaker Datenbank auf dem Client geschieht das Abschicken von Anfragen mit dem Plugin­befehl
ServerSocket.SendQuery
Dieser Befehl hat fünf Parameter: Erstens brauchen wir den
DNS-Namen oder die IP-Adresse des Zielrechners. Das kann
durchaus ein Bonjour-Name wie „KlemensMacbook.local“
sein oder eine lokale IP-Adresse wie „192.168.1.123“. Grundsätzlich sind Namen vorzuziehen, denn IP-Adressen ändern
sich schon mal. Zweitens übergeben wir die zugewiesene
Portnummer, drittens das Kennwort. Anfragen mit falschem
Kennwort werden ignoriert und die andere Seite erhält eine
Fehlermeldung. Die beiden letzten Parameter stellen die eigentliche Anfrage dar. Zuerst wird der Anfragetyp festgelegt:
„SQL“, „Evaluate“ oder „Script“.
Bei „SQL“ können Sie SQL-Anfragen übergeben, also Abfragen für Datensätze in den Tabellen in FileMaker. Zum Beispiel folgende:
FMM_201303
© 1994 – 2013 K&K Verlag GmbH, Hamburg
FileMaker Erweiterungen
k aus dem
Nachdrucer Magazin
ak emaker-magazin.de
FileeauM
ch: w w w.fil
FileMaker Erweiterungen
sieh
SELECT Vorname, Nachname FROM Kunden WHERE
KundeID=5
Sie können natürlich auch andere SQL-Befehle benutzen: Daten können mit UPDATE geändert, mit INSERT eingefügt und
mit DELETE gelöscht werden. Mit ALTER-TABLE-Befehlen
können Sie sogar Spalten definieren oder löschen. Für Details
zu den erlaubten SQL-Befehlen schauen Sie aber bitte in ein
gutes Buch zu SQL.
Fazit
Die Möglichkeit, von einem FileMaker aus mit einem anderen im lokalen Netzwerk zu reden, hat enormes Potential.
Auch die anderen Socket-Funktionen bieten viele Optionen.
Zum Beispiel können Sie über ein UDP-Socket Nachrichten
als Broadcast durch das lokale Netzwerk senden und an allen
FileMaker Stationen empfangen. Bei dem Anfragetyp „Evaluate“ können Sie einen Ausdruck
berechnen lassen. Das können einfache Abfragen wie
GET(AccountName)
sein, um Statusinformationen abzurufen. Sie können aber
auch Ihre Custom Functions aufrufen oder den Wert einer
globalen Variablen abfragen. Auch der Aufruf unseres Plugins
ist möglich.
Der Anfragetyp „Script“ ermöglicht es Ihnen, Scripts zu starten: Übergeben Sie dazu einen Text mit dem Dateinamen der
FileMaker Datenbank, gefolgt von einem Doppelpunkt als
Trenner und anschließend dem Script-Namen. Nach einem
weiteren Doppelpunkt können Sie noch einen optionalen
Scriptparameter übergeben. Die ganze Anfrage kann z. B. so
aussehen:
MBS ("ServerSocket.SendQuery"; "FrontDeskMac.local";
9000; "mysecret"; "Script"; "OrderDatabase.fmp12:
PrintLastOrder:5")
FMM_201303 Queries: Das Beispielprojekt mit allerlei Beispielanfragen. ♦
25
2008 01
Deutschland e 9,50 | www.filemaker-magazin.de
Das unabhängige Magazin für FileMaker
Anwender und Entwickler
FMM_200801
Geschüttelt, nicht gerührt …
Das FileMaker Magazin
● Einzige, deutschsprachige Fachzeitschrift zu FileMaker
● Wissen aus erster Hand von anerkannten FileMaker Fachautoren
● Große Themenvielfalt für Anwender, Entwickler und
Fortgeschrittene
Gut zu wissen
Ist Maintenance
eigentlich ansteckend?
FileMaker für Einsteiger
Wie Sie in FileMaker Ihre
ersten „Felder bestellen“
Buchbesprechungen
© 1994 - 2008 K&K Verlag GmbH, Hamburg
Neue Fachbücher
zu FileMaker 9
FMM_2008_01.Titel.indd 1
Exklusiv für Premium-Abonnenten
29.04.2008 10:09:42 Uhr
● Sechs FMM Ausgaben pro Jahr
● Kostenlose Nutzung des Abonnentenbereichs auf
www.filemaker-magazin.de
● PDF-Online-Archiv mit allen bisher erschienenen Ausgaben
● Jede Ausgabe mit kostenlosen Beispieldateien und Zusatzinfos
zum Download
Unser Service
● Aktuelle Neuheiten, Tipps und Infos, Kleinanzeigen und
vieles mehr jederzeit online auf unseren Webseiten
● Hilfe bei allen Fragen zu FileMaker im FMM Forum
● Kompetente Beratung zum Kauf von FileMaker Lizenzen:
Einfach anrufen +49 (0)40 589 65 79 70.
Hier finden Sie Aktuelles zu FileMaker
Produkten, egal ob Sie kaufen, mieten
oder sich einfach informieren möchten.
Eine kostenlose Leseprobe des
FileMaker Magazins erhalten Sie,
wenn Sie hier klicken.
Wenn Sie sich für ein
FileMaker Magazin Abo
interessieren, klicken Sie
bitte hier!
K&K Verlag GmbH · www.filemaker-magazin.de · Telefon +49 40 589657970
Herunterladen