FileMaker und MySQL am Beispiel xt:Commerce.

FileMaker und MySQL am Beispiel xt:CommerceAufgrund der vielen Automatisierungsmöglichkeiten und des hohen Datenaufkommens stellt FileMaker gerade für Betreiber von Onlineshops eine ideale Lösung zur Optimierung der Betriebsabläufe dar. FileMaker-Lösungen lassen sich schnell und unkompliziert an die eigenen Bedürfnisse anpassen.

Bereits seit einigen Generationen ist FileMaker in der Lage, direkt auf externe SQL-Datenquellen wie einer MySQL-Datenbank eines xt-Commerce-basierten Onlineshops zuzugreifen und dort Daten zu lesen und zu schreiben. In diesem Artikel beschreibe ich, wie Sie mit FileMaker Pro unter Mac OS X oder Windows direkt auf eine MySQL-Datenbank von xt:Commerce zugreifen können, wie Sie Daten aus xt:Commerce in FileMaker importieren und wie Sie Statusmeldungen aus FileMaker in xt:Commerce übertragen können.

Was wird für den Zugriff auf die SQL-Datenbank benötigt?

Der Zugriff auf eine externe SQL-Datenquelle erfolgt über die ODBC-Schnittstelle. Um eine ODBC-Datenquelle einrichten zu können, wird ein ODBC-Manager für Mac OS X benötigt. Ein solcher kann unter www.odbcmanager.net als Freeware kostenlos heruntergeladen werden. Auf dem Mac kann auch der ODBC-Administrator von Mac OS X genutzt werden, und unter Windows kann der im System enthaltene ODBC-Manager genutzt werden.

Zusätzlich benötigen Sie für den Zugriff speziell auf die MySQL-Datenbank von xt:Commerce einen ODBC-Connector für Mac OS X, der auf der Website von MySQL heruntergeladen werden kann. Für eine stabile Datenverbindung zur Datenbank von xt:Commerce benötigen Sie den ODBC-Connector in der älteren Version 3.51.27. Die DMG-Version für Mac OS X 10.5 (x86, 32-bit) funktioniert auch unter Mac OS X 10.6 Snow Leopard problemlos.

Installieren des MySQL ODBC-Connectors

Bevor die Datenquelle im ODBC-Manager eingerichtet werden kann, muß zunächst der ODBC-Connector für MySQL installiert werden. Nachdem das Programm heruntergeladen wurde, startet automatisch der Installationsassistent des MySQL ODBC-Connector:

Installation des ODBC Connector für Mac OS X.

Nachdem Sie fortgefahren sind und die Lizenzbedingungen akzeptiert haben, können Sie das Zielvolume für die Installation auswählen und den ODBC-Connector auf Ihrem System installieren.

ODBC Connector Installation: Auswahl des Zielvolume

Während des Installationsvorgangs wird der ODBC-Connector automatisch in Ihrem System installiert, so daß der Treiber für diesen Connector beim nächsten Start des ODBC-Manager zur Verfügung steht.

Einrichten der ODBC-Datenquelle

Nachdem der SQL-Connector heruntergeladen wurde,

Programmsymbol des ODBC-ManagerIm folgenden beschreibe ich die Einrichtung des ODBC-Connectors mit dem ODBC-Manager für Mac OS X – weiter oben im Text befindet sich ein Link zum Download dieses Programms. In Windows oder unter Mac OS X mit anderen ODBC-Managern sind die Einstellungen äquivalent vorzunehmen.

Nachdem der ODBC-Manager heruntergeladen und in das Programmverzeichnis von Mac OS X kopiert wurde, Starten Sie den ODBC-Manger durch Doppelklick auf das Programmsymbol. Das Programm startet daraufhin und öffnet das Hauptfenster des ODBC-Managers. ODBC-Datenquellen können immer systemweit (System-DSN), also für alle Benutzer auf dem System oder für einen Benutzer (Benutzer-DSN) eingerichtet werden. Im Bereich [Ablaufverfolgung] kann die Nutzung der ODBC-Datenquelle in einem Textprotokoll festgehalten werden.

ODBC-Manager Hauptfenster

Je nach dem, ob Sie die Datenquelle für den aktiven Benutzer oder systemweit einrichten möchten, klicken Sie im entsprechenden Bereich auf die Schaltfläche [Hinzufügen…].

ODBC-Manager: Hinzufügen einer Datenquelle

