7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
www.filemaker-konferenz.com
Wiederverwendbar Datenbankentwicklung
Sprecher: Dipl.-Ing. Arnold Kegebein
Recycling
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Recycling
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
User Interface : Panel Window • Dipl.-Ing. (FH) Arnold Kegebein
Über den Sprecher
• Name: Arnold Kegebein
• Ausbildung: Studium der technischen Informatik
Abschluss: Diplom-Ingenieur (FH)
• Tätigkeiten: Inhouse Entwickler, Hamburg
IT Leiter, Chicago, USA
IT Consultant, Hamburg
über 30 Jahre Erfahrungen
mit Datenbanken
• Sonstiges: 10 Jahre FileMaker Entwickler
Autor für das FileMaker Magazin
Fan von TV-Show „The Big Bang Theory“
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Einleitung
• Wir haben in unseren Projekten hunderte Datenbanken entwickelt
• Mehrere Dutzend Kontakt- und Adressdatenbanken
• Viele von Grund auf neu entwickelt
• Warum?
• Viele Kunden, jeder will seine eigene Datenbank
• Neue Anforderungen
• Neuentwicklung ist oft effektiver als ein Umbau
• Neue Systeme / Programmiersprachen / Programmversionen
• Fortgeschrittenes Wissen und Erfahrungen
• Neue Datenmodelle, Programmiertechniken und -konzepte
• Anforderungen externer Systeme, Schnittstellen
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Bild 1: Original von Kippelboy, via Wikimedia
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Braun Lectron Elektronikbaukasten
• Bausteine stellen elektronische Elemente dar
• Sie lassen sich zu Schaltkreisen zusammenstellen
• Sie sind wiederverwendbar
Original von xavax, via de.wikipedia Commons
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Braun Lectron Elektronikbaukasten
• Beschränkter Arbeitsraum
• Problematische Wiederverwendbarkeit
erstellter Schaltungen
• Lösung: Zukauf oder Selbstbau
von Bausteine mit komplexem
Innenleben
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
FileMaker als Baukasten
• FileMaker hat auch viele Bausteine
• Besonders das Script System ist keine Programmiersprache, sondern ein
Makro-Befehlsbaukasten
• Der Datenzugriff ist eng gekoppelt mit Layouts
• Seit Einführung der Funktion ExecuteSQL/ SqlAusführen weniger eng
• Aber nur lesende Zugriffe erlaubt, Schreiben nicht möglich
• Nur Zugriff auf Daten, nicht auf Struktur
• Kein oder kaum Zugriff auf FileMaker interne Parameter
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Eigene FileMaker Bausteine
• Gesucht ist ein Ansatz, eigene FileMaker Bausteine zu entwickeln,
• die sich direkt wiederverwenden lassen
• oder zumindest nur wenige Anpassungen erfordern
• Stichwort: Modulare Entwicklung
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Warum modulare Entwicklung?
• Das Rad wird nicht jedesmal neu erfunden
• Bewerte Module stehen immer zur Verfügung
• Module vereinfachen die Entwicklung (Arbeitsteilung)
• Module können individuell getestet werden
• Module sorgen für mehr Stabilität
Pro
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Warum modulare Entwicklung?
Contra
• Das Rad wird nicht jedesmal neu erfunden
• Neuentwicklung ermöglicht es, alte System zu verbessern
• Entwicklung einfach verwendbarer Module erfordert erheblich Mehraufwand
• FileMaker ist kein offenes System
• Modulare Programmierung widerspricht der Grundstruktur von FileMaker
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Recycling / Wiederverwendbarkeit
• FileMaker Entwickler suchen und finden verschiedene Wege
• MagicValueList (Andries Heylen)
• Custom List Function (Agnès Barouh)
• Modular FileMaker (Todd Geist)
• Fremdumgebungen nutzen
• Plugins
• WebViewer
• Java oder JavaScript Libraries u. a.
• WebServices
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
• Bekannt ist, was in die Black Box eingegeben wird bzw. wieder heraus kommt
• Das Innere der Black Box ist irrelevant und austauschbar
Black Box Prinzip
A
B
C
X
Y
Akummilierte
Resonanz-
Fillibrations-
Methodik
Integrale
Stimulations-
Konvergenz-
Transformation
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Black Box Entwicklung
• Das Problem von Außen betrachten
• Erst Ein- und Ausgabewerte definieren
• Dann Lösung für Black Box entwickeln
• Das Problem von Innen betrachten
• Zuerst eine spezielle Lösung entwickeln
• Dann die Lösung von seiner Umgebung entkoppelen
• Und dabei die Ein- und Ausgabeparameter festlegen
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Black Box mit FileMaker
• Eine Black Box muss kein Script oder CF sein
• Eine Black Box muss nicht ein einzelnes Objekt sein
• Eine Black Box muss keine eigenständige Datei sein, kann es aber
• Vorteil:
• Update / Austausch der Black Box vereinfacht sich
• Import und Anpassung von Scripts entfällt
• Nachteil:
• Öffentliche CFs müssen importiert werden
• Eine ideale Black Box wird sich in FileMaker nicht immer umsetzen lassen
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
The Basics – Grundlagen
• FileMaker Pro Advanced ist ein MUSS
• Fortgeschrittene Kenntnisse von CFs
• (Eigene) Konventionen verwenden
• Namenskonventionen
• Entwicklungskonventionen
• Dokumentationskonventionen
• Kenntnisse moderner Datenmodelle
• Externe Systeme kennen und nutzen
(imho)
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Basic Recycling
• Die Zwischenablage ist das einfachste Prinzip von Recycling
• Standardfelder kopieren
• Standardscripts (Header Dokumentation, …)
• Formelsammlung
• Templates (Felder, Scripts. …)
• Layoutelemente
Let( [
~sql = "
SELECT {__id}, {field}
FROM {{table}}
WHERE {field} = ?
ORDER BY {field}
OFFSET n ROWS
FETCH FIRST n ROWS ONLY|WITH TIES
";
~qry = Substitute( ~sql;
[ “{{table}}”; sqlTable( Table::__id ) ];
[ “{__id}"; sqlField( Table::__id ) ];
[ "{field}"; sqlField( Table::field ) ]
);
~res = ExecuteSQL( ~qry; ""; "";
$variable
)
];
If( ~res ≠ "?"; ~res )
)
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Recycling mit CFs
• Formelsammlung mit häufig verwendeten Funktionen
• Spezielle Funktionen für Module
• Script Parameter: #, #Assign, #Get, …
• SQL Query: sqlField, sqlTable, sqlInSet
• Entkoppeln bzw. Kapseln von Plugin-Funktionen
• Erleichtert das Wechseln von Plugins
• Ersatz für Konstanten: bom, null
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
CF Konventionen
• Namenskonvention
• Prefix / Suffix / camelCase
• Fallstrick „Sprachversionen“
• Kennzeichnung „hard-coded“ CFs
• Dokumentationskonvention
• Im Kopf des Funktionscodes
• Aufgabe der CF
• Rückgabewert
• Eingabeparameter
• Änderungshistorie
• …
/*----------------------------------------------------------
* #Assign( _parameters )
*
* PURPOSE
* Parses a Let dictionary of name-value parameters into a
* locally scoped $variables.
*
* RETURNS
* True(1) when parameters is a valid set of name-value pai
* includes the empty string); False(0) otherwise.
* If False(0), the error code will be saved to: $#Assign.e
*
* PARAMETERS
* _parameters: A Let format dictionary, such as produced b
* #( name; value ) function.
*
* HISTORY
* 2015-10-27 by Matt Petrowsky to support weak formatted r
* delimited input.
* 2013-03-15 by Daniel Smith <http://scr.im/dansmith> to u
* documentation to match functions actual return value.
* 2012-11-28 by Jeremy Bante <http://scr.im/jbante> to sup
* "$" prefix values as default.
* 2012-11-11 by Jeremy Bante <http://scr.im/jbante>.
------------------------------------------------------------
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Beispiel: SQL Abfragen
• Kein „hard coding“
• Tabellen und Felder
entkoppeln
• Sonderfälle einplanen
• Fehlerbehandlung
Let( [
~sql = "
SELECT {__id}, {field}
FROM {{table}}
WHERE {field} = ?
ORDER BY {field}
OFFSET n ROWS
FETCH FIRST n ROWS ONLY|WITH TIES
";
~qry = Substitute( ~sql;
[ “{{table}}”; sqlTable( Table::__id ) ];
[ “{__id}"; sqlField( Table::__id ) ];
[ “{field}"; sqlField( Table::field ) ]
);
~res = ExecuteSQL( ~qry; ""; "";
$variable
)
];
If( ~res ≠ "?"; ~res )
)
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Fehlerbehandlung
• FileMaker hat nur eine sehr einfache Fehlerverwaltung
• Hole( LetzteFehlerNr )
• BerechnungsFehler( … )
• Rückgabewert in Fehlerfällen: „?“
• Gewünscht ist ein erweitertes Black Box Konzept
A
B
C
X
Y
#
Fehlerinformation
?
?
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Systeme entkoppeln
• Keine bestimmten Umgebungseinstellungen erwarten
• bestimmte Layouts oder Layouttabellen
• aktuell ausgewählte Datensätze
• Fenstermodus
• globalen Variablen, außer die Black Box erstellt sie selbst
• Keine bestimmten Tabellen bzw. Felder verwenden
• Ausnahme: Die Tabelle kann vollständig in der Black Box existieren
• Keine bestimmten Layouts verwenden
• Siehe auch: Script auf Server ausführen
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Systeme entkoppeln
• Enge Kopplung vermeiden
• „Feste verdrahtete“ Programmierung vermeiden
• Nicht 0,19 bzw. 19% als Mehrwertsteuersatz in Formeln eintragen,
sondern ein entsprechendes Feld verwenden
• Mögliche Schwachstellen erkennen
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Scripts
• Script Parameter verwenden
• Layout Id statt Layout Name oder Layout Nummer
• Ein Eingang, ein Ausgang („Single Loop“)
• Script Ergebnis zurückgeben
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
CFs vz. Scripts
• Fast alles, was eine CF kann, lässt sich mit einem Script nachbilden
• Ausnahme: Anzahl der Parameter;
• CF kann mehrere haben, Script nur einen
• Übergabe mehrerer Parameter muss bei Scripts mit eigenen Methoden
ermöglicht werden
• Ausnahme: Parameterübergabe „by reference“
• CF kann Herkunft der Parameter erfragen
• Script Parameter ist immer „by value“, da als Text übergeben
• CFs werden im lokalen Speicher berechnet
• Scripts können auch auf dem Server ausgeführt werden
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Benennen von Scripts
• Spezielle Markierungen können bestimmte Scriptarten kennzeichnen:
• Idempotenz
Wiederholt hintereinander aufgerufen führt das Scripts zum gleichen Ergebnis
• Kontext-unabhängigkeit
Das Script kann jederzeit und aus jedem Kontext heraus aufgerufen werden
• Script Functions
Scripts, die wie eine Funktion verwendet werden können
• Parametrisierte Scripts
• Server Scripts
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
Recycling | Wiederverwendbare Datenbankentwicklung • Dipl.-Ing. (FH) Arnold Kegebein
Fragen & Antworten
• Was haben Sie nicht verstanden?
• Was wollen Sie noch wissen?
• Wollen Sie noch etwas beitragen?
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016
FileMaker Konferenz 2016 Salzburg
Vielen Dank unseren Sponsoren
Ohne Sponsoring wäre diese Konferenz
so nicht möglich!