Upload
verein-fm-konferenz
View
1.202
Download
0
Embed Size (px)
Citation preview
Wolfgang WunderlichFramework-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
FrameWork-Konzepte in FileMaker Pro
Skript-Modularisierung für schnellere und effektivere
Entwicklung in FileMaker
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Wolfgang Wunderlich
• Dipl.Soz.Pädagoge
• Gesprächstherapeutische Ausbildung
• Jugendarbeit, Psychatrie
• EDV-Pädagoge, Ausbildung auf DOS, SINIX, Siemens 2000
• Anwendungsprogammierer IHK (COBOL, PASCAL)
• Systematics HH
• Produktmananger RagTime 3/4 UNICORN
• Selbsständig seit 1989, Trainer und FM-Entwickler
• GF DeskTop Organisation GmbH seit 1993
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
FrameWorks - Begriffsfindung• FrameWork
• wörtlich: „Rahmen-Werk“
• Wird verwendet u.a. im Vertragswesen, Organisation, Software-Entwicklung…
• …im Zusammenhang mit andern Begriffen, wie z.B.:
• Baustein
• Programmiergerüst
• Modul
• PlugIn
• …und:
• Granularität
• wie groß oder klein ist FrameWork
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Frameworks im Kontext von FileMaker
• FileMaker • SkriptSchritte
• Funktionen• Designs
• Eigene Funktionen (CF’s) • PlugIns
• Skripte ?• Skripte!
• Kombinationen aus Script und anderen Elementen
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Ziele und Nutzen
• Funktionspakete für sich wiederholende Aufgaben aufbauen
• Verlagerung von Komplexität
• Kontext unabhängiger werden
• -> Transportierbarkeit
• -> Wiederverwendbarkeit in anderen Lösungen
• Beschleunigte Entwicklung auf hohem Niveau mit geringerem Aufwand
• Eigenen Befehlsvorrat schaffen
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Sub-Skript
• Skript A und Script B haben gemeinsame Schritte
• -> Sub-Skript bauen, das von A und B aufgerufen werden kann
• Sub-Skript erfüllte eine Standard-Funktion
• Prinzip: Teilmenge auslagern
Script A Script B
SubSkript
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Framework-Script
• Standardfunktionen (möglichst) kontext-unabhängig Skripten
• …und in konkreter Situation nutzen
• Prinzip: eigenen Befehls-Vorrat aufbauen
• direkter Aufruf
• oder über „Mantel-Script“
Skript FrameWork
Taste
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Vorraussetzungen schaffen
• Welche Voraussetzung müssen gegeben sein, damit meine FrameWorks funktionieren?
• Voraussetzung schaffen, transportieren
• Voraussetzung evtl. ERFINDEN
• „Henne-Ei-Situation“
• Kreativität!
FrameWork
Vorraussetzungen
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
FileMaker bietet dafür:
• Geeignete FileMaker Funktionen:
• Hole( Scriptparameter )
• HoleFeldwert ( Feld )
• Hole( ScriptErgebnis )
• und SkriptSchritte:
• Feld nach Namen einstellen [ FeldName; Wert ]
• Gehe zu Layout [ LayoutName ]
• Gehe zu Objekt [ ObjektName ]
• u.v.a
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Vorgehensweise: Trennen von Kontext und Funktion
• Unabhängig von wechselndem Kontext werden
• Datenmodelle:
• Connector / Selector versucht den Kontext stabil zu halten (Universal Kontext)
• Anker Boje= wechselnde Kontexte
• „Kontext-Redundant“ erzeugen
• Das heißt wenn der Kontext wechselt muss er
• berechenbar sein um transportiert werden zu können - in Parametern
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Vorraussetzung: Errechenbare Quellen und Ziele
• ID-Feldnamen: Regel
• ID Primary-Key
• ID_Adressen ID_ & Basistabelle = Secondary-Key
• Personen::ID_Adressen Zieltabelle:: & Feldname = FQFeldName
• Layouts
• ADRESSEN Basistabelle
• Adressen - Liste Basistabelle & „ - Liste“
• Adressen - Suche Basistabelle & „ - Suche“
• Adressen - Hilfslayout Basistabelle & „ - Hilfslayout“
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Parameter Transport
• Mechanismen für Parameter Handling:
• früher: Globale Felder
• $$Variable
• …oder direkt Übergabe an Skript:
• Hole(ScriptParameter)
• Problem: Übergabe von mehr als einem Skriptparameter
• über Eigene Funktionen (CF’s)
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Kleine CF mit großer Wirkung#1
• SkriptParam ( Nr )• HoleWert( Austauschen ( Hole ( ScriptParameter ) ; „|“ ; „¶" ) ; Nr )
• Parameter-Trenner ist: | ( alt-7 )• z.B. String: ”Personen | 945 | Müller“
• …wird umgewandelt in Liste…Personen 945Müller
• …dann greift: HoleWert(Liste; Nr)• Nachteil: Nicht geeignet für Listen oder umfangreiche
Nur für für Steuerungs-Parameter geeignet
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Parameter abholen: Skript initialaiseren
• Löschen: Ausschnittreihe [ Personen | 945 | Müller | ]
• Variable setzen [$Tabelle; Wert:Skriptparam ( 1 )]
• Variable setzen [$ID; Wert:Skriptparam ( 2 )]
• Variable setzen [$DialogString; Wert:Skriptparam ( 3 )]
• Variable setzen [$Zugriffsbereich; Wert:Skriptparam ( 4 )]
Praxis-Tipp: Variable (möglichst) zuerst initialisieren!
Siehe auch Demo-Datei
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
• Scriptname [Param1,{Param2}, {Param3}]
• Beispiel:
• Neu: BezugsDatensatz [ZielTabelle, ID, {Zugriffsbereich, ZielLayout}]
• Personen | 945 |
• $Tabelle & „ |" & $ID
Beispiel: Skriptnamen & Parameterübergabe
Wolfgang Wunderlich Strukturierte Namensgebung
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Kleine CF mit großer Wirkung#2• LayoutBereich = Erstes Wort des Layoutnamens
• RECHNUNGEN
• Rechnungen - Liste
• Rechnungen - Suche
• Rechnungen - Hilfslayout
• Rechnungen - Tabelle
• Rechnungen - Printout: Rechnung
• Rechnungen - Printout: Mahnung etc.
• Die CF „Layoutbereich“ liefert für alle diese Layouts : „Rechnungen“
• Variable setzen $Layout = LayouBereich & „ - Hilfslayout“
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Standardfunktionen Datensätze anlegen/löschen
• Datensätze anlegen
• Im Layout: „Neuer Datensatz“
• Erzeugen neuer Datensätze über Beziehung
• Im Portal (Eingabe in letzter Ausschnittreihe)
• Über Skript Werte in Beziehung eintragen
• Datensätze löschen
• Im Layout: „Datensatz löschen“
• Über Beziehung
• Ausschnittreihe löschen
• Bezugsdatensätze mit Hauptdatensatz löschen
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Datensätze anlegen, Details
• Zugriffsrechte
• Darf der angemeldete Benutzer in aktuellen Kontext Datensätze erzeugen?
• Dialog
• Soll vor der Ausführung einen Dialog gezeigt werden?
• Navigation
• Im Layout bleiben oder zu neuem Bezugsdatensatz navigieren?
• Cursor setzen
• In welchem Feld soll der Cursor im neuen Datensatz stehen?
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Beispiel: Datensätze löschen
• Zugriffsrechte
• Ist der Datensatz geschützt?
• Darf der angemeldete Benutzer Datensätze löschen?
• Dialog
• Soll vor der Ausführung ein Dialog gezeigt werden?
• Protokollierung
• Soll das Löschen protokolliert werden?
• Navigation
• Wo sind wir nach dem Löschen?
Wolfgang Wunderlich FrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
DEMO
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Widrigkeiten, Praxis-Erfahrungen
• Komplexität steigt
• Übersichtlichkeit kann verloren gehen
• …Namensgebung, Dokumentation ….Übung
• Pflege und Überarbeitungen können notwendig werden
• …ggf. auch Rückbau
• FrameWorks können mit neuen FM-Features veralten :-(
• Neuen FM-Features machen neue Frameworks nötig (möglich)
• Voraussetzungen sind nicht gegeben
• z.B. in fremden oder MultiFile-Lösungen
• oder noch nicht erfunden…
Wolfgang WunderlichFrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Weitere Beispiel für Script-Frameworks:
• Beispiele im Demo-File:
• Suchen
• Schnellsuche
• Navigation
• Dokumente
• PopOver-Dialoge steuern
• Dokumente
Wolfgang Wunderlich FrameWork-Konzepte in FileMaker
FileMaker Konferenz 2015 Hamburgwww.filemaker-konferenz.com
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages