Filemaker Konferenz 2012 Salzburg Einsatzgebiete Für Applescript Robert Kaiser ·
Total Page:16
File Type:pdf, Size:1020Kb
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: • Script Debugger (Late Night Software) 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, AppleScripts 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 Late Night Software 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,