Das Matroschka Prinzip

19. Oktober 2013

Anbei die Präsentationsfolien des gemeinsam mit Holger Darjus gehaltenen Vortrags auf der FileMaker-Konferenz 2013 in Salzburg. Den kompletten Vortrag als PDF-Version gibt es hier zum Download.

Das Matroschka Prinzip

FMK2013 Vortrag – Das Matroschka Prinzip (PDF 24 MBytes)

Vortragsfolien Vorschau - Das Matroschka Prinzip

Das Matroschka Prinzip
Wie Sie als Entwickler Ihr Projekt zum Erfolg führen!

Kurzbeschreibung: Holger Darjus und Marcel Moré waren nahezu zeitgleich mit der Umsetzung zweier anspruchsvoller FileMaker-Projekte befasst.

Was bei beiden zunächst wie eine Routine-Aufgabe aussah, entwickelte sich jeweils zu ausgedehnten Abenteuern über mehr als 2 Jahre, bei denen viele Herausforderungen zu meistern waren, die über das Standard-Repertoire eines FileMaker Datenbank Entwicklers weit hinaus gingen.

Die beiden Entwickler berichten von Ihren Erfahrungen und Erkenntnissen auf dieser Reise durch die Wirren zweier IT-Projekte.

Wie sich im Laufe Ihrer Arbeit herausstellte, gab es trotz unterschiedlicher Herangehensweisen zahlreiche Parallelen. Daraus entstand ein Austausch sowohl über kritische Projektphasen, als auch zu Lösungsansätzen auf dem Weg zum erfolgreichen Abschluss.

In der Rückschau auf die Erlebnisse und Ergebnisse Ihrer Arbeit haben die beiden eine spannende Dokumentation erarbeitet, bei der viele Aha-Erlebnisse und Best-Practices für andere Entwickler abgeleitet werden können.

Das »Matroschka Prinzip« bietet Ihnen einen Leitfaden, wie Sie die Herausforderungen in Ihren Projekten souverän meistern. Sie erhalten Antworten auf typische Fragestellungen im Spannungsfeld von verdeckten Kundenanforderungen, knappen Ressourcen und Anwenderwünschen. Profitieren Sie von den Erfahrungen der beiden indem Sie die Faktoren für eine erfolgreiche Planung, Steuerung und Umsetzung der Anwendungs-Entwicklung kennenlernen.
Anhand von Beispielen aus der Praxis erhalten Sie Einblicke in Entwicklungsstrategien und bekommen hilfreiche Anhaltspunkte für Ihre aktuellen und zukünftigen Projekte.

Entwickler-Werkzeuge

19. Oktober 2013

Anbei die Präsentationsfolien meines Vortrags auf der FileMaker-Konferenz 2013 in Salzburg. Den kompletten Vortrag – zzgl. Datenbank mit Entwickler-Tools-Verzeichnis – gibt es hier zum Download.

Vortag Entwickler-Werkzeuge

FMK2013 Vortrag – Entwickler-Werkzeuge (PDF 16 MBytes)

Datenbank – Entwickler-Tools Verzeichnis (ZIP mit FP7- und FMP12-Datei 94 KBytes)

Vortragsfolien Vorschau - Entwickler Werkzeuge

Entwickler-Werkzeuge
Unentbehrliche Helfer im Projekteinsatz

Kurzbeschreibung: Sowohl in täglichen Arbeit als Entwickler als auch im Einsatz bei umfangreichen Projekten ist es gut, wenn man neben FileMaker als Entwicklungsplattform noch weitere spezialisierte Tools parat hat, die einem das Leben erleichtern.

Dabei beschränkt sich die Auswahl inzwischen nicht mehr nur allein auf Plugins, die den Funktionsumfang von FileMaker erweitern.

Einige ausgereifte Spezialwerkzeuge z.B. zur Analyse von Datenbank-Anwendungen, Code-Bibliotheken für die Wiederverwendung von Programmcode oder Tools zur Automatisierung von Migrations- und Konvertierungs-Aufgaben bieten dem ambitionierten Entwickler einen Fundus an wertvollen Möglichkeiten.

Darüberhinaus gibt es zahlreiche Tools und Dienste außerhalb der FileMaker-Welt, mit denen sich die Entwicklungs-Phasen in Projekten sinnvoll unterstützen lassen.

In diesem Vortrag werden beispielhaft einige Einsatz-Szenarien und die verwendeten Tools vorgestellt. Außerdem werden selbstentwickelte Datenbank-Tools gezeigt, die bei der Umsetzung von Projekten für konkrete Aufgaben entstanden sind. Darunter einige Highlights wie z.B. die rekursive Visualisierung von Script-Bäumen, ein praktisches Projekttagebuch oder eine effektive TO-DO Liste.

