Individuelle Datenexporte mit dem Base Elements Plugin.

FileMaker KurztippMit der Funktion „Datensätze exportieren“ verfügt FileMaker im Script-Editor über eine sehr mächtige Funktion, Daten aus einer FileMaker-Datenbank in verschiedenen Formaten zu exportieren. Soll ein Datenexport jedoch als Textdatei, also beispielsweise als CSV exportiert werden, kann man mit FileMaker-Bordmitteln schon mal an Grenzen stoßen. Zum einen unterstützt FileMaker ausschließlich den Export von Textdateien, dessen Feldinhalte mit einem Tabulator oder mit einem Komma getrennt werden. Standardmäßig exportiert FileMaker Textdateien außerdem im UTF-16-Format, was nicht selten beim Import auf der anderen Seite für Probleme sorgen kann, da die meisten Systeme UTF-8 als Format voraussetzen. Setzt man die zu erstellende Datei in FileMaker z.B. mit einer Formel selbst zusammen, kommt es regelmäßig zu Problemen mit dem Zeilenende, da FileMaker keinen echten Zeilenumbruch einfügt. All diese Schwierigkeiten lassen sich ganz einfach umschiffen, indem man den Datenexport mit Hilfe des Base Elements Plugins selbst programmiert. In diesem Artikel zeigen wir, wie einfach das zu realisieren ist.

FileMaker Training und Coaching

Anzeige

Dateiauswahl und Export mit dem Base Elements Plugin

Unter Zuhilfenahme des Base Elements Plugins kann der gesamte Exportvorgang aus FileMaker heraus inklusive Dateiauswahl auf einfache Weise umgesetzt werden. Um einen Dialog zum Speichern einer neuen Datei anzuzeigen, fügen Sie in Ihrem Script den folgenden Befehl ein:

Variable setzen [$datei; Wert: BE_SaveFileDialog ("Titel"; "Dateivorgabe.csv"; "Dateipfadvorgabe")]

Der Benutzer kann nun wie bei der in FileMaker integrierten Exportfunktion zunächst durch sein Dateisystem navigieren und an einer beliebigen Stelle eine neue Datei erzeugen. Ist die ausgewählte Datei bereits vorhanden, erfolgt bereits betriebssystemseitig eine Abfrage, ob die vorhandene Datei ersetzt werden soll. Der Dateiname und -pfad befindet sich nach der Auswahl oder Angabe des Dateinamen in der Variable $datei und kann in den folgenden Scriptschritten weiterverwendet werden. Hat der Benutzer auf die Schaltfläche [Abbrechen] geklickt, ist die Variable $datei leer.

Dateiauswahl für Datenexport aus FileMaker

Im nächsten Schritt können nun bei Bedarf bereits die Feldbezeichnungen in die zu exportierende Datei geschrieben werden. Dies erfolgt mit dem Base Elements Plugin mit folgendem Befehl:

Variable setzen [$error; Wert: BE_WriteTextToFile ( $datei; "bez1;bez2;bez3 ... ¶" )]

Wichtig ist an dieser Stelle, den Zeilenumbruch am Ende der Feldbezeichnungen einzufügen. Nun können bereits die einzelnen Datensätze in die Datei geschrieben werden. Da der Export vollständig gescriptet wird, erfolgt das Schreiben innerhalb einer Schleife Datensatz für Datensatz.

Gehe zu Datens./Abfrage/Seite [Erste(r)]
Schleife (Anfang)
Variable setzen [$error; Wert: BE_WriteTextToFile ( $datei; Feld1 & ";" & Feld2 & ";" ... & "¶"; 1 )]
Gehe zu Datens./Abfrage/Seite [Nächste(r); Nach letztem beenden]
Schleife (Ende)