Für xt:Commerce wählen Sie an dieser Stelle die Version 3.51 des MySQL ODBC-Treibers aus und  klicken auf die Schaltfläche [OK]. Tragen Sie im folgenden Fenster alle Daten Ihrer MySQL-Datenbank ein, die die Datentabellen für Ihren xt:Commerce Onlineshop enthält.

Konfiguration der ODBC-Datenquelle

Nachdem Sie alle Daten in die entsprechenden Felder eingetragen haben, klicken Sie anschließend auf die Schaltfläche [Test], um eine Verbindung über Ihre neu eingerichtete Datenquelle herzustellen und diese zu testen.

ODBC-Datenquelle erfolgreich getestet.Wurde der Test der ODBC-Datenquelle erfolgreich bestanden, erscheint eine entsprechende Alertbox, und die Datenquelle kann durch Klick auf die Schaltfläche [OK] eingerichtet werden. Sie steht nun für den aktiven Benutzer oder systemweit als ODBC-Quelle für alle Programme zur Verfügung, die ODBC-Verbindungen unterstützen, also auch in FileMaker, was wir als Nächstes ausprobieren werden. Nachdem die neue ODBC-Datenquelle eingerichtet wurde, kann der ODBC-Manager nun beendet werden.

Nutzung der ODBC-Datenquelle mit FileMaker

Starten Sie FileMaker und öffnen Sie eine Datenbank, mit der Sie eine Verbindung zu Ihrer xt:Commerce-Datenbank herstellen möchten. Wenn Sie bereits über eine FileMaker-Lösung für Ihre Shopaufträge verfügen, öffnen Sie am Besten die Version, die Sie weiterentwickeln möchten.

Auslesen von Daten aus der xt:Commerce-Datenbank

Um Daten über die ODBC-Schnittstelle aus xt:Commerce in FileMaker zu importieren, bedarf es nun lediglich des bekannten „Datensätze Importieren“-Befehls im Scriptmaker. Ich empfehle Ihnen, für die Daten aus xt:Commerce ein Abbild der originalen Tabelle aus xt:Commerce in Ihrer Lösung anzulegen. Somit gestaltet sich der Import aufgrund gleicher Feldnamen einfacher, und Ihre Lösung besitzt eine eigene Tabelle mit allen Aufrägen aus xt:Commerce.

Abbild einer Tabelle aus xt:Commerce erstellen

Um ein Abbild einer Tabelle aus xt:Commerce in FileMaker zu erstellen, importieren Sie am Besten die Tabelle mit Feldnamen in Ihre FileMaker-Lösung. Wählen Sie in der in der Menüleiste der FileMaker-Datei, in die Sie die Tabelle importieren möchten, den Punkt

Ablage (Datei) > Datensätze importieren > ODBC-Datenquelle

aus. Wählen Sie nun die im ODBC-Manager eingerichtete ODBC-Datenquelle Ihres SQL-Servers mit den Datenbanken aus xt:Commerce aus und tragen Sie im folgenden Dialog Ihren Benutzernamen und Ihr Kennwort der MySQL-Datenbank ein. Nun erscheint der Dialog ODBC-SQL-Query angeben, in dem Sie einen SQL-Befehl entweder aus einer Berechnung oder als statischen Text angeben können.

FileMaker: ODBC-SQL-Query angeben

Um eine ganze Tabelle in FileMaker zu importieren, klicken Sie einfach auf die Schaltfläche [Query-Erstellung…], woraufhin sich ein Assistent zur Erstellung der SQL-Abfrage öffnet.

Assistent zur Erstellung einer SQL Query

In der linken Spalte finden Sie alle Tabellen, die sich auf dem entfernten SQL-Server befinden. Um beispielsweise die Tabelle „orders“ aus xt:Commerce zu importieren, wählen Sie in der linken Spalte die entsprechende Tabelle „orders“ aus. In der rechten Spalte erscheinen nun die verfügbaren Felder der links ausgewählten Tabelle. Um die Abfrage automatisch zu erstellen, doppelklicken Sie einfach in der rechten Spalte jedes zu importierende Feld. Im unteren Fenster sehen Sie, wie die Abfrage automatisch Feld für Feld erstellt wird. Am Schluß sollte das Fenster dann so aussehen:

SQL-Abfrage der Tabelle 'orders' aus xt:Commerce

Markieren Sie im Feld „SQL-Query“ nun den gesamten Text (cmd-A), fügen ihn in ein Dokument in einem Texteditor (z.B. Textedit) ein und speichern den Text z.B. unter „SQL_xtC_orders.txt“ ab.

