Transcript
Page 1: FileMaker Server 10: Serverseitige Scripts€¦ · FileMaker Server 10 kann ScriptMaker-Scripts ausführen, die in bereitgestellten Datenbanken definiert sind, und zwar alle Web-kompatiblen

32 © 1994 - 2009 K&K Verlag GmbH, Hamburg

Mit der Version 10 des FileMaker Servers gehört der Import und Export von Daten mit zum Kanon der Funktionen. Ein prak-tisches Beispiel hierfür ist der nachmittäg-liche2 Import der Wechselkursdaten der „Europäischen Zentralbank (ECB)“3 in eine Stammdatentabelle. Dasselbe Script, das den Import4 der Wechselkurse der „ECB“ ausführt, kann sowohl von einer Arbeits-station als auch als geplantes, täglich ausge-führtes Server-seitiges Script von FileMaker Server 10 angestoßen werden.

WechselkursnotierungenEiner der meistgelesenen Blog-Beiträge des Au-tors war derjenige über den XML-Import der Wechselkurse der Europäischen Zentralbank.5

Abb. 1: Wechselkurse der ECB

XML-Web-ServiceUm die Datenübernahme in das eigene System zu vereinfachen, bietet die ECB die Wechsel-kursdaten als XML-Service an. Es kann ge-wählt werden, die aktuellen Werte des Tages6, der letzten 90 Tage7 oder aber alle Daten seit 19998 abzurufen.

<gesmes:Envelope><gesmes:subject>Reference rates< /gesmes:subject><gesmes:Sender><gesmes:name>European Central Bank< /gesmes:name></gesmes:Sender><Cube><Cube time="2009-09-08"><Cube currency="USD" rate="1.4473"/><Cube currency="JPY" rate="133.57"/><Cube currency="BGN" rate="1.9558"/><Cube currency="CZK" rate="25.479"/><Cube currency="DKK" rate="7.4438"/><Cube currency="EEK" rate="15.6466"/><Cube currency="GBP" rate="0.87365"/><Cube currency="HUF" rate="270.98"/><Cube currency="LTL" rate="3.4528"/><Cube currency="LVL" rate="0.7021"/><Cube currency="PLN" rate="4.0893"/><Cube currency="RON" rate="4.2412"/><Cube currency="SEK" rate="10.1867"/><Cube currency="CHF" rate="1.5159"/>...</Cube></Cube></gesmes:Envelope>

Abb. 2: XML der Wechselkurse vom 8. September 2009 (gekürzt)

FileMaker Server 10: Serverseitige ScriptsWechselkurse der Europäischen Zentralbank am Nachmittag abholen

Rolf Clausen studierte an der Universität Lund (Schweden) von 1983 – 1987 Computer Science. Er beschäftigt sich mit FileMaker seit 1989. Er ist FBA Platinum Member und publizierte mehrere Bücher zu FileMaker und FrameMaker auf Schwedisch.1 Er entwickelte FileTime und kundenspezifische Plugins. Die Beratungsfirma des Autors heißt Mallverkstan (dt. Design Werkstatt; www.mallverkstan.com)[email protected]

schwer

1 http://fmp.fm/fm6clausen

2 Die Daten werden Bank-täglich um 15.00 Uhr aufdatiert.

3 www.ecb.int

4 www.filemaker.de/help/html /scripts_ref1.36.68.html

5 www.filemakerbloggen.se/post /Valutakurser.aspx

6 www.ecb.europa.eu/stats /eurofxref/eurofxref-daily.xml

7 www.ecb.europa.eu/stats /eurofxref/eurofxref-hist-90d.xml

8 www.ecb.europa.eu/stats /eurofxref/eurofxref-hist.xml

FMM 2009 | 05Erfahrungsbericht

Server

Klemens
Nachdruck aus FMM
Page 2: FileMaker Server 10: Serverseitige Scripts€¦ · FileMaker Server 10 kann ScriptMaker-Scripts ausführen, die in bereitgestellten Datenbanken definiert sind, und zwar alle Web-kompatiblen

© 1994 - 2009 K&K Verlag GmbH, Hamburg 33

9 http://de.wikipedia.org /wiki/XSLT

10 Steven H. Blackwell und Wim Decorte, Server Side Imports and Exports, http://fmforums.com/forum /showtopic.php?tid/200882, zu den Restriktionen der möglichen Verzeichnisse

XSLTDamit die Kurse eines Tages in einen Daten-satz von FileMaker importiert werden können, müssen die XML-Daten für FileMaker aufbe-reitet werden. Dies erfolgt mittels einer XSLT9-Transformation. In Abb. 3 sind die hierfür not-wendigen Befehle abgedruckt.

Die Datei valutakurser.xslt muss auf dem FileMaker Server 10 im Verzeichnis

