SlideShare ist ein Scribd-Unternehmen logo
www.filemaker-konferenz.com
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Dr. Adam G. Augustin
Überarbeitete Programmiertechniken in FileMaker
www.agametis.de
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
• Selbständiger FileMaker Entwickler im Raum
München

• Beratung und Entwicklung seit über 10
Jahren

• Entwicklung von kundenspezifischen
Datenbanken sowie Betreuung und
Weiterentwicklung bestehender Lösungen 

• FileMaker 12 bis 18 zertifiziert

• Zahlreiche Vorträge auf der FMK und dotfmp

• Web- und App-Entwicklung

• Mehr zu meiner Philosophie auf
www.agametis.de
Wer bin ich?
2
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Ziel des Vortrages
• FileMaker hat uns über die Jahre immer wieder neue Möglichkeiten gegeben,
Prozesse zu programmieren und zu gestalten.

• Im Laufe meiner Arbeit habe ich mit vielen unterschiedlichen Entwicklern
zusammengearbeitet und in vielen “Fremd”-Lösungen einiges Gutes und nicht
so Gutes gesehen.

• Grundsätzlich ist es immer gut, seine Arbeitsweise zu überdenken und zu
schauen, ob die neuen Möglichkeiten einem helfen, besser und effizienter zu
entwickeln.
3
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Der Script-Debugger
• Gibt Einsicht in den Skriptablauf

• Erlaubt die Überwachung von Variablen und dynamischen Feldinhalten

• Erlaubt die Analyse mit verschiedenen Benutzerrechten!

• Es können Haltepunkte definiert werden

• In Kombination mit der Datenanzeige (Data Viewer) bekommt man einen sehr
guten Gesamtüberblick.

• Kann im Falle eines Fehlers automatisch eingeblendet werden

• Erlaubt temporär alle Skripttrigger zu deaktivieren
4
https://help.claris.com/de/pro-help/content/debugging-scripts.html
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Debugger: Fenster
5
Skripttrigger (de)aktivieren
Datenanzeige
Pausieren bei
einem Fehler
Skript
öffnen
Kontrolle
des Ablaufs
Anzeige der Skriptabfolge inkl.
der übergebenen Parameter
Letzte Fehlermeldung
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Objektfenster
6
Rechts oben im Fenster
befindet sich das Icon
zum Ein- und
Ausblenden
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Objektfenster
• Ein- und Ausblenden von Objekten/Objektgruppen

• Definition des Objektnamens

• Definition bedingter Formatierung und Skripttrigger

• Suche und Filtern von Objekten
7
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Objektfenster - Felder
8
• Felddefinition und Organisation

• Viele hilfreiche Möglichkeiten, Felder im
Layout per Drag&Drop zu platzieren

• Filtern nach Feldnamen
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Funktion: Liste
• Erlaubt bequemes Datensammeln (innerhalb oder über Skripte hinweg)

• In Kombination mit der Funktion “Austauschen” (substitute) bequeme Möglichkeit
auf einfache Art, komplexe Strukturen aufzubauen

• Einfaches Beispiel:

• $Liste = Liste ( $Titel ; $Vorname ; $Nachname )

• $VollstaendigerName = Austauschen ( $Liste ; “¶” ; “ “ )

• “ “ wird nur gesetzt, wenn tatsächlich die Werte vorhanden sind! (yes)

• Keine komplizierten Überprüfungen nötig, ob $Titel, $Vorname oder
$Nachname leer sind, um zu verhindern, dass unnötige Leerzeichen
angehängt werden

• Frage: Wie baut ihr eine Anschrift zusammen?
9
$Titel

$Vorname

$Nachname
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Funktion: Liste
10
Aufbau einer Anschrift mit Hilfe der Funktionen “Liste” und “Austauschen”
Let([

	 xFirma = Adresse::Firma;

	 xSonder = Adresse::SondervermoegenFonds;

	 xStrasse = Adresse::Strasse;

	 xPLZOrt = Substitute ( List ( Adresse::Plz ; Adresse::Ort ) ; “¶” ; “ “ );

	 xLand = Case ( PatternCount ( Adresse::Land ; "Deutsch" ) ; “” ; Adresse::Land )

];

	 List ( xFirma ; xSonder ; xStrasse ; xPLZOrt ; xLand )

) // End Let
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Skriptschritt: Text einfügen
• Erlaubt die Verwendung von Texten ohne “Sonderzeichen” schützen zu
müssen (“ )

