Links überspringen

FileMaker Server Script aus FileMaker Runtime ausführen.

ERP-Software als Cloud-Server-Paket mieten

Scripts auf FileMaker Server aus Runtime ausführenMit FileMaker lassen sich problemlos Scripte entfernter FileMaker-Datenbanken starten und bei Bedarf entsprechende Parameter übergeben. Einfach die entfernte Datei als externe Datenquelle einrichten und das Script der entfernten Datenbank über den Script-Editor aufrufen. Anders verhält es sich mit einer in FileMaker Pro Advanced erstellten Runtime. Da Runtime-Lösungen nicht netzwerkfähig sind, ist es mit Bordmitteln nicht ohne Weiteres möglich, ein Script einer auf einem FileMaker Server bereitgestellten Datenbank auszuführen; geschweige denn zugehörige Parameter zu übergeben. Mit dem MBS-Plugin von Monkeybread Software kann diese Hürde jedoch problemlos überwunden werden. Wenn die Datenbank auf dem FileMaker Server auch für PHP freigegeben wurde, läßt sich ein Script einer im Netzwerk oder Internet freigegebenen FileMaker-Datenbank auch aus einer Runtime-Lösung aufrufen – inklusive Parameterübergabe. In diesem Artikel zeigen wir, wie das funktionieren kann.

Voraussetzung: FileMaker Server und MBS-Plugin

MBS FileMaker-PluginDa eine FileMaker Runtime-Lösung keine Möglichkeiten bietet, Kontakt mit entfernten Datenbanken aufzunehmen, kann der Script-Aufruf nicht auf herkömmlichem Weg erfolgen. In diesem Artikel nutzen wir die PHP-Fähigkeiten eines FileMaker Server in Verbindung mit CURL aus dem MBS-Plugin. Aus diesem Grund ist der Einsatz eines FileMaker Server und des MBS Plugin für die in diesem Artikel vorgestellte Lösung zwingend erforderlich. Das MBS FileMaker Plugin ist bei Monkeybread Software für Mac OS X und Windows zu Preisen ab 99 Euro zzgl. 19% MwSt. erhältlich. In der heute erhältlichen Version 5.0 bietet das MBS FileMaker Plugin nunmehr über 3.000 neue Funktionen für die Nutzung in FileMaker-Datenbanken. Neben den hier beschriebenen CURL-Funktionen eröffnet das Plugin viele weitere Möglichkeiten wie die interne Bearbeitung von PDF-Dokumenten, Ansteuerung von Scannern und anderer Hardware, TAPI-Funktionen, Barcodes, SQL-Verbindungen, interne Grafikbearbeitung, Dateimanipulationen und viele, viele weitere Funktionen sowie einige Annehmlichkeiten in FileMaker selbst, wie z.B. Syntax Coloring.

FileMaker und Indianer

Wie OS X Server nutzt auch FileMaker einen Apache Webserver, um Daten für die PHP-API oder für Web-Publishing bereitzustellen. Sobald FileMaker Server installiert wurde, steht i.d.R. auch der Apache Webserver zur Verfügung, den FileMaker Server für die Web-Freigabe von Datenbanken benötigt. Um ein Script in einer vom FileMaker Server bereitgestellten Datenbank aufzurufen, benötigen wir ebenfalls den mit FileMaker Server installierten Apache Webserver. Das dahinterstehende Prinzip ist einfach: Wir erstellen für den Aufruf eines Scriptes eine PHP-Datei, die mittels des MBS-Plugins per URL direkt von einer FileMaker Runtime-Lösung aufgerufen werden kann. Die PHP-Datei liest den Namen des Scriptes sowie ggf. einen Parameter ein und übergibt beide Angaben an die entsprechende Datenbank, die vom FileMaker Server bereitgestellt wird.

PHP-Datei erstellen für die Datenübergabe

Zunächst müssen wir also eine PHP-Datei erstellen, um die Datenübergabe von der FileMaker Runtime-Lösung an die vom FileMaker Server freigegebene FileMaker-Datenbank zu realisieren. Der Apache-Webserver des FileMaker Server speichert solche Dateien im Verzeichnis

Macintosh HD/Library/FileMaker Server/HTTPServer/htdocs

In diesem Verzeichnis muss nun eine PHP-Datei erstellt werden, die beispielsweise folgenden Quelltext enthält:

<html>
<head>
    <title>Beispieldatei</title>
</head>
<body>
<p>
     <?php
     error_reporting (E_ALL);
     require_once ('filemaker.php');
     $v = $_POST["parameter"];
     $connection =& new FileMaker();
     $connection->setProperty('database', 'EntfernteDatei');
     $connection->setProperty('hostspec', 'Serveradresse');
     $connection->setProperty('username', 'Benutzername');
     $connection->setProperty('password', 'Passwort');
     $cmd = $connection->NewPerformScriptCommand('EntfernteDatei', 'Scriptname', $v);
     $result = $cmd->execute();
     if (FileMaker::isError($result))
     {
          echo $result->message;
     }
     echo 'Script ausgeführt';
     ?>
     </p>
</body>
</html>

Die PHP-Datei übernimmt in der Variable $v den Script-Parameter aus der FileMaker Runtime-Lösung und übergibt ihn in der Zeile „$cmd = $connection->NewPerformScriptCommand(‚EntfernteDatei‘, ‚Scriptname‘, $v);“ an die entfernte FileMaker-Datenbank, die vom FileMaker Server freigegeben wurde.

Aufruf der PHP-Datei aus der FileMaker Runtime-Lösung

Um die PHP-Datei aus der FileMaker Runtime-Lösung heraus mit Übergabe eines Parameters ausführen zu können, nutzen wir die CURL-Funktionen des MBS-Plugins. Vergewissern Sie sich, dass das MBS-Plugin in die Runtime-Lösung erfolgreich integriert wurde. Folgende Script-Befehle sind für die Ausführung der erstellten PHP-Datei mit Parameter-Übergabe erforderlich:

Variable setzen [$curl; Wert:MBS("CURL.New")]
Variable setzen [$result; Wert:MBS("CURL.SetOptionURL"; $curl; "http://www.IhrFileMakerServer.de)]
Variable setzen [$result; Wert:MBS("CURL.FormAddKeyValue"; $curl; "parameter"; IhrScriptParameter)]
Variable setzen [$result; Wert:MBS("CURL.FormFinish"; $curl; $input)]
Variable setzen [$result; Wert:MBS("CURL.Perform"; $curl)]
Variable setzen [$result; Wert:MBS("CURL.Cleanup"; $curl)]

Mit den o.g. Befehlen wird die auf Ihrem FileMaker Server gespeicherte PHP-Datei aufgerufen und ein Parameter übergeben. Bei der Übergabe von Parametern handelt es sich allerdings um eine Einbahnstraße: Mit dieser Methode können Parameter ausschließlich von der FileMaker Runtime über CURL an den Server übergeben werden – vom Server zur FileMaker Runtime ist dies nicht ohne weiteres möglich.

Hinterlassen Sie einen Kommentar

Diese Seite teilen:

ERP-Software so flexibel wie Ihr Unternehmen.
Wir beraten Sie gern.

Anpassbare ERP-Software für Mac, Windows und iOS.

Sie sind hier: FileMaker Server Script aus FileMaker Runtime ausführen.