Nach Klick auf die Schaltfläche [OK] erscheint der Dialog zur Zuordnung der Felder. Wählen Sie in diesem Dialog unter der Bezeichnung „Ziel“ den Punkt [Neue Tabelle: „Name der Datenquelle“] aus. Nach Klick auf die Schaltfläche [Importieren] werden nun alle in der Abfrage ausgewählten Felder in einer neuen Tabelle angelegt und die zugehörigen Daten importiert. Nach dem Import finden Sie die Tabelle in der Verwaltung der Datenbank und können sie nach Ihren Wünschen umbenennen, z.B. in „xtC_orders“.

Script für den Datenimport aus xt:Commerce erstellen

Um einen Datenimport in Ihre Lösung zu integrieren, öffnen Sie den Scriptmaker und erstellen Sie ein neues Script. Fügen Sie in Ihrem neuen Script den Befehl „Datensätze importieren“ hinzu. Wählen Sie nun als Datenquelle nun „ODBC-Datenquelle“ aus und wählen Sie die im ODBC-Manager erstellte ODBC-Datenquelle aus. Geben Sie nun Ihre Login-Daten für die SQL-Datenbank ein und aktivieren den Haken „Benutzername und Passwort speichern“. Nach Klick auf die Schaltfläche [OK] können Sie nun wieder die SQL-Abfrage als berechnete Formel oder als Text einfügen. Wenn Sie künftig nur einen bestimmten Auftrag mit Ihrem Script importieren möchten, müssen Sie dazu eine berechnete SQL-Abfrage erstellen. In unserem Beispiel gehen wir davon aus, daß die zu importierende Auftragsnummer in der Variable $orders_id gespeichert wird.

Öffnen Sie nun Ihr gespeichertes Textdokument mit der SQL-Abfrage. Fügen Sie an den Anfang Anführungsstriche („) und an das Ende der Abfrage folgenden Befehl hinzu:

WHERE `orders`.`orders_id` = " &  $orders_id

Mit diesem Befehl schränken Sie den Import auf den Datensatz ein, dessen Feld <orders_id> den Wert der Variable $orders_id beinhaltet. Ihr gesamtes SQL-Statement sollte nun ungefähr so aussehen:

"SELECT `orders`.`account_type`, `orders`.`afterbuy_id`, `orders`.`afterbuy_success`,
`orders`.`billing_address_format_id`, `orders`.`billing_city`, `orders`.`billing_company`,
`orders`.`billing_country`, `orders`.`billing_country_iso_code_2`,
`orders`.`billing_firstname`, `orders`.`billing_lastname`, `orders`.`billing_name`,
`orders`.`billing_postcode`, `orders`.`billing_state`, `orders`.`billing_street_address`,
`orders`.`billing_suburb`, `orders`.`cc_cvv`, `orders`.`cc_expires`, `orders`.`cc_issue`,
`orders`.`cc_number`, `orders`.`cc_owner`, `orders`.`cc_start`, `orders`.`cc_type`,
`orders`.`comments`, `orders`.`conversion_type`, `orders`.`currency`,
`orders`.`currency_value`, `orders`.`customers_address_format_id`, `orders`.`customers_cid`,
`orders`.`customers_city`, `orders`.`customers_company`, `orders`.`customers_country`,
`orders`.`customers_email_address`, `orders`.`customers_firstname`, `orders`.`customers_id`,
`orders`.`customers_ip`, `orders`.`customers_lastname`, `orders`.`customers_name`,
`orders`.`customers_postcode`, `orders`.`customers_state`, `orders`.`customers_status`,
`orders`.`customers_status_discount`, `orders`.`customers_status_image`,
`orders`.`customers_status_name`, `orders`.`customers_street_address`,
`orders`.`customers_suburb`, `orders`.`customers_telephone`, `orders`.`customers_vat_id`,
`orders`.`date_purchased`, `orders`.`delivery_address_format_id`, `orders`.`delivery_city`,
`orders`.`delivery_company`, `orders`.`delivery_country`,
`orders`.`delivery_country_iso_code_2`, `orders`.`delivery_firstname`,
`orders`.`delivery_lastname`, `orders`.`delivery_name`, `orders`.`delivery_postcode`,
`orders`.`delivery_state`, `orders`.`delivery_street_address`, `orders`.`delivery_suburb`,
`orders`.`hanseaticbank_reference`, `orders`.`language`, `orders`.`last_modified`,
`orders`.`orders_date_finished`, `orders`.`orders_id`, `orders`.`orders_ident_key`,
`orders`.`orders_status`, `orders`.`payment_class`, `orders`.`payment_method`,
`orders`.`refferers_id`, `orders`.`shipping_class`, `orders`.`shipping_method`
FROM `orders` WHERE `orders`.`orders_id` = " &  $orders_id