• Text ist direkt im Skript verwendbar.

• Text muss nicht aus einem Feld gezogen werden.
11
Beispiel eines Textes, welcher nicht ohne Weiteres im Formelfenster verwendet werden kann.
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Skriptschritt: Text einfügen
• Seitdem es die Möglichkeit gibt, das Ergebnis
in eine Variablen zu schreiben, ist der
Skriptschritt viel flexibler einsetzbar bei:

• Entwicklung für den Web Viewer (HTML,
CSS und JavaScript)

• Texte in denen “Sonderzeichen”
verwendet werden
12
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Kartenfenster (Eigenschaften)
13
• Modales Fenster innerhalb des aktuellen Fensters

• Ohne Fensterrahmen und beliebig platzierbar

• Beim Öffnen gibt es kein “Flackern” des Hauptfensters unter Windows.

• Vorsicht: aus dem Kartenfenster heraus kann kein weiteres Kartenfenster mehr
geöffnet werden (alle anderen Fenstertypen schon).
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Kartenfenster (Einsatzmöglichkeiten)
• Aufbau moderner Benutzeroberflächen möglich

• Dateneingabe mit speziellen Vorgaben

• Modulares Suchfenster

• Navigationslayout bei Bedarf einblendbar

• Komplexe Aktionen mit vielen Skripten können in einem (bei Bedarf sogar
sichtbaren) Fenster abgearbeitet werden, ohne eventuell in jedem Skript ein
neues “unsichtbares” Fenster zu öffnen und wieder zu schliessen.

• Bei längeren Aktion kann es z.B. als Infofenster verwendet werden
14
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Kartenfenster
15
Beispiel: Kartenfenster als Infofenster mit Anzeige des Prozessfortschrittes
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker und JavaScript - Adam Augustin
“Der Schleifendschungel”
16
#
If [ $Bedingung_A ]
#
Else If [ $Bedingung_B ]
#
If [ $Bedingung_C ]
#
Else If [ $Bedingung_D1 ]
#
If [ $Bedingung_E ]
#
Else If [ $Bedingung_F ]
#
End If
#
Else If [ $Bedingung_D2 ]
#
End If
#
End If
#
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
“Globale Schleife” (try-catch)
17
• Alle Aktionen werden innerhalb einer Loop-Anweisung ausgeführt (try).

• Bei einem Fehler wird zunächst nur die Loop verlassen.

• Nach dem Verlassen der Loop wird der Fehler verarbeitet (catch).

• Vorteil:

• Bei intensiver Fehlerprüfung kein ständiges: wenn Fehler - dann "schreibe Log” -
eventuell “schliesse Fenster” - dann “verlasse Skript”, etc.

• Fehlerbehandlung nur an einer Stelle: am Ende des Skriptes

• Wenn kein Fehler auftritt, wird das Skript normal beendet.

• Nachteil:

• Man muss sich immer bewusst sein, dass sich quasi der gesamte Code innerhalb
einer Loop-Anweisung befindet:

• “Script Verlassen” ist da nicht (macht den Ablauf “kaputt”)

• Nur “Loop Verlassen” darf benutzt werden :)
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Prinzip: Globale Schleife
18
# #####################

# # Globale Loop

# #####################

# 

# Loop - global

Loop

# 

# Anweisung_A

If [ $LastError ] 

Exit Loop If [ True ] 

End If

# 

# Anweisung_B

If [ $LastError ] 

Set Variable [ $FehlerMeldung ; Value: "Fehler bei Anweisung_B" ] 

Exit Loop If [ True ] 

End If

# 

# 

Exit Loop If [ True ] 

End Loop

# End Loop - global

# 

# 

# 

# #####################

# # Fehlerbehandlung

# #####################

# 

If [ $LastError ] 

# Fehler behandeln

# 

If [ False ] 

Else If [ $FehlerMeldung ≠ "" ] 

Show Custom Dialog [ "Fehler: " & $LastError ; $FehlerMeldung ] 

Else

# Infodialog

