FileMaker Konferenz2010

Einsatzgebiete für AppleScript

Ein Vortrag von Robert Kaiser

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Robert Kaiser · www.karo.at

karo productions • individuelle Lösungen auf der Basis von FileMaker Pro • DTP-Workflow-Optimierung und Beratung

Robert Kaiser • zertifizierter FileMaker Entwickler • FBA Mitglied • Autor für FileMaker Magazin • Werbegrafiker seit 1993 • AppleScript Entwicklung seit 1995 • FileMaker Entwicklung seit 1996

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Was ist AppleScript?

• ist eine Scriptsprache, läuft nur auf Mac • seit 1993, ab System 7 mit Betriebssystem mitgeliefert • ist konzipiert zur Steuerung von anderen Programmen, Daten auszutauschen und wiederkehrende Abläufe zu speichern • basiert auf Apple Events • ist als Komponente der Open Scripting Architecture (OSA) ins System integriert • relativ leicht lesbar, orientiert sich an englischer Sprache

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Was kann AppleScript?

Die Einsatzgebiete sind vielfältig: • AppleScript-fähige Programme steuern oder deren Daten oder Einstellungen manipulieren • Daten zwischen Programmen austauschen • Programmumfang von bestehenden Programmen erweitern (Mail, iTunes, InDesign, Photoshop, FileMaker Pro) • Benutzerführung vereinfachen und durch Automatisierung von wiederkehrenden Abläufen Bedienungsfehler vermeiden • Shell Scripts ausführen • GUI steuern • zeitgesteuert Prozesse anstossen

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Einschränkungen

• nur am Mac verfügbar (nicht unter Windows, nicht unter iOS) • beim Steuern von Programmen sind verfügbare Befehle und Klassen von Softwarehersteller abhängig • nicht direkt für umfangreiche Datenverarbeitung geeignet

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Werkzeuge zur Erstellung von Scripts

Mit System mitgeliefert: • AppleScript-Editor (vormals Script-Editor bis 10.6) befindet sich in Programme/Dienstprogramme • im Prinzip jeder Texteditor Kostenpflichtig, für umfangreichere Projekte geeignet: • (Late Night )

Für Erstellung von „klassischen“ Programmen: • AppleScript-Studio (Mac OS X 10.2-10.5) • XCode mit AppleScriptObjC framework (Mac OS X 10.6+) erlaubt AppleScript direkt Cocoa-Befehle abzusetzen

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Wie können Scripts gestartet werden?

Einige Beispiele: • direkt im AppleScript-Editor/Script Debugger • über das Scriptmenü • als eigenständiges Script-Programm (Applet) • im Finder per Drag and Drop (Droplets) • können auch ständig laufen und in bestimmten Zeitabständen reagieren (on idle) • als Ordner Aktion (Folder Actions) • per cron/launchd job • Unix-Befehl osascript (Text, kompilierte Scripts) oder open (App) • Automator

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Wie können Scripts gestartet werden?

• innerhalb von Programmen, die dies unterstützen (z.B. FileMaker Pro, InDesign) • Scripts können in "klassische" Programme eingebunden sein (z.B. über XCode oder REALbasic) • Launcher Apps (per Hot Key, Docks, z.B. Dragthing, Alfred, Quicksilver, iKey, Spark, QuicKeys) Einige Programme bieten Optionen an, bei Eintrefen von bestimmten Ereignissen, auszuführen, z.B.: • iCal • Apple Mail (Regeln) • iChat • Systemeinstellung wie Digital Hub (CD/DVD einlegen) • Installationsprogramme

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Einfache Beispiele

Zur Illustration einfache Code-Beispiele:

tell application "Finder" to make new Finder window

tell application "Finder" make new Finder window end tell

tell application "Finder" set myFenster to make new Finder window set FensterName to name of myFenster activate display alert FensterName end tell

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Einfache Beispiele

Eine Anweisung an eine FileMaker-Datenbank:

tell application "FileMaker Pro Advanced" set cell "xy" of record ID nnn of table "meineTabelle" of ¬ database "meineDB" to "meinErgebnisWert" end tell

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Der Sprachschatz von AppleScript

• Standardbefehle für Zuweisungen, Schleifen, etc - Zuweisungen (set, copy) - Schleifen (repeat) - Bedingungen (if ... then) • Handler (ähnlich wie Funktionen) - vordefinierte: run, open, idle, quit • Variablen müssen nicht explizit deklariert werden • Datentypen - integer, Ganzahlen 8 - real, Dezimalzahlen 1.23 (!) - text, Unicode Text „1,23 cm“ - list, Liste von Elementen { 8, 1.23, „1,23“, „xy“ }

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Der Sprachschatz von AppleScript

• kann durch Scripting Additions erweitert werden: /System/Library/ScriptingAdditions (auch die Entwicklung eigener Scripting Additions ist möglich: developer.apple.com—mac) • ein scriptfähiges Programm stellt eigenes Funktionsverzeichnis mit Befehlen und Klassen bereitstellen • jedes nicht scriptfähige Programm versteht nachfolgende Events: open, run, quit • auch Plugins können das Funktionsverzeichnis von Programmen erweitern (z.B. in InDesign) • zusätzlich gibt es einige scriptfähige CoreServices (Programme, die spezielle Funktionen bereitstellen) /System/Library/CoreService Finder, System Events, Image Events, database Events, etc

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Der AppleScript-Editor

• dient zur Erstellung von AppleScripts • kann Syntax überprüfen, kompilieren, ausführen • Eventprotokoll kann nach Ausführung untersucht werden • kann AppleScripts aufzeichnen (wenn Programm das unterstützt) • Funktionsverzeichnisse (scripting dictionary) von Programmen können untersucht werden. Elemente sind: - Klassen (classes)=scriptable objects - Befehle (commands) Einstellungen: • hier ist Option zum Einblenden des Scriptmenüs • Scriptassistent zum Auto-Vervollständigen kann aktiviert werden • Vererbte Objekte in Funktionsverzeichnis anzeigen

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Der AppleScript-Editor

Scripts können unterschiedlich gespeichert/exportiert werden: • als Text • als kompiliertes Script (wird kompiliert gespeichert und beim Öfnen wieder dekompiliert – daher auch immer eine Text-Version für Notfälle archivieren) • als kompiliertes Script-Bundle (für zusätzliche Resourcen) • als Programm oder Programm-Bundle - mit Option, dass es nur mehr ausführbar ist - mit Option, das es nicht automatisch beendet wird („Nach Run-Handler anzeigen“)

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Script Debugger

Als Alternative zum AppleScript-Editor kann auch der Script Debugger der Firma eingesetzt werden. Dieser bietet einige interessante Funktionen, die die Scripterstellung erleichtern: • Setzen von Breakpoints • Variable Tracking • Explorer (für Anzeigen von aktuellen Inhalten, Elementen und Zuständen eines laufenden Programms) • Einige Templates (z.B. für Mail, Folder Actions)

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Wo sind Beispielscripts zu finden?

• im AppleScript-Editor - Menü-Befehl „Neu aus der Vorlage“ - im Hilfe-Menü (enthält auch Link zum AppleScript-Handbuch) - Beispiel-Code ist über Context-Menü verfügbar • im Scriptmenü • bei einigen Programmen mitgeliefert • „Google ist dein Freund!“

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com AppleScript und FileMaker Pro

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com AppleScript und FileMaker Pro

Mit dem Scriptschritt „AppleScript ausführen“ können in FileMaker Pro AppleScripts auf zwei Arten ausgeführt werden: • Nativ, wird in die FileMaker-Dialogbox eingegeben; wird als kompiliertes Script gespeichert (max. 30.000 Zeichen) • Scriptcode als Ergebnis (Text) einer berechneten Formel, somit auch als Feldinhalt, Variable oder Custom Function möglich

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com AppleScript und FileMaker Pro

Beachten bei der Scripterstellung in FileMaker Pro: • Plattform abfangen: Abs (Hole ( SystemPlattform )) = 1 • Bei Berechnung: Text in Anführungszeichen, Befehle müssen zeilenweise geschrieben werden (¶ zwischen Zeilen) • FileMaker wartet beim Scriptschritt "AppleScript ausführen" die Ausführung ab und setzt nach Scriptende im FileMaker-Script fort • FileMaker kann keine Events empfangen, wenn ein - modales Dialogfenster aktiv ist, bzw. - FileMaker Script läuft • auf Fehlerbehandlung nicht vergessen (Benutzerabbruch, Timeout, modale Dialoge, nicht vorhandene Objekte oder Programme, etc.) • Achtung auf unterschiedliche Pfade (FileMaker, HFS, POSIX)

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Beispiele in Datenbank...

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com AppleScript und FileMaker Pro

FileMaker Pro in Scripts ansprechen: • bei Ausführung innerhalb von FileMaker kann auf „tell application FileMaker Pro“ verzichtet werden • bei externem Ansprechen ist der Programmname zu beachten - FileMaker Pro Advanced - FileMaker Pro - (Runtime-Name) • Aufruf kann auch über die application ID erfolgen:

tell application id "com.filemaker.client.advanced"

• Aufruf kann auch über den Speicherort erfolgen:

tell application "/Applications/FileMaker Pro 11 Advanced/FileMaker Pro Advanced.app"

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com AppleScript und FileMaker Pro

Bei Zugrif auf Datenfeldern nicht vergessen: • beachten, wie Objekte referenziert werden; fehlen Objekte in der Referenzierung, so werden nachfolgende als Default angenommen: - record 1 - current layout - table 1 - window 1 - database 1 - document 1 (aktuelle Ergebnismenge)

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com AppleScript und FileMaker Pro

