8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
www.filemaker-konferenz.com
New Possibilities Neue Möglichkeiten

and more und mehr.....

Russell Watson

"MrWatson"
Modularity Modularität in fm16
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Russell Watson
“MrWatson”
* The FileMaker Certified Developer logo is a trademark of FileMaker, Inc. in the United States and other countries.
* Thanks to Klemens Kegebein of the K&K Verlag for permission to use his poster image
BA Hons
Media Studies & German
Sussex University, UK
BSc Informatik
Freie Universität, Berlin
mrwatson-gbs
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Menu
1.Modularity Modularität

2.Card Windows Kartenfenster

3.How to make modular widgets 

Wie man modulare Baukasten baut

4.Isn't there a better way to do this? 

Gibt's keine bessere Methode?

5.One more thing… One more thing…

6.Question time Fragen / Antworten / Diskussion
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Modularity Modularität
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Modularity Modularität
• What is a module? Was ist ein Modul?

• Building block Baustein

• Component Komponent

• Function Funktion
Function

Component

Black Box
• Single Simple Unit eigenständige einfache Einheit

• Separate separat

• Independent unabhängig 

• Interfaces Schnittstellen
pp
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
What possibilities does fm16 offer?

Welche Möglichkeiten bietet fm16 an?
Modularity Modularität
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Add a module in FileMaker 15
FileDataCFScriptsLayouts
File B

(Module)
File A

(Your App)
f1 f2 f3
A 1 ?
B 2 !
C 3 @
ScriptAPI
f( X ) f( X )
Script calls
Traditional ⟺ parameters
Layout
ext. File Ref.
/ Static Data
Source
BUILD
IN
Scripts
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Add a module in FileMaker 16
FileDataCFScriptsLayouts
File B

(Module)
Dynamic Data SourceFile A

(Your App)
f1 f2 f3
A 1 ?
B 2 !
C 3 @
ScriptAPI
f( X ) f( X )
Script calls
JSON Params
Card
windows
Trend: Avoid CFs → sharability ↑
If possible data via JSON params
just
call
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
fm16 = Powerful modular functionality!
FileDataCFScriptsLayouts
File B

(Module)
Dynamic Data SourceFile A

(Your App)
Script
API
Script calls
Card
windows
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Card Windows Kartenfenster
Layout
* Cal-Picker from John Renfrew
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Some great card window examples

Coole Kartenfenster Beispiele
• LOgiCATOR / Mark Scott / Beezwax

• https://blog.beezwax.net/2017/05/09/introducing-logicator-a-modular-
search-interface-for-filemaker-16/

• https://blog.beezwax.net/2017/06/06/introducing-logicator-part-2-
filemaker-16-card-windows-and-modular-design/

• https://blog.beezwax.net/2017/10/12/logicator-part-3-ready-set-integrate-
into-your-filemaker-apps/

• Date picker / John Renfrew

• https://community.filemaker.com/docs/DOC-8288

• https://community.filemaker.com/docs/DOC-8751

• Widgets / Todd Geist / geistinteractive.com

• Video: https://www.youtube.com/watch?v=mXpcD9Yf6Ko
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Card Windows
• Pioneering work by John Renfrew

• Function-Separation Model

• Posts on LinkedIn:
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Very Quick Demo
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Troubled Relationship

Parent-Child Window
• Child has NO knowledge of parent, no

• Get( ParentWindowFile )

• Get( ParentWindowWidth )

• Positioning of card window

• Only FIRST layout centres correctly

• Modal

• Master Window is frozen

• Communication Child → Parent
window problematic…
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
How to make modular widgets

Wie man modulare Baukasten baut
Widget
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Simplest Widget → ScriptResult
File A

your

app
Simple

Widget
ScriptAPI
Return ScriptResult
Script Pause
Call Script
• Simplest solution…

• …IFF the process can occur in a one script round-trip

• (Script Pause OK, but no Script HALT)
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
LOgiCATOR
• Simple solution for a single file App