Show Custom Dialog [ "Fehler: " & $LastError ; "Es ist der Fehler " & $LastError & " aufgetreten!" ] 

End If

# 

End If

# 

Exit Script [ Text Result: cf_ResultSet ( "LastError" ; $LastError ; 1 ) ] 

# 

#
try
catch
# Loop - global

Loop

# 

# Anweisung_A

If [ $LastError ]

Exit Loop If [ True ]

End If

# 

# Anweisung_B

If [ $LastError ] 

Set Variable [ $FehlerMeldung ; Value: "Fehler bei Anweisung_B" ] 

Exit Loop If [ True ]

End If

# 

# 

Exit Loop If [ True ]

End Loop

# End Loop - global
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Prinzip: Globale Schleife
19
# #####################

# # Globale Loop

# #####################

# 

# Loop - global

Loop

# 

# Anweisung_A

If [ $LastError ] 

Exit Loop If [ True ] 

End If

# 

# Anweisung_B

If [ $LastError ] 

Set Variable [ $FehlerMeldung ; Value: "Fehler bei Anweisung_B" ] 

Exit Loop If [ True ] 

End If

# 

# 

Exit Loop If [ True ] 

End Loop

# End Loop - global

# 

# 

# 

# #####################

# # Fehlerbehandlung

# #####################

# 

If [ $LastError ] 

# Fehler behandeln

# 

If [ False ] 

Else If [ $FehlerMeldung ≠ "" ] 

Show Custom Dialog [ "Fehler: " & $LastError ; $FehlerMeldung ] 

Else

# Infodialog

Show Custom Dialog [ "Fehler: " & $LastError ; "Es ist der Fehler " & $LastError & " aufgetreten!" ] 

End If

# 

End If

# 

Exit Script [ Text Result: cf_ResultSet ( "LastError" ; $LastError ; 1 ) ] 

# 

#
try
catch
# #####################

# # Fehlerbehandlung

# #####################

# 

If [ $LastError ] 

# Fehler behandeln und Log schreiben

# 

If [ False ] 

Else If [ $FehlerMeldung ≠ "" ] 

Show Custom Dialog [ "Fehler: " & $LastError ; $FehlerMeldung ] 

Else

# allgemeiner Fehlerdialog

Show Custom Dialog [ "Fehler: " & $LastError ; 

“Es ist der Fehler " & $LastError & " aufgetreten!" ] 

End If

# 

End If
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker und JavaScript - Adam Augustin
Let’s go
20
Demo
zum Kartenfenster mit globaler Schleife


(mit DSGVO konformen Daten!)
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
JSON
• “Leichtes”, strukturiertes Datenaustauschformat

• kleine Datenmenge, kein zusätzlicher Overhead wie z.B. beim XML-
Format

• Seit FM16 in FileMaker integriert:

• JSONDeleteElement

• JSONFormatElements

• JSONGetElement

• JSONListKeys

• JSONListValues

• JSONSetElement

• JSONGetElementType (FM19.5)
21
https://www.json.org/json-en.html
Wer ist eigentlich Jayson?
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
JSON
• Quasi-Standard für den Datenaustausch im Web

• Ermöglicht strukturiertes Datenhandling:

• Datenaggregation und Auswertung

• Parameterübergabe (Multiparameter)

• Bereits in vielen Vorträgen auf der FMK präsentiert
22
https://www.json.org/json-en.html
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Skriptschritt: FileMaker Data API ausführen
• Neue Schnittstelle, um Daten im JSON-Format innerhalb einer FileMaker-Lösung
abzurufen

• Eigentlich ein Server-Feature (REST API)

• Aber mit Hilfe des Skriptschrittes “FileMaker Data API ausführen”, kann sie
direkt im FM-Client verwendet werden

• Der Aufruf kann quasi “kontextlos” benutzt werden (ohne eine aktive Beziehung
zum aktuellen Kontext)

• Es wird nur ein Layout angegeben.

• Es werden die Daten aller auf dem Layout vorhandenen Felder (inkl. der
Bezugsdatensätze!) ausgegeben.
23
https://help.claris.com/de/pro-help/content/execute-filemaker-data-api.html
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Skriptschritt: FileMaker Data API ausführen
• Die Daten werden direkt im JSON-Format zurückgegeben

• Im Gegensatz zu der Funktion “SQL ausführen” viel performanter, da auf dem
Server ausgeführt

• Detaillierte Artikel von Jörg Köster im FMM - “Das Phantom der API”

FMM 202003-202005
24
https://help.claris.com/de/pro-help/content/execute-filemaker-data-api.html
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker und JavaScript - Adam Augustin
Let’s go
25
Demo
zu “FileMaker Data API ausführen”


(mit DSGVO konformen Daten!)
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Tooling
• Datenbankanalyse (nach einer Zeit fühlt sich die eigene Lösung, wie eine
Fremdlösung an):

• FM Perception (für ad-hoc Schnellanalyse)

• CrossCheck (für tiefergehende Analyse aufgrund detaillierter Error Reports)

• FM v19.5 kompatibel

• mit neuen coolen Features in Version 11:

• Zusammen mit “Save a Copy as XML…” können viele zusätzliche
Informationen und Abhängigkeiten angezeigt werden (z.B: wichtige
Details zu Layoutbereichen)

• Grafische Anzeige der Skriptabfolge und Positionen von
Layoutobjekten innerhalb eines Layout
26
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Tooling
• Russell Watsons Wundertüte: https://github.com/mrwatson-de

• Clip Manager (auf Apple Silicon ist noch mit FM v18 nutzbar)

• MBS (spätestens jetzt muss man einen Mac für die FM-Entwicklung nutzen :))
27
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
Was gibt es sonst?
• UUID-Funktionen (als Text oder Zahl) z.B. für Schlüsselfelder