Sie können in Ihrem Script nun beispielsweise die gewünschte Auftragsnummer vom Benutzer abfragen lassen und den entsprechenden Auftrag automatisch per Script in Ihre FileMaker-Lösung importieren.

Schreiben von Daten in eine SQL-Datentabelle

Mit FileMaker lassen sich per ODBC auch direkt Daten in eine Tabelle aus xt:Commerce schreiben bzw. updaten. Im Scriptmaker gibt es für diesen Zweck den folgenden Befehl:

SQL Query ausführen [...]

Im folgenden Beispiel legen wir in der xt:Commerce-Tabelle orders_status_history einen neuen Datensatz an. In dieser Tabelle werden die Statusmitteilungen aus xt:Commerce gespeichert, die der Kunde i.d.R. auch im Login-Bereich des Shops einsehen kann. Ein neuer Datensatz in dieser Tabelle wird mit folgendem Befehl angelegt:

SQL Query ausführen [
"INSERT INTO `orders_status_history` (`comments`, `customer_notified`, `date_added`,
`orders_id`, `orders_status_history_id`, `orders_status_id`)
VALUES ('" &
"Statustext'" & ", 0, '" & xtc_date(Hole(SystemDatum)) &
"', " & xtcommerce::_Auftrag_Nr & ", " & "''" & ", " & "2)"]

Der genannte Befehl kann entweder direkt in einem Script verwendet werden, oder er kann mittels einer neuen eigenen Funktion (Custom Function) gekapselt werden. Bei xtc_date handelt es sich um eine eigene Funktion, die Sie entweder auch als eigene Funktion definieren oder direkt im Scriptbefehl auflösen können. Die eigene Funktion xtc_date bringt ein übergebenes Datum in das Format, in dem xt:Commerce ein Datum erwartet:

xtc_date (datumsfeld) =
LiesAlsText(Jahreszahl ( datumsfeld ) & "-" &
ZeichenRechts( "0" & MonatZahl (datumsfeld); 2) & "-" &
ZeichenRechts( "0" & KalendertagZahl (datumsfeld); 2)) & " " &
LiesAlsText(Hole(SystemUhrzeit))

Um den Status selbst zu verändern, wird die entsprechende Status-ID in der MySQL-Tabelle <<orders_status>> gesetzt. Im folgenden Beispiel wird die Status-ID des Auftrages auf die ID „2“ gesetzt:

SQL Query ausführen ["UPDATE `orders` SET `orders_status` = 2
WHERE `orders_id` = " & xtcommerce::_Auftrag_Nr]

Die Status-IDs der von Ihnen in xt:Commerce vergebenen Stati können Sie im Backend von xt:Commerce einsehen und bearbeiten.

Die Möglichkeiten der Integration von Daten aus xt:commerce in Verbindung mit FileMaker sind praktisch grenzenlos. Wie die Auftragsdaten können selbstverständlich auch Artikel- oder Adressdaten aus xt:Commerce in FileMaker verwendet werden und umgekehrt.

Selbstverständlich funktioniert die in diesem Artikel beschriebene Vorgehensweise mit jeder Tabelle aus xt:Commerce und prinzipiell auch mit jedem anderen Onlineshop, dessen Datenbank den Zugriff per ODBC-Connector erlaubt. Für detaillierte Informationen bezüglich der Datenbankstruktur Ihres Shopsystems empfehle ich das Studium der entsprechenden technischen Dokumentation.

Diesen Beitrag bewerten:

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Bisher keine Bewertungen.)
Loading...

Über den Autor

Markus Schall
Entwicklung von FileMaker-Datenbanken seit 1994, Modifikation und Erweiterung von FileMaker-Lösungen, Konvertierung von FileMaker-Datenbanken von .fm, .fp3, .fp5 (FileMaker 2-6) oder .fp7 (FileMaker 7-11) zu .fmp12 (FileMaker 12-16), Schnittstellen zu Drittsystemen wie Onlineshops, CMS oder andere Datenbanken. Entwicklung individueller FileMaker-Datenbanksysteme auf Basis des gFM-Business-Frameworks mit persönlicher Beratung aus Oldenburg. Betreiber des Online-Fachportals goFileMaker.de, Entwickler des CRM- und Warenwirtschaftssystems gFM-Business. Mitglied in der FileMaker Business Alliance, FileMaker Developers Subscription und FMM Experte. Gewinner eines FMM Award 2011, vergeben durch das FileMaker Magazin.

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.