• but not scalable for multi-fie solutions…
File A

your

app
LOgiCATOR
ScriptAPI
ScriptAPI
File B

File C

File D

File E

File F

File G

File H

File I

File J

File K
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
File A

your

app
File A

your

app
CalDatePicker
ScriptAPI
Open Date Picker
Timer
script
polls
result
Return Date to Original
CalDatePicker
• This is more like functional programming: CalDatePicker is a black box.

• Polling with timer scripts, however, is unpleasant ...

• …and the dynamic data source can run the wrong script, if the target file changes…
Dynamic Data Source
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Isn't there a better way to do this?

Gibt's keine bessere Methode?
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
File A

your

app
Widget
ScriptAPI
Start script
What we need is CALLBACK SCRIPTS…
• …just like other programming languages have…
"On Event X, call File: "A", Script: "Handle X", Param: 1

"On Event Y, call File: "A", Scrip:t "Handle Y", Param: 2

(JSON DATA)
Callback
ScriptAPI
Handle X
Handle Y
Event X
Event Y
JSON
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Demo CALLBACK SCRIPTS
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
How does it do that?
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
PSBN - Perform Script [ By Name
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatsonFileDataScriptsLayouts
File A

your

app
File W .

Card-Window

Widgets .
Callback
ScriptAPI
JSON Callback

Script info
ScriptAPI
JSON
Layout
Callback

Script info
JSON
File B
ScriptAPI
Module
D, E, F
File C File 50
Script
ID?
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Achtung!
PSBN is a Proof of Concept
and is not guaranteed 

on production systems*!
* If the internal ID of the script is too high, PSBN cannot perform the script
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Finally, because THIS will be MOST
IMPORTANT in coming years…
Scripts
Script
API
Script calls
one more thing…
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
FileMakerDoc
is coming
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Modularität in fm16 von MrWatson
Thank You
“MrWatson”
mrwatson-gbs
Questions?
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Vortrag und Sprecher
Vielen Dank unseren Sponsoren

FMK2017 - Modularity in FileMaker 16 by Russell Watson

  • 1.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 www.filemaker-konferenz.com New Possibilities Neue Möglichkeiten and more und mehr..... Russell Watson "MrWatson" Modularity Modularität in fm16
  • 2.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Russell Watson “MrWatson” * The FileMaker Certified Developer logo is a trademark of FileMaker, Inc. in the United States and other countries. * Thanks to Klemens Kegebein of the K&K Verlag for permission to use his poster image BA Hons Media Studies & German Sussex University, UK BSc Informatik Freie Universität, Berlin mrwatson-gbs
  • 3.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Menu 1.Modularity Modularität 2.Card Windows Kartenfenster 3.How to make modular widgets 
 Wie man modulare Baukasten baut 4.Isn't there a better way to do this? 
 Gibt's keine bessere Methode? 5.One more thing… One more thing… 6.Question time Fragen / Antworten / Diskussion
  • 4.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Modularity Modularität
  • 5.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Modularity Modularität • What is a module? Was ist ein Modul? • Building block Baustein • Component Komponent • Function Funktion Function Component Black Box • Single Simple Unit eigenständige einfache Einheit • Separate separat • Independent unabhängig • Interfaces Schnittstellen pp
  • 6.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson What possibilities does fm16 offer? Welche Möglichkeiten bietet fm16 an? Modularity Modularität
  • 7.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Add a module in FileMaker 15 FileDataCFScriptsLayouts File B (Module) File A (Your App) f1 f2 f3 A 1 ? B 2 ! C 3 @ ScriptAPI f( X ) f( X ) Script calls Traditional ⟺ parameters Layout ext. File Ref. / Static Data Source BUILD IN Scripts
  • 8.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Add a module in FileMaker 16 FileDataCFScriptsLayouts File B (Module) Dynamic Data SourceFile A (Your App) f1 f2 f3 A 1 ? B 2 ! C 3 @ ScriptAPI f( X ) f( X ) Script calls JSON Params Card windows Trend: Avoid CFs → sharability ↑ If possible data via JSON params just call
  • 9.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson fm16 = Powerful modular functionality! FileDataCFScriptsLayouts File B (Module) Dynamic Data SourceFile A (Your App) Script API Script calls Card windows
  • 10.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Card Windows Kartenfenster Layout * Cal-Picker from John Renfrew
  • 11.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Some great card window examples Coole Kartenfenster Beispiele • LOgiCATOR / Mark Scott / Beezwax • https://blog.beezwax.net/2017/05/09/introducing-logicator-a-modular- search-interface-for-filemaker-16/ • https://blog.beezwax.net/2017/06/06/introducing-logicator-part-2- filemaker-16-card-windows-and-modular-design/ • https://blog.beezwax.net/2017/10/12/logicator-part-3-ready-set-integrate- into-your-filemaker-apps/ • Date picker / John Renfrew • https://community.filemaker.com/docs/DOC-8288 • https://community.filemaker.com/docs/DOC-8751 • Widgets / Todd Geist / geistinteractive.com • Video: https://www.youtube.com/watch?v=mXpcD9Yf6Ko
  • 12.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Card Windows • Pioneering work by John Renfrew • Function-Separation Model • Posts on LinkedIn:
  • 13.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Very Quick Demo
  • 14.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Troubled Relationship Parent-Child Window • Child has NO knowledge of parent, no • Get( ParentWindowFile ) • Get( ParentWindowWidth ) • Positioning of card window • Only FIRST layout centres correctly • Modal • Master Window is frozen • Communication Child → Parent window problematic…
  • 15.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson How to make modular widgets Wie man modulare Baukasten baut Widget
  • 16.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Simplest Widget → ScriptResult File A your app Simple Widget ScriptAPI Return ScriptResult Script Pause Call Script • Simplest solution… • …IFF the process can occur in a one script round-trip • (Script Pause OK, but no Script HALT)
  • 17.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson LOgiCATOR • Simple solution for a single file App • but not scalable for multi-fie solutions… File A your app LOgiCATOR ScriptAPI ScriptAPI File B File C File D File E File F File G File H File I File J File K
  • 18.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson File A your app File A your app CalDatePicker ScriptAPI Open Date Picker Timer script polls result Return Date to Original CalDatePicker • This is more like functional programming: CalDatePicker is a black box. • Polling with timer scripts, however, is unpleasant ... • …and the dynamic data source can run the wrong script, if the target file changes… Dynamic Data Source
  • 19.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Isn't there a better way to do this? Gibt's keine bessere Methode?
  • 20.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson File A your app Widget ScriptAPI Start script What we need is CALLBACK SCRIPTS… • …just like other programming languages have… "On Event X, call File: "A", Script: "Handle X", Param: 1 "On Event Y, call File: "A", Scrip:t "Handle Y", Param: 2 (JSON DATA) Callback ScriptAPI Handle X Handle Y Event X Event Y JSON
  • 21.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Demo CALLBACK SCRIPTS
  • 22.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson How does it do that?
  • 23.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson PSBN - Perform Script [ By Name
  • 24.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatsonFileDataScriptsLayouts File A your app File W . Card-Window Widgets . Callback ScriptAPI JSON Callback Script info ScriptAPI JSON Layout Callback Script info JSON File B ScriptAPI Module D, E, F File C File 50 Script ID?
  • 25.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Achtung! PSBN is a Proof of Concept and is not guaranteed on production systems*! * If the internal ID of the script is too high, PSBN cannot perform the script
  • 26.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Finally, because THIS will be MOST IMPORTANT in coming years… Scripts Script API Script calls one more thing…
  • 27.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson FileMakerDoc is coming
  • 28.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Modularität in fm16 von MrWatson Thank You “MrWatson” mrwatson-gbs Questions?
  • 29.
    8. FileMaker Konferenz| Salzburg | 12.-14. Oktober 2017 Vortrag und Sprecher Vielen Dank unseren Sponsoren