C:\Programme\FileMaker\FileMaker Server\Data\Documents

abgelegt werden. Dies ist das Verzeichnis, wel-ches mit der Funktion „Hole (Dokumenten-Pfad)“10 von FileMaker Server 10 ausgegeben wird.

 

<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.filemaker.com/fmpxmlresult"> <xsl:template match="/"> <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"> <ERRORCODE>0</ERRORCODE> <PRODUCT BUILD="" NAME="" VERSION=""/> <DATABASE DATEFORMAT="MM-dd-yyyy" LAYOUT="" NAME="" RECORDS="{count(/*/*[3]/* )}" TIMEFORMAT="hh:mm:ss"/> <xsl:call-template name="METADATA"/> </FMPXMLRESULT></xsl:template> <xsl:template name="METADATA" match="/*/*[3]/*[1]/*"> <METADATA> <FIELD EMPTYOK="NO" MAXREPEAT="1" NAME="Date" TYPE="DATE"/> <xsl:for-each select="/*/*/*[1]/*/@currency"> <FIELD> <xsl:attribute name="EMPTYOK">YES</xsl:attribute> <xsl:attribute name="MAXREPEAT">1</xsl:attribute> <xsl:attribute name="NAME"> <xsl:value-of select="."/></xsl:attribute> <xsl:attribute name="TYPE">NUMBER</xsl:attribute> </FIELD> </xsl:for-each> </METADATA> <xsl:call-template name="RESULTSET"/></xsl:template> <xsl:template name="RESULTSET" match="/*/*[3]/*"> <RESULTSET> <xsl:attribute name="FOUND"> <xsl:value-of select="count(/*/*[3]/*)" /></xsl:attribute> <xsl:for-each select="*/*[3]/*"> <ROW> <xsl:attribute name="MODID">0</xsl:attribute> <xsl:attribute name="RECORDID"> <xsl:value-of select="position()"/></xsl:attribute> <COL> <DATA> <xsl:value-of select="@time"/> </DATA> </COL> <xsl:for-each select="*/@rate"> <COL> <DATA><xsl:value-of select="translate(.,',.','.,')"/> </DATA> </COL>

</xsl:for-each> </ROW> </xsl:for-each> </RESULTSET></xsl:template></xsl:stylesheet>

XML-Import

Lediglich zwei Script-Schritte sind für das Im-portieren der Wechselkursdaten notwendig:

◆ Variable setzenName: $dateipfadWert: " file:" & Hole (DokumentenPfad) & "valutakurser.xslt" ◆ Datensätze importieren

XML-Datenquelle angeben: XML (aus http):

http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xmlXSLT-Stylesheet verwenden: Datei: $dateipfadZiel: "Euro Exchange Rate"Methode: HinzufügenZeichensatz: "UTF-8"Feldzuordnung: Quellfeld 1 importieren in Euro Exchange Rate::Date Quellfeld 2 importieren in Euro Exchange Rate::USD Quellfeld 3 importieren in Euro Exchange Rate::JPY ... Quellfeld 15 importieren in Euro Exchange Rate::CHF ... Quellfeld 34 importieren in Euro Exchange Rate::ZAROption: Ohne Dialog feldOption: Daten enthalten Spaltennamen

Planungs-AssistentFileMaker Server 10 kann ScriptMaker-Scripts ausführen, die in bereitgestellten Datenbanken definiert sind, und zwar alle Web-kompatiblen (siehe Abb. 5) Scriptschritte.

Abb. 5: Kompatibilitätsanzeige in ScriptMaker (links unten)

Abb. 3 XSLT für den Import der ECB-Wechselkurse

Abb. 4 XML-Import Optionen für den ECB-Import

FMM 2009 | 05 Erfahrungsbericht

Klemens
Nachdruck aus FMM
Page 3: FileMaker Server 10: Serverseitige Scripts€¦ · FileMaker Server 10 kann ScriptMaker-Scripts ausführen, die in bereitgestellten Datenbanken definiert sind, und zwar alle Web-kompatiblen

34 © 1994 - 2009 K&K Verlag GmbH, Hamburg

In der FileMaker Server Admin Konsole kann der Planungs-Assistent für eine geplante Auf-gabe mit „Script ausführen“ gestartet wer-den. Es müssen dann die Datenbank und das FileMaker Konto angegeben werden, das für die Ausführung des Scripts verwendet werden soll. Danach wählt man ein Script, das in der Datenbank definiert ist, und den Zeitpunkt, zu dem das Script ausgeführt werden soll. In unse-rem Fall täglich am Nachmittag um 16.00 Uhr. Der Planungs- Assistent führt den Anwender durch alle notwendigen Schritte.

Abb. 6: Importfelder-Zuordnung der Wechselkursdaten

Wikipedia zu XSLT Transformation (Text gekürzt und angepasst):11