In unserem Beispiel haben wir das Semikolon als Feldtrennzeichen zwischen den Feldern verwendet. Selbstverständlich können Sie an dieser Stelle auch jedes beliebige andere Feldtrennzeichen verwenden. Wichtig ist auch hier der Zeilenumbruch am Ende der Zeile sowie der weitere Parameter „1“ des Befehls „BE_WriteTextToFile“. Dieser Parameter heißt „append“ und sorgt dafür, daß die Zeile zur bestehenden Datei hinzugefügt und die bestehende Datei nicht durch die Zeile überschrieben wird. Standardmäßig wird die Textdatei im UTF-8-Format exportiert. Mit dem Befehl „BE_SetTextEncoding“ können außerdem folgende andere Zeichenkodierungen verwendet werden:

Unterstützte Zeichenkodierungen

ASCII, ISO-8859-{1, 2, 3, 4, 5, 7, 9, 10, 13, 14, 15, 16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250, 1251, 1252, 1253, 1254, 1257}, CP{850, 866, 1131}, Mac{Roman, CentralEurope, Iceland, Croatian, Romania}, Mac{Cyrillic, Ukraine, Greek, Turkish}, Macintosh, ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}, EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1, EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, BIG5-HKSCS:2004, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT, EUC-KR, CP949, ISO-2022-KR, JOHAB, ARMSCII-8, Georgian-Academy, Georgian-PS, KOI8-T, PT154, RK1048, ISO-8859-11, TIS-620, CP874, MacThai, MuleLao-1, CP1133, VISCII, TCVN, CP1258, HP-ROMAN8, NEXTSTEP, UTF-8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, C99, JAVA, UCS-2-INTERNAL, UCS-4-INTERNAL, CP {437, 737, 775, 852, 853, 855, 857, 858, 860, 861, 863, 865, 869, 1125}, CP864, EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3, BIG5-2003, TDS565, ATARIST und RISCOS-LATIN1

Base Elements Plugin ist kostenlos

Das Base Elements Plugin ist kostenlos erhältlich und steht für Mac OS X und Windows jeweils als 32-Bit- und als 64-Bit-Version zum Download zur Verfügung. Das Plugin verfügt mittlerweile über vielfältige Befehle in den folgenden Bereichen:

  • Vektorbearbeitung
  • Zwischenablage
  • Konstanten
  • Containerfelder
  • Dialoge
  • Kodierung und Dekodierung (Base64, AES)
  • Fehlerbehandlung
  • Datei- und Verzeichnisfunktionen
  • HTTP- und URL-Funktionen
  • Scriptfunktionen (JavaScript, FileMaker-Scripte)
  • SMTP E-Mail
  • Zeitfunktionen
  • Wertelisten
  • XML, XSLT und JSON
  • ZIP und GZIP

Alle Funktionen werden auf der Wiki-Seite des Plugins detailliert dokumentiert.

Schneller zum Ziel mit FileMaker Coaching und Training

Wußten Sie schon, daß goFileMaker.de auch FileMaker Coaching und Training anbietet? Gerne sind wir Ihnen bundesweit per Fernwartung bei der Entwicklung oder Erweiterung Ihrer FileMaker-Lösung behilflich. Nehmen Sie bei Interesse gerne Kontakt mit uns auf!

Diesen Beitrag bewerten:

Ü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-15), 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.

1 Kommentar

  1. Markus Schall (Beitrag Autor)

    Dieser Artikel zeigt das Prinzip, wie Textdateien in jeder erdenklichen Form mit dem Base Elements Plugin exportiert werden können. Der gezeigte Export ist allerdings nicht 100% perfekt, weil auf die oben genannte Weise nach jeder Zeile ein Zeilenumbruch („¶“) generiert wird, also auch in der letzten Zeile. Dies läßt sich natürlich auch noch verhindern, indem im Befehl „Variable setzen“ innerhalb der Schleife

    & „¶“ ersetzt wird durch

    & Wenn(Hole(DatensatzPositionInErgebnismenge) < Hole(AnzahlGefundeneDatensätze); "¶"; "")

    Antworten

Schreiben Sie einen Kommentar

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