Beim Zugrif auf Datenfeldern nicht vergessen: • globale Felder können nur angesprochen werden, wenn mindestens ein Datensatz in der Tabelle enthalten ist! • Achtung auf unterschiedliches Ansprechen über „cell“ (entspricht Zelle) und „field“ (entspricht Spalte) • current record enthält immer nur Felder des aktuellen Layouts (in grafischer Reihenfolge von links oben nach rechts unten) • spreche ich Felder (cell) über die Tabelle (TO) an, werden sie in Erstellungsreihenfolge geliefert • bei Zugrif über Layout werden Daten (Datum, Zeit, Zahlen) so formatiert geliefert, wie sie auf Layout eingestellt sind • Vorsicht beim Lesen/Schreiben von numerischen Werten • reservierte Wörter beachten (first, last, tenth, etc.)

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Praktische Beispiele

Adobe InDesign • Aktuelle Textauswahl lesen und in Datenbank abfragen (InDesign Palette) Finder Scripts • Droplet, Status abfragen

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Externe AppleScripts steuern FileMaker

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com AppleScripts steuern FileMaker

Bei externen Scripts, die FileMaker aufrufen, muss sichergestellt werden, dass FileMaker alle Events empfangen kann, sonst führt das zu Fehlermeldungen oder Timeouts. Ein Ablauf wie dieser ist daher nicht zu empfehlen:

1. ist FMP/Datenbank ofen?

2. Layoutwechsel 3. Layoutwechsel durchführen

4. Daten in Tabelle schreiben

5. FileMaker Script 1 starten 6. FileMaker Script 1 läuft

7. FileMaker Script 2 starten 8. FileMaker Script 2 läuft

9. Ergebnisaktion durchführen

Symbol: © markus_marb - Fotolia.com

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com AppleScripts steuern FileMaker

Wenn möglich sollte daher der FileMaker Pro Lösung die Kontrolle über den Ablauf überlassen werden.

1. ist FMP/Datenbank ofen?

2. Daten in Tabelle schreiben

3. FileMaker Script starten 4. FileMaker Script läuft

(Ende) 5. Layoutwechsel durchführen

6. FileMaker Script 1 starten

7. FileMaker Script 2 starten

9. Neues Script Ergebnisaktion 8. Ergebnisaktion starten

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Praktisches Beispiel

Scripts per Hot Key Launcher • Tastaturübersicht und Verwaltung in FileMaker

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Eigene Scriptbibliothek in FileMaker Pro

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Eigene Scriptbibliothek in FileMaker Pro

Um möglichst flexibel auf zukünftige Anpassungen bei AppleScripts (z.B. neue Version des Zielprogramms) zu reagieren, können die Codes auch wie folgt verwaltet werden: • die Scripts werden in einer eigenen Tabelle als Text gespeichert • die Entwicklung und das Debuggen erfolgt im AppleScript-Editor • als Schnittstelle dienen globale Felder („ASI“, siehe später) zu beachten: • unterschiedliche FileMaker Pro-Programmnamen berücksichtigen • eventuell unterschiedliche Datenbanknamen berücksichtigen

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Eigene Scriptbibliothek in FileMaker Pro

Die Vorteile: • die Entwicklung und das Debuggen wird vereinfacht • FileMaker Logik und AppleScript Logik kann leicht getrennt getestet werden • Code kann formatiert gespeichert werden, ist somit leichter lesbar • Updates können leichter installiert/verteilt werden • Scripts sind lösungsunabhängiger und leichter wiederverwendbar • Schutz der Script-Logik, wenn Scripts über eigene externe FileMaker-Datei ausgeführt werden • zusätzliche Abfragen vor einer Ausführung können hier mit verwaltet werden (z.B. Zugrifsrechte für bestimmte Scripts, verfügbare Programmversionen auf einem Arbeitsplatz)

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Eigene Scriptbibliothek, gleichbleibende Schnittstelle

Um die Wiederverwendung von Scripts zu vereinfachen, empfiehlt es sich Daten immer über das gleiche Tabellenauftreten auszutauschen. Tabelle für Datenschnittstelle: • Tabellenauftreten ist immer gleich benannt • Felder für Parameter und Scriptergebnisse sind gleich benannt, als globale Felder angelegt • Wichtig: Es muss sichergestellt sein, dass in der Tabelle mindestens ein Datensatz vorhanden ist Externe Scripts, die FileMaker Pro ansteuern: • werden über Scriptnamen angesprochen, darf sich daher nicht ändern

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Eigene Scriptbibliothek

Ablauf:

FileMaker Script

Parameter vorbereiten, in globale Felder schreiben

Scriptcode selektieren, Ausführung prüfen

Programmnamen überprüfen und Code anpassen

Scriptschritt: AppleScript ausführen:

Script holt Parameter ab

Ausführen der Logik

Ergebnisse inkl. Fehlertexte zurückschreiben

Ergebnisse auslesen und verarbeiten

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Praktische Beispiele

Finder Script • Droplet, Bild als Muster einbuchen Adobe Photoshop Script • Text ändern Image Events • Bild drehen

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Beispiele aus der Praxis: AppleScript und FileMaker in DTP

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com FileMaker als Interface für komplexe Scripts für Photoshop

Mit dieser Datenbank wurden flache Cover-Abbildungen mit verschiedenen Buchrücken, CD-Trays, DVD-Hüllen in Photoshop montiert. Ebenso konnten damit für Newsletter und Webauftritt automatisch passende JPEG-Abbildungen von Produktbildern mit Preis- Sticker und GIF-Banner erstellt werden.

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com FileMaker als Interface für Layoutkorrekturen in InDesign

Steiermark Steiermark

BAD DEUTSCH-ALTENBURG D18 BADEN D16 DÜRNSTEIN C15 GUNTRAMSDORF D16–D17 Kurzentrum Ludwigstorff Admiral am Kurpark Hotel Richard Löwenherz Bei diesem ca. 280 Seiten – Therme Carnuntum Renngasse 8, 2500 Baden, Nr. 8, 3601 Dürnstein, Badgasse 21–30, 2405 Bad Deutsch-Altenburg, Tel.: 02252/867 99, Fax: Dw. 8, Typ: Businesshotel. Tel.: 02711/222, Fax: Dw. 18, Typ: Romantik-Hotel. Tel.: 02165/626 17-0, Fax: Dw. 522, Typ: Kurhotel. offi[email protected], www.hotel-admiral.at [email protected], www.richardloewenherz.at [email protected], CEFKNOQR1/20 BCEFHNOQR3/80 www.therme-carnuntum.at Exklusive Ausstattung, Suiten mit Whirlwanne. Exclusi- Komfortables Hotel im mittelalterlichen Klarissenkloster. BCEIKLNOQR3/160 vely furnished rooms, suites with whirl tube. Klostergarten mit beheiztem Schwimmbad, Terrassen- starkem Hotelreiseführer sollten Kur & Wellness in der Therme Carnuntum. There’s Preise: 2 EZ NF ab m 98,–, 15 DZ NF ab m 79,–, 5 Suiten/ restaurant mit Donaublick. Lovely hotel in a medieval a wealth of spa and wellness facilities at the therme App. NF ab m 130,–. Extras: Aircondition. 8 Nichtraucher- nunnery. Garden, heated pool, restaurant overlooking Carnuntum. zimmer. CC: VISA, Diners, Amex, MC/EC, JCB, Bankomat. the Danube. Preise: 109 EZ NF ab m 47,77, HP ab m 57,77, 37 DZ NF Preise: 39 EZ NF ab m 106,–, HP ab m 136,–, 34 DZ NF Landhotel Jagdhof ab m 47,77, HP ab m 57,77, 10 Suiten/App. NF ab m 71,77, ab m 93,–, HP ab m 123,–, 4 Suiten/App. NF ab m 135,–, Hauptstraße 41, 2353 Guntramsdorf, HP ab m 81,77. Extras: Halleerzimmer. Beauty/Wellness: HP ab m 165,–. Extras: Nur Nichtraucherzimmer. CC: VISA, Tel.: 02236/522 25, Fax: Dw. 40, Typ: Businesshotel. Massage, Nordic Walking, Qigong, Aromawickel, Ent- Amex, MC/EC, Bankomat. [email protected], www.jagdhof.cc alle Bilder abwechselnd oben spannungst BCEFKNOR80 Im Weinbaugebiet Thermenregion südlich von Wien gelegen. Ausgezeichnetes Restaurant, Verkehrsver- bindungen nach Wien und Baden. South of Vienna amidst vineyards and hot springs. Fine restaurant, good und unten platziert sein. transport links. Preise: 12 EZ NF ab m 78,–, HP ab m 103,–, 22 DZ NF ab m 58,–, HP ab m 83,–. Extras: 34 Nichtraucherzimmer. Kin- der: Spielzeugecke, Videozimmer. CC: VISA, Diners, MC/ EC, Bankomat.