XSL Transformation, kurz XSLT, ist eine Pro-grammiersprache zur Transformation von XML-Dokumenten. Sie ist Teil der Extensible Stylesheet Language (XSL).

XSLT baut auf der logischen Baumstruktur eines XML-Dokumentes auf und dient zur Definition von Umwandlungsregeln. XSLT-Programme, soge-nannte XSLT-Stylesheets, sind dabei selbst nach den Regeln des XML-Standards aufgebaut.

Die Stylesheets können von FileMaker und dessen XSLT-Prozessor eingelesen werden, um mit diesen Anweisungen ein oder mehrere XML-Dokumente in das gewünschte FileMaker Importformat umzu-wandeln.

Die FileMaker Hilfe gibt Einsteigern zum Artikel-Thema die notwendige Hintergrund-Information. Aus Platzgründen kann an dieser Stelle nur darauf verwiesen werden:

Importieren von Daten in FileMaker Pro www.filemaker.de/help/html/import_export.16.9.htmlImportieren von Daten in eine bestehende Datei www.filemaker.de/help/html/import_export.16.13.htmlImportieren von XML-Daten www.filemaker.de/help/html/import_export.16.17.htmlFestlegen der Importaktion und Zuordnen der Felder beim Import www.filemaker.de/help/html/import_export.16.18.htmlUnterstützte Dateiformate für Import und Export: XML-Format www.filemaker.de/help/html/import_export.16.28.htmlScriptschritt Datensätze importieren www.filemaker.de/help/html/scripts_ref1.36.68.htmlAusführen Server-seitiger FileMaker-Scripts www.filemaker.de/downloads/pdf/fms_help _DE.pdf, Seite 114

Es sollten auch die Informationen der FileMaker KnowledgeBase beachtet werden:7035: Import/Export Script on FileMaker Server 106223: Differences Between Server Based Scripting and Client Scripting7038: Script Step Compatibility6151: Planning Scripts with FileMaker Pro URL mit der jeweils richtigen Nummer:http://filemaker.custhelp.com/cgi-bin/filemaker.cfg/php/enduser /std_adp.php?p_faqid=7035

Übersetzung und Formulierungen von Ralph Nusser. Beispiel datei von Rolf Clausen.

FMM_200905

11 de.wikipedia.org/wiki/XSLT

FMM 2009 | 05Erfahrungsbericht

Klemens
Nachdruck aus FMM
Page 4: FileMaker Server 10: Serverseitige Scripts€¦ · FileMaker Server 10 kann ScriptMaker-Scripts ausführen, die in bereitgestellten Datenbanken definiert sind, und zwar alle Web-kompatiblen

© 1

994

- 200

8 K

&K

Ver

lag

Gm

bH, H

ambu

rgD

euts

chla

nd e

9,5

0 |

ww

w.f

ilem

aker

-mag

azin

.de

Geschüttelt, nicht gerührt …

FileMaker für Einsteiger

Wie Sie in FileMaker Ihre ersten „Felder bestellen“

Gut zu wissen

Ist Maintenance eigentlich ansteckend?

2008

01

Das unabhängige Magazin für FileMaker Anwender und Entwickler FMM_200801

Buchbesprechungen

Neue Fachbücher zu FileMaker 9

FMM_2008_01.Titel.indd 1 29.04.2008 10:09:42 Uhr

Wenn Sie sich für ein

FileMaker Magazin Abo interessieren, klicken Sie bitte hier!

Hier finden Sie Aktuelles zu FileMakerProdukten, egal ob Sie kaufen, mieten oder sich einfach informieren möchten.

Eine kostenlose Lese probe des FileMaker Magazins erhalten Sie, wenn Sie hier klicken.

Das FileMaker Magazin

l Einzige, deutschsprachige Fachzeitschrift zu FileMaker

l Wissen aus erster Hand von anerkannten FileMaker Fachautoren

l Große Themenvielfalt für Anwender, Entwickler und Fortgeschrittene

Exklusiv für Abonnenten

l Sechs gedruckte Ausgaben pro Jahr

l Kostenlose Nutzung des Abonnentenbereichs auf www.filemaker-magazin.de

l PDF-Online-Archiv mit allen bisher erschienenen Ausgaben Jede Ausgabe mit kostenlosen Beispieldateien und Zusatzinfos zum Download

Unser Service

l Aktuelle Neuheiten, Eigene Funktionen, Kleinanzeigen und vieles mehr jederzeit online auf unseren Webseiten

l Hilfe bei allen Fragen zu FileMaker im FMM Forum

l Lassen Sie sich von unseren Lizenz-Spezialisten zum Kauf von FileMaker Lizenzen beraten. Einfach anrufen +49 (0)40 589 65 79 70.

www.filemaker-magazin.de


Recommended