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