Egal ob Einsteiger oder Fortgeschrittener – es sind sicher für jeden einige wertvolle Tipps dabei.

AppleScript asynchron ausführen

27. August 2013

Wenn ein AppleScript aus FileMaker heraus gestartet wird, wartet FileMaker solange, bis das AppleScript fertig ausgeführt wurde und setzt dann die eigene Script-Ausführung fort. In vielen Fällen ist das erwünscht, wenn z.B. auf ein bestimmtes Script-Ergebnis gewartet werden muss, welches anschließend weiter verarbeitet werden soll.

Problem: Script-Aufruf blockiert FileMaker

Manchmal ist es jedoch unnötig oder sogar hinderlich, wenn der Script-Ablauf in FileMaker durch das gestartete AppleScript blockiert wird. In diesen Fällen wäre es hilfreich, wenn man das AppleScript “asynchron” starten könnte, so dass beide Scripte parallel abgearbeitet werden können. In diesem Fall kann das FileMaker-Script bereits enden, während das AppleScript noch weiter läuft.

Mit den Bordmitteln von FileMaker lässt sich dieses Verhalten nicht ohne weiteres erreichen. Der Befehl “AppleScript ausführen” kennt keine Option für die asynchrone Ausführung.

Machbar wäre dies allerdings mit dem Befehl “Event senden”, welcher wahlweise die Option zum Abschalten anbietet “Beendigung des Events abwarten”. Leider hat Apple in den neueren OSX Versionen das Dateiformat der AppleScript-Dateien in sogannte “Pakete” geändert. Dies sind Ordner, welche weitere Datei-Ressourcen enthalten, im Finder jedoch als ausführbare Dateien angezeigt werden. Speichert man ein AppleScript als “Programm” ab, so wird der gespeicherte Paket-Ordner – obwohl richtig dargestellt – im Auswahl-Dialog des FileMaker Befehls “Event senden” nicht mehr erkannt. Hier handelt es sich offensichtlich um einen Bug in FileMaker (siehe FileMaker Forum).

Event senden Optionen

Workaround

Mit einem kleinen Trick ist allerdings möglich, das gewünschte Verhalten trotzdem zu erreichen. Der Ablauf gestaltet sich dann folgendermassen:

Wir bauen uns ein Starter-Script innerhalb von FileMaker mit Hilfe des Befehls “AppleScript ausführen”. Das Starter-Script übergibt die Kontrolle an ein Shell-Script, welches das AppleScript über die Systemfunktion ‘osascript’ ausführt. Indem die Standard-Ausgabe auf “DevNull” umgeleitet wird, verhält sich das gestartete Script wie ein Hintergrundprozess!
Einzige Einschränkung: Als Hintergrundprozess darf das Script keine GUI-Interaktionen erzeugen. Dialoge müssen daher z.B. an den Finder delegiert werden (siehe Beispiel-Datei).

Hier nochmal der Ablauf schematisch:

  1. per ‘do shell script’ wird ein Shell-Sript gestartet
  2. per ‘osascript’ wird eine externe AppleScript-Datei ausgeführt
  3. mit dem Zusatz ‘&>/dev/null&’ (Standard-Out umleiten auf DevNull) verhält sich der Script-Aufruf wie ein Hintergrund-Prozess

So sieht der fertige Befehlsaufruf des Starter-Scripts aus:

do shell script "osascript " & the quoted form of(POSIX path of "/Users/myaccount/Desktop/Test.scpt") & " &>/dev/null&"

So kommt das Kommando in der Unix-Befehlszeile an:

osascript "/Users/myaccount/Desktop/Test.scpt" &>/dev/null&

Beispiel-Datei

Nachfolgend gibt es eine Beispiel-Datei zum Download, welche das unterschiedliche Verhalten (synchron/asynchron) verdeutlicht. Das beigefügte ZIP-Archiv enthält die FileMaker-Demo im Format .fp7 und .fp12 sowie eine AppleScript-Datei “Test.scpt”, welche zum Start der Demo auf den Desktop kopiert werden muss.

In der FileMaker-Beispieldatei sind zwei Scripte enthalten, die sich per Copy&Paste in eigene Anwendungen übertragen lassen:

  • AppleScript asynchron als Hintergrund-Prozess starten [Dateipfad]
  • AppleScript synchron starten mit warten auf Scriptende [Dateipfad]