KREMS C15 LAA AN DER THAYA B17 Hotel Herzoghof Steigenberger Avance Hotel Mit entsprechenden InDesign- Kaiser-Franz-Ring 10, 2500 Baden, Krems Tel.: 02252/872 97-0, Fax: 20 66 46, Am Goldberg 2, 3500 Krems, Typ: Boutique-Hotel. Tel.: 02732/710 10, Fax: Dw. 50, offi[email protected], www.hotel-herzoghof.at Typ: klassisch-modernes Hotel. BDFKNOR4/80 [email protected], www.krems.steigenberger.at Erstmals im Jahr 1258 urkundlich erwähntes, neu BCDEFHIKLN Plugins ist das kein Problem – renoviertes Boutique-Hotel im Zentrum von Baden mit OPQR6/250 herrlichem Blick auf das Grand Casino und den Kurpark. Mitten in den Weinbergen mxzellente Küche. In the First mentioned in 1258, located in the city centre of middle oft the vinyards with a splendid view to the Baden, directly opposite the Casino and the sprawling Hotel Schloss Weikersdorf danube valley. Hotel Therme Laa Superior city park. Schloßgasse 9–11, 2500 Baden, Preise: 14 EZ NF ab m 118,– s: St. Barth, Sothys, Maria Thermenplatz 3, 2136 Laa an der Thaya, Preise: 6 EZ NF ab m 80,–, 24 DZ NF ab m 55,–, 4 Suiten/ Tel.: 02252/483 01, Fax: Dw. 150, Typ: Schlosshotel. Galland, „Cardea“-Zentrum: Massagen, Packungen, Re- Tel.: 02522/847 00-733, Fax: Dw. 755, solange nicht nachträglich App. NF ab m 75,–. Extras: 34 Nichtraucherzimmer. Beau- [email protected], generation u. v. m. CC: VISA, Diners, Amex, MC/EC, JCB, Typ: Wellnesshotel. ty/Wellned. CC: VISA, Diners, Amex, MC/EC, Bankomat. BCFIJKLMwww.hotelschlossweikersdorf.at Bankomat. [email protected], www.therme-laa.at NOQR9/200 LOQR5/200 Renaissance-Schloss, historischer Charme, modernste Ausstat- Das topmoderne Hotel verfügt über einen eigenen tung, regionale und internationale Küche. Renaissance palace, Wellness- & Spa-Bereich gratis und exklusiv nur für Einträge hinzugefügt werden historical charm combined with the amenities of modern life. Preise: EZ NF ab m 119,–, HP ab m 147,–, 84 DZ NF ab m 90,–, HP ab m 118,–, 15 Suiten/App. NF ab m 210,–, HP ab m 238,–. Extras: glasüberdachter Aetik. Kinder: auf Anfrage möglich. CC: VISA, Diners, Amex, MC/EC, JCB, müssen... Bankomat. 2 3 Mit einer FileMaker-Lösung konnten die verschobenen Einträge per AppleScript jederzeit gescannt und automatisch korrigiert werden.

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com FileMaker als Interface für InDesign-Produktionen

Mit dieser Datenbank werden Seiteneinträge und Inhaltsverzeichnisse per AppleScript aus InDesign gelesen und Kopfzeilen in die Dokumente geschrieben. Ebenso können Seiten als einzelne PDFs unter der Kundennummer geschrieben werden und an die Kunden zur Kontrolle und Abnahme gesendet werden.

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Automatischer Katalogaufbau in InDesign per AppleScript

Mittels vorgegebener Raster- und Stellplatzlisten werden mit dieser Lösung regelmäßig InDesign-Dokumente mit ca. 450 Seiten aufgebaut. Die Platzierung der Bausteine aus FileMaker erfolgt mittels AppleScript, die Rastervoransicht ist hier in einem HTML-Viewer dargestellt.

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com FileMaker Daten in InDesign-Katalogen visualisieren

Dgj\keva_ÜkhYff]f\

>jak`YeÜoYjÜYdkÜ]fj]–Ü\YkÜa`fÜrmÜI][`lÜZ]¥ j1`elÜ_]eY[`lÜ`Yl‘¡ auf dem Krimimarkt gibt. E]oÜPgjcÜKae]kÜ9ggcÜI]na]o Ej‘Ü ‡ « 8G’Ü ‡‡ÜÜ8@’܇~ Ag`fÜ>jak`YeÜÜÜKgm[`\gof D’Ü‘ƒ~‚ÜÜÜ‚Ê E=C¥HmYjl]jZY[cÜIa[cÜ;g[c]jqÜ =glg’Ü=g[mkÜG`glg¥Ümf\ÜGj]kk]Y_]flmjÜ>eZ? faeelÜ]afÜ8f_]ZglÜ\]jÜGYjeYÜ Ej‘Ü € GYfl`]jkÜYfÜmf\Üra]`lÜngfÜ 8G’܆‡ÜÜ8@’܃~ :d]n]dYf\ÜfY[`Ü@lYda]f‘Ü;g[`Ü Ag`fÜ>jak`Ye D’Ü ƒ‡ÜÜ܃ Ê ;]jÜf]m]ÜG]l]jÜAYe]k’Ü `a]jÜYf_]cgee]f–Ükl]ddlÜ]jÜ fg[`Ü_]^`jda[`]j–Ü >]Zgj]fÜ~†‚‚ÜafÜAgf]kZg¥ k[`f]ddÜ^]kl–Ü\YkkÜ\a]Ücmdlm¥ jg¤8jcYfkYk–ÜYjZ]al]l]ÜYdkÜ fg[`ÜkhYff]f\]j j]dd]fÜ;a^^]j]fr]fÜ]j`]Zda[`Ü Ü 8foYdlÜ^1jÜJljY^j][`l‘Ü;]jÜ _j+v]jÜkaf\ÜYdkÜ]joYjl]lܑ‘‘ÜÜÜ Ej‘Ü ‡ „ =YddÜ]af]jÜn]j_]oYdla_l]fÜ 8G’܁‡‡ÜÜ8@’Ü~‘‡‡~ €‚ÜJ]al]f‘Ü>]Zmf\]fÜealÜ Ag`fÜ>jak`Ye ;j]aÜ]jegj\]l]Ü=jYm]fÜ Daf\]jb`ja_]fÜZjY[`l]Üa`fÜ J[`mlrmek[`dY_‘ÜÜ afÜfmjÜ]af]jÜNg[`]Ü§Ü D’Ü~‡‘ƒ„†ÜÜÜ‚‡Ê rmeÜJ[`j]aZ]f‘Ü@fÜ=j1`¥Ümf\Ü ‚‡ ;]jÜ>]^Yf_]f] Ja] ‡ ‡ÜÜÜÜÜ~ƒ– jY[]Ü EY[`lk[`a[`l]fÜomj\]Ü khYj ]f’ Œ €–§ \YjYmkÜk]afÜ]jkl]jÜK`jadd]j–Ü Club-PreisÜ ^Ydd–Ü\]jÜQ]m_fakÜYZd]_lÜ Z]_afflÜ]af]Üd]Z]fk¥ ƒ 1Z]jÜ\a]ÜLf_]j][`¥ ;a]ÜAmjq¡–Ümf\Ürm_d]a[`Ü ‚‡ :; _]^`jda[`]ÜAY_\Ü Gj ]akngj l ]ad±Ü nur € ~ƒ– Ag`fÜ>jak`Ye la_c]alÜ\]kÜI][`lk¥ k]afÜ]jkl]jÜN]dl]j^gd_‘Ü Ej‘܁‚‚~ Kgm[`\gofÜ kqkl]ek‘ÜGY[c]f\Ü fY[`Ü\]eÜBadd]jܑ‘‘ Ag`fÜ>jak`YeÜd]ZlÜealÜk]af]jÜ 8G’܇ÜÜ8@’Ü~‚ =jYmÜmf\Ük]af]fÜZ]a\]fÜ ©?+jZm[`ª’ÜÜ oa]Ü]afÜK`jadd]j‘ÜÜ D’Ü~„ÜÜ܄‚Ê Baf\]jfÜafÜ:`Yjdgll]knadd]¤ Jhj‘’Ü:`Yjd]kÜ9jYm]j‘ ƒÜJ]al]f‘Ü>]Z‘¤JL‘ÜÜ @eÜ9m[``Yf\]d’܇–ƒ‡Ü statt* € ~ –‡  ‡‚ƒ Maj_afaYÜmf\ÜafÜFp^gj\¤ ƒÜ:;Ü =glg’Ü;a_alYdklg[c Dakkakkahha‘ ‡‚‚~Ü ~†–†‚ ‡ €Ü ÜÜÜ~ –†‚ im Club Gjg^adÜí<îÜÜ©‡ª nur € ‡ ^]`dl ~‚– ƒ :; Ej‘܁‚ƒ‚ 8G’܇ÜÜ8@’Ü D’Ü €ÜÜ܁‡Ê Ej‘Ü ƒ Ej‘Ü ƒƒ Ej‘܆€„‡‚ Ej‘܆€€ƒ Ej‘Ü ‡€ Ej‘܆€€ƒ‚ 8G’Ü‚‡ÜÜ8@’܃ 8G’܃‡ÜÜ8@’Ü„€ 8G’Ü~‚‡ÜÜ8@’܆‡ 8G’܆‡ÜÜ8@’Ü‚ƒ 8G’Ü ‡ÜÜ8@’܆„ 8G’Ü€‡‡ÜÜ8@’Ü~~ D’Ü~‘‡~€ÜÜÜ~ Ê D’Ü~‘~†~ÜÜÜ~Ê D’Ü~‘‡‚ÜÜ܃‡Ê D’Ü„ ‡ÜÜ܃Ê D’Ü~‘‚~ÜÜÜ~~Ê D’Ü‘~ƒƒÜÜ܁„Ê

G]l]jÜAYe]k Ea[`lÜlglÜ_]fm_Ü

=glg’Ü;G8 ©?+jZm[`ªÜÜ :`Yjdgll]ÜCafc ]gj_] ]gj_] DYjl`YÜ>jae]k K]kkÜ>]jjalk]f K]kkÜ>]jjalk]f GY[c]f\Ü_]d]k]fÜngfÜ?YfkÜ ;YkÜ<[`gÜ NgÜc]afÜQ]m_]Üakl 8eÜYfrÜ \]jÜJ[`md\ jYmkYe]ÜIalmYd¥ _jgv]ÜJhYffmf_kdal]jYlmjœ¡Ü J[`glldYf\’ÜEY[`Ü Ym^Ü]af]eÜ>jYZkl]afÜ Dgj\]k’ÜJ[`d]a[`]f\Ü \]fÜ?mf\ \a_kl]Ü=YddÜ^1jÜ;]l][¥ egj\]ÜZ]k[`]j]fÜ ©9ja_all]ª‘Ü G]l]jÜ †‚ ]af]eÜJ]_]dmf^YddÜ afÜCgf\gfÜYm^_]^mf¥ mf\ÜkmZladÜdkklÜ\a]Ü ]k[`a[`l]‘Ü @kd]kœÜ;a]ÜGYl`gdg_afÜ DYmjYÜ@kd]kÜ]af]fÜ @klÜJ[`ja^lkl]dd]jÜmf\Ü EYl`YfÜDggjÜngdd]jÜ kaf\Üka[`Üka[`]j’Ü mfYmko]a[`da[`]ÜBY¥ >d]a[`Ü\a]Ü]jkl]fÜjgvemlÜngfÜMaj_afaYÜ ;a]kÜaklÜ\a]ÜKYlÜ]af]kÜ lYkljgh`]Ürmkl]m]jf‘Ü ealldmf_]fÜ^+j\]jfÜlYl¥ C]a[`]fkY[cܧÜmf\Ü^af¥ =Ydd‘Ü;YkÜ=9@Ümf\Ü dYf_]ÜAY`j]ÜafÜ\]fÜLJ8Ü Ea[`lÜlglÜ_]fm_ Hm]flafÜmf\Üa`j]eÜ J]ja]fe+j\]jkܑ‘‘Ü ]gj_]Ü k[`da[`Ü]af]ÜC]a[`]Ü \]lÜ\YjafÜ]af]ÜJ[`]af¥ @fl]jhgdÜk[`]af]fÜ _]d]ZlÜmf\ÜoYjÜ\gjlÜYdkÜ ;j]aÜ]jegj\]l]Ü=jYm]fÜafÜfmjÜ]af]jÜNg[`]‘ÜJa]ÜYdd]Ü kgf\]jfÜYm[`Ü^1jÜ\a]Ü=jYm–Ü\a]Ü]jÜda]Zlܑ‘‘ÜÜG]l]jÜAYe]kÜ DYffÜYm^_]fgee]f‘Ü ;]jÜ`jl]kl]Ü=YddÜ^1jÜ k[`Y^^lÜ\YkÜLf_dYmZ¥ rmlY_]‘Ü;g[`Ü\YkÜaklÜ lgl]‘Ü;g[`ÜcYmeÜ`YlÜ ka]Üb]\g[`Üfa[`lÜrmÜ ;j]`Zm[`YmlgjÜmf\Ü omj\]fÜafÜ\]fÜd]lrl]fÜJlmf\]fÜa`j]kÜC]Z]fkÜk[`o]jÜ _YjYfla]jlÜ]jf]mlÜE]jn]fcalr]dÜZakÜrmjÜd]lrl]fÜJ]al]œÜ ;g[`ÜYdkÜMaj_afaYkÜ \YkÜjmf\ÜYm^Ü _d]a[`ÜrmÜa`j]fÜd]lrl]fÜ a`j]Ü]a_]f]ÜNY`j`]alÜ `g[`k[`oYf_]j]ÜAYf]Ü J[`g[c]j–Üfa[`lkÜ^1jÜ Cgf\gfÜk]af]Ü]a_]f]Ü D+j\]jÜ]af]fÜJYlrÜllgoa]jl’Ü N]adÜ\mÜka]Üda]Zkl¡‘Ü ©=1jÜJa]ªÜ a`jÜ]afÜ^1j[`l]jda[`]jÜ n]jf\]jfܑ‘‘ÜÜ 91[`]jfÜfg[`Ü]afeYdÜ rmÜ`YZ]f‘ÜGY[c]f\]jÜ YdkÜ>]ak]d‘ÜÜ QYjlZ]kYal]l]œÜÜ =adehjg\mclagfk^ajeY‘Ü ;]jÜ?Ymhln]j\[`la_]Ü`YlÜ]afÜd1[c]fdgk]kÜ8daZa–Ü ÜD]`jÜmfl]j’Üooo‘\gfYmdYf\‘Yl¤af^g¤bYe]k M]j\Y[`lܑ‘‘ÜÜ ‡‡ÜJ]al]f‘Ü>]Z‘¤JL‘ÜÜ kl]a_]jf‘¡Ü©9ja_all]ªÜÜ C]k]klg^^œÜÜ ~ƒÜJ]al]f‘Ü>]Zmf\]fÜ ~ƒÜJ]al]f‘Ü>]Zmf\]fÜ G]l]jÜAYe]kÜh]f\]dlÜ mf\ÜkgÜ]flk[`da]vlÜka[`Ü;]l][lan]ÜIgqÜ>jY[]–Ü\]fÜ  ÜJ]al]f‘Ü>]Zmf\]fÜealÜJ[`mlrmek[`dY_‘ÜÜ ‚ÜJ]al]f‘Ü>]Z‘¤JL‘ÜÜ @eÜ9m[``Yf\]d’Ü€–ƒ‡Ü ƒ„ÜJ]al]f‘Ü>]Z‘¤JL‘ÜÜ ~ƒÜJ]al]f‘Ü>]Z‘¤JL‘ÜÜ ealÜJ[`mlrmek[`dY_‘ÜÜ ealÜJ[`mlrmek[`dY_‘ÜÜ `]ml]Üroak[`]fÜCgf\gfÜ D+j\]jÜngjÜdYm^]f\]jÜBYe]jYÜ`]jYmkrm^gj\]jf‘Ü @eÜ9m[``Yf\]d’Ü~ –‡Ü ‡ ƒÜ ÜÜÜ~†–†‚ ‡ ƒƒ Ü ÜÜ܇–†‚ ‡†€„‡‚Ü ÜÜÜ~†–†‚ ‡†€€ƒÜ ÜÜÜ~ –†‚ ‡ ‡€Ü ÜÜÜ~†–†‚ ‡†€€ƒ‚Ü ÜÜÜ~ –†‚ mf\ÜJmkk]p‘

LekYlrÜGdYf’܃‘ ÜÜ@kl’Ü~€‘ƒƒ€ LekYlrÜGdYf’܃‘‡~ƒÜÜ@kl’Ü~‘‡~ € ±Ü;FE8LC8E;¥Gj]akngjl]adÜ €‚ Ü DYj_]ÜGdYf’Ü‘€ƒÜÜ@kl’Ü~~‘ƒ„~_]_]f1Z]jÜ\]jÜaf`Ydlda[`Üa\]fl]fÜ9m[``Yf\]dkYmk_YZ] 9]kl]dd]fÜJa]Üb]lrl’܁ÜJlmf\]fÜYm[`ÜJgff¥Ü­Ü=]a]jlY_]‘Ü ‡~ñ ~~܇܃‡ ‡~ñ ~~܇܃ ‡ ooo‘\gfYmdYf\‘YlDYj_]ÜGdYf’܁‘~† ÜÜ@kl’Ü~‡‘„ƒ