• "Skript auf Server ausführen” (seit 19.5 auch auf dem Server einsetzbar, um
parallele Verarbeitung zu erreichen)

• Ausschnitt “auf sich selbst” - damit werden Layouts im Master-Detail-Stil möglich

• Seitensteuerelement, Tastenleiste

• Datei-Skriptschritte (https://help.claris.com/de/pro-help/content/files-script-
steps.html)

• Standardfelder in Tabellen (https://support.claris.com/s/article/Default-Fields?
language=en_US)

• “JavaScript in Web Viewer ausführen” (Details in meinem anderen Vortrag von der
FMK2022)

• Und, und, und
28
https://support.claris.com/s/article/FileMaker-Pro-Version-Comparison?language=en_US
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker und JavaScript - Adam Augustin
Download
29
https://ag.amet.is/fmk2022
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Überarbeitete Programmiertechniken in FileMaker - Adam Augustin
F & A
30
Vielen Dank für euer Interesse!
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Titel Vortrag - Name Sprecher
Vielen Dank unseren Sponsoren

Weitere ähnliche Inhalte

PDF
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
PDF
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
ODP
Tutorial sobre iptables
PPT
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
PPTX
Desarrollo Web con Kohana Framework PHP
DOCX
Qué es exactamente un sistema cluster
PPSX
Modelo de caja
PPTX
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
Tutorial sobre iptables
Desenvolvimento de Sistemas Cliente/Servidor - Estrutura de sistemas cliente ...
Desarrollo Web con Kohana Framework PHP
Qué es exactamente un sistema cluster
Modelo de caja

Was ist angesagt? (20)

PPTX
Troubleshooting Provisioning Services Target Boot Processes
PDF
51191625 triggers
PPTX
IdP, SAML, OAuth
PDF
Digital Forensics and Incident Response in The Cloud Part 3
PPT
Cabeamento Estruturado
PDF
VISUAL BASIC 6.0
PDF
객체지향적인 도메인 레이어 구축하기
PPTX
INTEGRIDAD DE DATOS
PPTX
Componentes de uma rede
PDF
Amandaを使ってバックアップ管理を一元化
PDF
Building Internet Server using CentOS 7 and CentOS Web Panel (CWP)
DOCX
PPTX
Amazon Web Services
PDF
JCR, Sling or AEM? Which API should I use and when?
PDF
Tutorial su JMS (Java Message Service)
PPTX
Segurança de Rede
PPTX
PDF
Trabalho Sobre Internet
PPTX
Placa de Vídeo
PDF
Diseña y administra base de datos avanzada
Troubleshooting Provisioning Services Target Boot Processes
51191625 triggers
IdP, SAML, OAuth
Digital Forensics and Incident Response in The Cloud Part 3
Cabeamento Estruturado
VISUAL BASIC 6.0
객체지향적인 도메인 레이어 구축하기
INTEGRIDAD DE DATOS
Componentes de uma rede
Amandaを使ってバックアップ管理を一元化
Building Internet Server using CentOS 7 and CentOS Web Panel (CWP)
Amazon Web Services
JCR, Sling or AEM? Which API should I use and when?
Tutorial su JMS (Java Message Service)
Segurança de Rede
Trabalho Sobre Internet
Placa de Vídeo
Diseña y administra base de datos avanzada
Anzeige