Mit Hilfe des Auswahlfelds “Scriptmode” und dem Button “Demo-Script starten” in der Demo-Datei lassen sich beide Varianten testen.

AppleScript asynchron FileMaker Demo

Download Demo-Ordner:
AppleScript-asynchron.zip (25 KBytes)

weitere Infos

Hintergrund-Infos zu den verwendeten Techniken finden sich unter folgenden Links:

Hinweis: sofern auf dem Computer eine ältere Version der Adobe-Suite installiert ist, kann es bei der Verwendung des Befehls ‘osascript’ zu Fehlermeldungen wegen inkompatibler Libraries kommen. In diesem Fall sollte die aktuelle 64-Bit Version des ‘Adobe Unit Types.osax’ installiert werden (siehe Link).

Systemweite FileMaker Suche über das Dienste-Menu mit Automator

21. Mai 2013

Automator Ablauf als Dienst anlegen

Wer eine FileMaker Lösung als Kernstück seiner Aufgabenbearbeitung verwendet, kennt sicher dieses Szenario: Unzählige Male am Tag kopiert man aus E-Mails oder Internetseiten einen Begriff oder eine Artikelnummer, um in der FileMaker Datenbank danach zu suchen.

Das geht dann ungefähr so: Text in E-Mail auswählen, kopieren, FileMaker nach vorne holen, passende Datenbank auswählen, Suchfunktion aktivieren, Text einsetzen, Suche starten, Ergebnis anzeigen. Wie schön wäre es, wenn sich diese aufwändige Prozedur ohne die ganzen Zwischenschritte quasi auf Knopfdruck erledigen ließe. Die gute Nachricht: Wer auf einem Mac arbeitet, dem kann geholfen werden! Für solche Zwecke hat Apple in seinem OS-X-Betriebssystem die sogenannten „Dienste“ eingebaut. Diese können kontextbasiert z.B. einen ausgewählten Text verarbeiten, egal in welchem Programm man sich gerade befindet.

Mit einer trickreichen Vorgehensweise lassen sich Funktionsaufrufe eines Dienstes direkt an FileMaker weiterreichen und dort verarbeiten. Alles, was man dazu braucht, bringt Mac OS X bereits mit.

Durch die Kombination von Automator, AppleScript, Dienste-Menu, Systemeinstellungen für Tastatur-Optionen und einem passenden FileMaker-Script lässt sich ein individuelles Tastaturkürzel anlegen, mit dem aus (fast) jedem Programm heraus eine FileMaker-Suche für den gerade ausgewählten Text gestartet werden kann.

Eine detaillierte Anleitung mit zahlreichen ScreenShots und Beispiel-Script findet sich als Artikel in der aktuellen Ausgabe 2/2013 des FileMaker Magazins. Den Artikel gibt es außerdem hier zum Download als PDF-Dokument:

PDF Download
PDF-Download (3,9 MB)

CSS Tricks in FileMaker: Switch Buttons iOS Style

22. März 2013

Die Demo-Datei zeigt Switch-Buttons im iOS Style.
Die Buttons lassen sich anklicken und ändern dann ihren visuellen Status. Gleichzeitig wird der Wert im zugehörigen Statusfeld geändert.
Das ganze funktioniert auch umgekehrt – wenn der Wert manuell eingetragen wird, wechselt der Switch seine Position.

Die Darstellung basiert auf WebViewer Objekten, die eine simple HTML-Checkbox mit etwas zusätzlichem CSS beinhalten. Je nachdem welcher Wert im Statusfeld steht, wird die Checkbox als angekreuzt dargestellt oder leer. Der CSS-Code verleiht der Checkbox dann das gewünschte Aussehen im iOS Style – siehe dazu nachfolgend verlinkter Blog-Eintrag von Lea Verou.

Weitere Infos zu den technischen Grundlage der Steuerung in FileMaker finden sich in der Demo-Datei (siehe Link).

Der CSS-Code setzt eine HTML5-kompatible Webengine voraus (daher nicht kompatibel mit älteren Windows-Versionen). Die Demo-Datei funktioniert jedoch problemlos unter OSX und iOS mit den FileMaker Pro Versionen 10,11 und 12; bzw. FileMaker GO 11 und 12.

Die Demo basiert auf einem CSS-Showcase von Lea Verou – siehe Link:
http://lea.verou.me/2013/03/ios-6-switch-style-checkboxes-with-pure-css/

Viel Spaß damit!

FileMaker-Datei zum Download (82 KBytes)
iOS Switch Demo.fp7