Um Absatzzahlen und Marge mit Produktplatzierung zu analysieren, wurden aus einer FileMaker Datenbank alle Ist- und Plan-Daten per Sticker direkt auf die Produktabbildung positioniert.

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Weiterführende Weblinks

• Release Notes: https://developer.apple.com/library/mac/#releasenotes/AppleScript/RN-AppleScript/ RN-10_6/RN-10_6.html • Introduction to AppleScript Overview: https://developer.apple.com/library/mac/#documentation/AppleScript/Conceptual/ AppleScriptX/AppleScriptX.html • About Handler: http://developer.apple.com/library/mac/#documentation/AppleScript/Conceptual/ AppleScriptLangGuide/conceptual/ASLR_about_handlers.html • Forum: http://macscripter.net/index.php • Custom Functions für FileMaker (suche nach „AppleScript“): http://www.briandunning.com/filemaker-custom-functions/ • FileMaker Pro Apple Events Reference: http://fmdl.filemaker.com/MISC/fmp10/fp/apple_events_reference_wwe.zip

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com Weiterführende Literatur

Fachbücher zum Thema AppleScript: • Detlef Schulz: Apple Script: Der automatische Mac; Smartbooks Publishing AG; ISBN-13: 978-3908497783 • Sal Soghoian: "Applescript 1-2-3"; Peachpit Press; ISBN-13: 978-0321149312 Beispiele für Do Shell Scripts, grep und awk: • Erich Schmidt: "Filterung von Datenströmen mithilfe von regulären Ausdrücken auf dem Mac"; FileMaker Magazin, Ausgabe FMM_201201, Seite 29f; K&K Verlag GmbH

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com FileMaker Konferenz2010 Vielen Dank unseren Sponsoren

Danke für das Bewerten dieses Vortrages

Robert Kaiser, www.karo.at FileMaker Konferenz 2012 Salzburg Einsatzgebiete für AppleScript www.filemaker-konferenz.com