Ähnlich wie FMK2022 Neue Programmiertechniken von Adam Augusting (7)

PDF
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
PDF
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
PDF
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
PDF
FMK2022 FileMaker Integrated Development Environment - Russell Watson
PDF
FMK2017 - Programmieren am offenen Herzen by Jörg Köster
KEY
FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …
PDF
FMK2022 Custom Functions von Philipp Puls
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2017 - Programmieren am offenen Herzen by Jörg Köster
FMK2012: Programmstrukturen - FileMaker Skripten nicht nur für Experten …
FMK2022 Custom Functions von Philipp Puls
Anzeige

Mehr von Verein FM Konferenz (20)

PDF
FMK2022 Excel und FileMaker Schittko.pdf
PDF
FMK2022 FileMaker Fehler von Martin Schwarz
PDF
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
PDF
FMK2022 FileMaker und Javascript von Adam Augustin
PDF
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
PDF
FMK2022 Dokumentation - Thomas Hirt
PDF
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
PDF
FMK2022 Datenschutz DSGVO Christoph Kluss
PDF
FMK2022 Rechnungen Inkasso - Christoph Kluss
PDF
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
PDF
FMK2019 bug off lightning talk by Russell Watson
PDF
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
PDF
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
PDF
FMK2019 Hardware Integrated by HOnza Koudelka
PDF
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
PDF
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
PDF
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
PDF
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
PDF
FMK2019 FM Data Migration Tool by Stefan Tischler
PDF
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Dokumentation - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2019 bug off lightning talk by Russell Watson
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
FMK2019 FM Data Migration Tool by Stefan Tischler
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub

FMK2022 Neue Programmiertechniken von Adam Augusting

  • 1. www.filemaker-konferenz.com FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Dr. Adam G. Augustin Überarbeitete Programmiertechniken in FileMaker www.agametis.de
  • 2. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin • Selbständiger FileMaker Entwickler im Raum München • Beratung und Entwicklung seit über 10 Jahren • Entwicklung von kundenspezifischen Datenbanken sowie Betreuung und Weiterentwicklung bestehender Lösungen • FileMaker 12 bis 18 zertifiziert • Zahlreiche Vorträge auf der FMK und dotfmp • Web- und App-Entwicklung • Mehr zu meiner Philosophie auf www.agametis.de Wer bin ich? 2
  • 3. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Ziel des Vortrages • FileMaker hat uns über die Jahre immer wieder neue Möglichkeiten gegeben, Prozesse zu programmieren und zu gestalten. • Im Laufe meiner Arbeit habe ich mit vielen unterschiedlichen Entwicklern zusammengearbeitet und in vielen “Fremd”-Lösungen einiges Gutes und nicht so Gutes gesehen. • Grundsätzlich ist es immer gut, seine Arbeitsweise zu überdenken und zu schauen, ob die neuen Möglichkeiten einem helfen, besser und effizienter zu entwickeln. 3
  • 4. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Der Script-Debugger • Gibt Einsicht in den Skriptablauf • Erlaubt die Überwachung von Variablen und dynamischen Feldinhalten • Erlaubt die Analyse mit verschiedenen Benutzerrechten! • Es können Haltepunkte definiert werden • In Kombination mit der Datenanzeige (Data Viewer) bekommt man einen sehr guten Gesamtüberblick. • Kann im Falle eines Fehlers automatisch eingeblendet werden • Erlaubt temporär alle Skripttrigger zu deaktivieren 4 https://help.claris.com/de/pro-help/content/debugging-scripts.html
  • 5. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Debugger: Fenster 5 Skripttrigger (de)aktivieren Datenanzeige Pausieren bei einem Fehler Skript öffnen Kontrolle des Ablaufs Anzeige der Skriptabfolge inkl. der übergebenen Parameter Letzte Fehlermeldung
  • 6. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Objektfenster 6 Rechts oben im Fenster befindet sich das Icon zum Ein- und Ausblenden
  • 7. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Objektfenster • Ein- und Ausblenden von Objekten/Objektgruppen • Definition des Objektnamens • Definition bedingter Formatierung und Skripttrigger • Suche und Filtern von Objekten 7
  • 8. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Objektfenster - Felder 8 • Felddefinition und Organisation • Viele hilfreiche Möglichkeiten, Felder im Layout per Drag&Drop zu platzieren • Filtern nach Feldnamen
  • 9. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Funktion: Liste • Erlaubt bequemes Datensammeln (innerhalb oder über Skripte hinweg) • In Kombination mit der Funktion “Austauschen” (substitute) bequeme Möglichkeit auf einfache Art, komplexe Strukturen aufzubauen • Einfaches Beispiel: • $Liste = Liste ( $Titel ; $Vorname ; $Nachname ) • $VollstaendigerName = Austauschen ( $Liste ; “¶” ; “ “ ) • “ “ wird nur gesetzt, wenn tatsächlich die Werte vorhanden sind! (yes) • Keine komplizierten Überprüfungen nötig, ob $Titel, $Vorname oder $Nachname leer sind, um zu verhindern, dass unnötige Leerzeichen angehängt werden • Frage: Wie baut ihr eine Anschrift zusammen? 9 $Titel $Vorname $Nachname
  • 10. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Funktion: Liste 10 Aufbau einer Anschrift mit Hilfe der Funktionen “Liste” und “Austauschen” Let([ xFirma = Adresse::Firma; xSonder = Adresse::SondervermoegenFonds; xStrasse = Adresse::Strasse; xPLZOrt = Substitute ( List ( Adresse::Plz ; Adresse::Ort ) ; “¶” ; “ “ ); xLand = Case ( PatternCount ( Adresse::Land ; "Deutsch" ) ; “” ; Adresse::Land ) ]; List ( xFirma ; xSonder ; xStrasse ; xPLZOrt ; xLand ) ) // End Let
  • 11. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Skriptschritt: Text einfügen • Erlaubt die Verwendung von Texten ohne “Sonderzeichen” schützen zu müssen (“ ) • Text ist direkt im Skript verwendbar. • Text muss nicht aus einem Feld gezogen werden. 11 Beispiel eines Textes, welcher nicht ohne Weiteres im Formelfenster verwendet werden kann.
  • 12. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Skriptschritt: Text einfügen • Seitdem es die Möglichkeit gibt, das Ergebnis in eine Variablen zu schreiben, ist der Skriptschritt viel flexibler einsetzbar bei: • Entwicklung für den Web Viewer (HTML, CSS und JavaScript) • Texte in denen “Sonderzeichen” verwendet werden 12
  • 13. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Kartenfenster (Eigenschaften) 13 • Modales Fenster innerhalb des aktuellen Fensters • Ohne Fensterrahmen und beliebig platzierbar • Beim Öffnen gibt es kein “Flackern” des Hauptfensters unter Windows. • Vorsicht: aus dem Kartenfenster heraus kann kein weiteres Kartenfenster mehr geöffnet werden (alle anderen Fenstertypen schon).
  • 14. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Kartenfenster (Einsatzmöglichkeiten) • Aufbau moderner Benutzeroberflächen möglich • Dateneingabe mit speziellen Vorgaben • Modulares Suchfenster • Navigationslayout bei Bedarf einblendbar • Komplexe Aktionen mit vielen Skripten können in einem (bei Bedarf sogar sichtbaren) Fenster abgearbeitet werden, ohne eventuell in jedem Skript ein neues “unsichtbares” Fenster zu öffnen und wieder zu schliessen. • Bei längeren Aktion kann es z.B. als Infofenster verwendet werden 14
  • 15. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Kartenfenster 15 Beispiel: Kartenfenster als Infofenster mit Anzeige des Prozessfortschrittes
  • 16. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker und JavaScript - Adam Augustin “Der Schleifendschungel” 16 # If [ $Bedingung_A ] # Else If [ $Bedingung_B ] # If [ $Bedingung_C ] # Else If [ $Bedingung_D1 ] # If [ $Bedingung_E ] # Else If [ $Bedingung_F ] # End If # Else If [ $Bedingung_D2 ] # End If # End If #
  • 17. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin “Globale Schleife” (try-catch) 17 • Alle Aktionen werden innerhalb einer Loop-Anweisung ausgeführt (try). • Bei einem Fehler wird zunächst nur die Loop verlassen. • Nach dem Verlassen der Loop wird der Fehler verarbeitet (catch). • Vorteil: • Bei intensiver Fehlerprüfung kein ständiges: wenn Fehler - dann "schreibe Log” - eventuell “schliesse Fenster” - dann “verlasse Skript”, etc. • Fehlerbehandlung nur an einer Stelle: am Ende des Skriptes • Wenn kein Fehler auftritt, wird das Skript normal beendet. • Nachteil: • Man muss sich immer bewusst sein, dass sich quasi der gesamte Code innerhalb einer Loop-Anweisung befindet: • “Script Verlassen” ist da nicht (macht den Ablauf “kaputt”) • Nur “Loop Verlassen” darf benutzt werden :)
  • 18. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Prinzip: Globale Schleife 18 # ##################### # # Globale Loop # ##################### # # Loop - global Loop # # Anweisung_A If [ $LastError ] Exit Loop If [ True ] End If # # Anweisung_B If [ $LastError ] Set Variable [ $FehlerMeldung ; Value: "Fehler bei Anweisung_B" ] Exit Loop If [ True ] End If # # Exit Loop If [ True ] End Loop # End Loop - global # # # # ##################### # # Fehlerbehandlung # ##################### # If [ $LastError ] # Fehler behandeln # If [ False ] Else If [ $FehlerMeldung ≠ "" ] Show Custom Dialog [ "Fehler: " & $LastError ; $FehlerMeldung ] Else # Infodialog Show Custom Dialog [ "Fehler: " & $LastError ; "Es ist der Fehler " & $LastError & " aufgetreten!" ] End If # End If # Exit Script [ Text Result: cf_ResultSet ( "LastError" ; $LastError ; 1 ) ] # # try catch # Loop - global Loop # # Anweisung_A If [ $LastError ] Exit Loop If [ True ] End If # # Anweisung_B If [ $LastError ] Set Variable [ $FehlerMeldung ; Value: "Fehler bei Anweisung_B" ] Exit Loop If [ True ] End If # # Exit Loop If [ True ] End Loop # End Loop - global
  • 19. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Prinzip: Globale Schleife 19 # ##################### # # Globale Loop # ##################### # # Loop - global Loop # # Anweisung_A If [ $LastError ] Exit Loop If [ True ] End If # # Anweisung_B If [ $LastError ] Set Variable [ $FehlerMeldung ; Value: "Fehler bei Anweisung_B" ] Exit Loop If [ True ] End If # # Exit Loop If [ True ] End Loop # End Loop - global # # # # ##################### # # Fehlerbehandlung # ##################### # If [ $LastError ] # Fehler behandeln # If [ False ] Else If [ $FehlerMeldung ≠ "" ] Show Custom Dialog [ "Fehler: " & $LastError ; $FehlerMeldung ] Else # Infodialog Show Custom Dialog [ "Fehler: " & $LastError ; "Es ist der Fehler " & $LastError & " aufgetreten!" ] End If # End If # Exit Script [ Text Result: cf_ResultSet ( "LastError" ; $LastError ; 1 ) ] # # try catch # ##################### # # Fehlerbehandlung # ##################### # If [ $LastError ] # Fehler behandeln und Log schreiben # If [ False ] Else If [ $FehlerMeldung ≠ "" ] Show Custom Dialog [ "Fehler: " & $LastError ; $FehlerMeldung ] Else # allgemeiner Fehlerdialog Show Custom Dialog [ "Fehler: " & $LastError ; “Es ist der Fehler " & $LastError & " aufgetreten!" ] End If # End If
  • 20. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker und JavaScript - Adam Augustin Let’s go 20 Demo zum Kartenfenster mit globaler Schleife 
 (mit DSGVO konformen Daten!)
  • 21. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin JSON • “Leichtes”, strukturiertes Datenaustauschformat • kleine Datenmenge, kein zusätzlicher Overhead wie z.B. beim XML- Format • Seit FM16 in FileMaker integriert: • JSONDeleteElement • JSONFormatElements • JSONGetElement • JSONListKeys • JSONListValues • JSONSetElement • JSONGetElementType (FM19.5) 21 https://www.json.org/json-en.html Wer ist eigentlich Jayson?
  • 22. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin JSON • Quasi-Standard für den Datenaustausch im Web • Ermöglicht strukturiertes Datenhandling: • Datenaggregation und Auswertung • Parameterübergabe (Multiparameter) • Bereits in vielen Vorträgen auf der FMK präsentiert 22 https://www.json.org/json-en.html
  • 23. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Skriptschritt: FileMaker Data API ausführen • Neue Schnittstelle, um Daten im JSON-Format innerhalb einer FileMaker-Lösung abzurufen • Eigentlich ein Server-Feature (REST API) • Aber mit Hilfe des Skriptschrittes “FileMaker Data API ausführen”, kann sie direkt im FM-Client verwendet werden • Der Aufruf kann quasi “kontextlos” benutzt werden (ohne eine aktive Beziehung zum aktuellen Kontext) • Es wird nur ein Layout angegeben. • Es werden die Daten aller auf dem Layout vorhandenen Felder (inkl. der Bezugsdatensätze!) ausgegeben. 23 https://help.claris.com/de/pro-help/content/execute-filemaker-data-api.html
  • 24. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Skriptschritt: FileMaker Data API ausführen • Die Daten werden direkt im JSON-Format zurückgegeben • Im Gegensatz zu der Funktion “SQL ausführen” viel performanter, da auf dem Server ausgeführt • Detaillierte Artikel von Jörg Köster im FMM - “Das Phantom der API”
 FMM 202003-202005 24 https://help.claris.com/de/pro-help/content/execute-filemaker-data-api.html
  • 25. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker und JavaScript - Adam Augustin Let’s go 25 Demo zu “FileMaker Data API ausführen” 
 (mit DSGVO konformen Daten!)
  • 26. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Tooling • Datenbankanalyse (nach einer Zeit fühlt sich die eigene Lösung, wie eine Fremdlösung an): • FM Perception (für ad-hoc Schnellanalyse) • CrossCheck (für tiefergehende Analyse aufgrund detaillierter Error Reports) • FM v19.5 kompatibel • mit neuen coolen Features in Version 11: • Zusammen mit “Save a Copy as XML…” können viele zusätzliche Informationen und Abhängigkeiten angezeigt werden (z.B: wichtige Details zu Layoutbereichen) • Grafische Anzeige der Skriptabfolge und Positionen von Layoutobjekten innerhalb eines Layout 26
  • 27. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Tooling • Russell Watsons Wundertüte: https://github.com/mrwatson-de • Clip Manager (auf Apple Silicon ist noch mit FM v18 nutzbar) • MBS (spätestens jetzt muss man einen Mac für die FM-Entwicklung nutzen :)) 27
  • 28. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin Was gibt es sonst? • UUID-Funktionen (als Text oder Zahl) z.B. für Schlüsselfelder • "Skript auf Server ausführen” (seit 19.5 auch auf dem Server einsetzbar, um parallele Verarbeitung zu erreichen) • Ausschnitt “auf sich selbst” - damit werden Layouts im Master-Detail-Stil möglich • Seitensteuerelement, Tastenleiste • Datei-Skriptschritte (https://help.claris.com/de/pro-help/content/files-script- steps.html) • Standardfelder in Tabellen (https://support.claris.com/s/article/Default-Fields? language=en_US) • “JavaScript in Web Viewer ausführen” (Details in meinem anderen Vortrag von der FMK2022) • Und, und, und 28 https://support.claris.com/s/article/FileMaker-Pro-Version-Comparison?language=en_US
  • 29. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker und JavaScript - Adam Augustin Download 29 https://ag.amet.is/fmk2022
  • 30. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Überarbeitete Programmiertechniken in FileMaker - Adam Augustin F & A 30 Vielen Dank für euer Interesse!
  • 31. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Titel Vortrag - Name Sprecher Vielen Dank unseren Sponsoren