SlideShare a Scribd company logo
1 of 50
Download to read offline
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Einführung in FunctionScripting 
Übergabe mehrerer Parameter an ein Script
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Was erwartet Sie? 
•allgemein 
•ein sehr technischer Vortrag 
•eine Zusammenstellung an spezifischem Methodikwissen 
•je nach Vorwissen eine steile oder weniger steile Lernkurve 
•nichts Neues für erfahrene, professionelle FileMakerEntwickler 
•inhaltlich 
•Wir beginnen mit Grundlagen. 
•Wir schreiten danach mit Siebenmeilenstiefeln voran. 
•viele Details eher für'sStudium nach der Konferenz vorgesehen 
•3 Themenblöcke 
•Einführung 
•statische Parameterauswertung 
•dynamische Parameterauswertung
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Einleitung
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Was ist eine Funktion? 
•Eine Funktion ist eine Abfolge von Anweisungen. 
•Eine Funktion akzeptiert Eingabewerte ("Parameter"). 
•Eine Funktion verarbeitet die Parameter und errechnet damit oder daraus einen Rückgabewert. 
•Eine Funktion wird einmal deklariert und ausprogrammiert und kann danach beliebig oft aufgerufen werden. 
Rückgabewert 
Param3 
Param2 
Param1
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Funktionen in stark typisierten Programmiersprachen 
•Funktionsnamen 
•Anweisungen 
•Parameternamen 
•Datentypen der Parameter 
•Datentyp des Rückgabewertes 
Name 
Anweisung 1 
Anweisung 2 
… 
Datentyp 
ParamTyp1 
ParamTyp2 
ParamTyp3 
… 
ParamName1 
ParamName2 
ParamName3 
… 
Beispiel: 
booleaninviteGuests(Arraynamen; Coordinatesort; Datedatum) 
{ 
// der Funktionscode 
}
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Funktionen in schwach typisierten Programmiersprachen 
•Funktionsnamen 
•Parameternamen 
•Anweisungen 
Name 
Anweisung 1 
Anweisung 2 
Anweisung 3 
… 
ParameterName1 
ParameterName2 
ParameterName3 
… 
Beispiel: 
inviteGuests(namen; ort; datum) 
{ 
// der Funktionscode 
}
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
FileMakerCustom Functions
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
FileMakerScript
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
einen Parameter an ein FileMakerScript übergeben
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
einen Parameter in einem FileMakerScript auslesen
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
einen Parameter in einem FileMakerScript nutzen und den Rückgabewert berechnen 
Set Variable [$parameter; Value:Get( ScriptParameter)] 
Set Variable [$returnValue; Value: Berechnungen mit $parameter] 
Exit Script [Result: $returnValue]
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
FileMakerScript Parameterwie vom Hersteller vorgesehen 
•Ursprünglich konnte kein Parameter an ein FileMakerSkript übergeben werden. Dies war nicht vorgesehen. 
•Seit FileMaker7 akzeptiert ein FileMakerSkript von Haus aus einen einzelnen Parameter. 
•Der Parameter wird über ein Formelfeld festgelegt. 
•Im Skript muss der Parameter über Get( ScriptParameter) ausgelesen werden und wird typischerweise in einer lokalen Variable abgelegt. 
•Es gibt innerhalb von FileMakerkeine Mechanismen, um an ein Skript mehr als einen Parameter zu übergeben. 
•ACHTUNG… 
•Bitte FileMakerSkripten und FileMakerCustom Functionsnicht verwechseln! 
•Custom Functionsakzeptieren eine frei definierbare Anzahl von Parametern.
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
"FunctionScripting" 
Wenn in FileMakerSkripten Methoden eingesetzt werden, welche es erlauben, einem FileMakerSkript mehr als eine Parameter zu übergeben, wird dies als "FunctionScripting" bezeichnet. 
Der Begriff "FunctionScripting" lässt sich so erklären, dass ein FileMakerSkript sich durch diese Methoden beinahe wie eine vollwertige Funktion verhält und nicht nur wie ein einfaches, parameterloses Skript.
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische Parameterauswertung
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungWie werden die Konzepte demonstriert? 
•Jedes Konzept wird anhand eines eigenen FileMakerSkriptes vorgestellt. 
•Ein Demoskript erhält (anders als in der alltäglichen Praxis) keinen sprechenden, funktionsbezogenen Namen, sondern einen Namen, der sich auf das erklärte Konzept bezieht. 
•"statisch1 ( param)" => Skript 1. Konzept, Kapitel"statische Parameterzuweisung" 
•"statisch4 ( artikelliste; adresse)" => Skript 4. Konzept, Kapitel "statische Parameterzuweisung" 
•"dynamisch2 ( params)" => Skript 2. Konzept, Kapitel "dynamische Parameterzuweisung" 
•Damit die übergebenen Parameter sowie deren Erkennung innerhalb der Skripte in den Demos gut sichtbar gezeigt werden können, werden globale Felder eingesetzt. Dies erfolgt NUR zu Demozwecken!
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungWie werden die Konzepte demonstriert? 
↕# Script Parameter auslesen 
↕Set Variable [$parameter; Value:Get( ScriptParameter)] 
↕# 
↕# mitlokalenVariablenweiterarbeiten 
↕Set Field [Hilfsfelder::STATISCH.1.OUTPUT1; $parameter] 
Script Name: statisch1 ( param) 
PerformScript ["statisch1 ( param)"; Parameter: Hilfsfelder::STATISCH.1.INPUT] 
Skriptaufruf 
nur zu Demozwecken! 
Globale Felder, Globale und lokale Variablen, Literalesowie Berechnungen möglich
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische Parameterauswertung 1 
Demo
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische Parameterauswertung 2 
Script Name: statisch2 ( zeit; nachricht) 
16:30¶Hallo, wie geht's? 
Set Variable [$params; Value:Get( ScriptParameter)] 
Set Variable [$zeit; Value:GetValue( $params; 1 ) ] 
Set Variable [$nachricht; Value:GetValue( $params; 2 ) ]
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische Parameterauswertung 2 
↕# Script Parameter auslesen 
↕Set Variable [$params; Value:Get( ScriptParameter)] 
↕# 
↕# Script Parameter aufteilen und in lokalen Variablen speichern 
↕Set Variable [$zeit; Value:GetAsTime(GetValue( $params; 1 ) )] 
↕Set Variable [$nachricht; Value:GetValue( $params; 2 )] 
↕# 
↕# mitlokalenVariablenweiterarbeiten 
↕Set Field [Hilfsfelder::STATISCH.2.OUTPUT1; $zeit] 
↕Set Field [Hilfsfelder::STATISCH.2.OUTPUT2; $nachricht] 
Script Name: statisch2 ( zeit; nachricht) 
explizite Typzuweisung
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische Parameterauswertung 2 
Demo
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungLimitierung 
Als "Delimiter" wird jenes Zeichen oder jene Zeichenkombination bezeichnet, welche die Parameter voneinander abtrennt. 
Im Deutschen kann auch der Begriff "Trennzeichen" verwendet werden. 
Der Delimiter darf in den Parametern nicht vorkommen! 
•PerformScript[ "statisch2 ( zeit; nachricht)"; Parameter: "16:30¶Diese Nachricht hat zwei Zeilen,¶welchedurch eine Absatzmarke getrennt sind.] 
•PerformScript[ "statisch3 ( sender|msg)"; Parameter: "param1|param2"]
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische Parameterauswertung 3 
Script Name: statisch3 ( sender|msg) 
↕# Script Parameter auslesen 
↕Set Variable [$params; Value:Get( ScriptParameter)] 
↕# Script Parameter aufteilen und in lokalen Variablen speichern 
↕Set Variable [$positionPipeChar; Value: Position( $params; "|"; 1; 1 )] 
↕Set Variable [$sender; Value: Left( $params; $positionPipeChar-1 )] 
↕Set Variable [$msg; Value:Right( $params; Length( $params) -$positionPipeChar] 
↕# mitlokalenVariablenweiterarbeiten 
↕Set Field [Hilfsfelder::STATISCH.2.OUTPUT1; $sender] 
↕Set Field [Hilfsfelder::STATISCH.2.OUTPUT2; $msg] 
Script Parameter "en bloc" auslesen 
Parameterblock in einzelne Parameter aufteilen 
Parameterwerte an lokale Variablen zuordnen 
mit lokalen Variablen arbeiten
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische Parameterauswertung 3 
Demo
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungLimitierung 
Als "Delimiter" wird jenes Zeichen oder jene Zeichenkombination bezeichnet, welche die Parameter voneinander abtrennt. 
Der Delimiter darf in den Parametern nicht vorkommen! 
•PerformScript [ "statisch2 ( zeit; nachricht )"; Parameter: "16:30¶Diese Nachricht hat zwei Zeilen,¶welche durch eine Absatzmarke getrennt sind.] 
•PerformScript [ "statisch3 ( sender|msg )"; Parameter: "param1|param2|enthält eine Pipe"]
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Umgehung der Limitierung –Variante 1Delimiter "codieren" 
•verbotene Delimiter-Zeichen werden vor Parameterübergabe durch eine erlaubte Zeichenkombination ersetzt 
•verbotenen Delimiter-Zeichen werden während Zuweisung der Parameterwerte an lokale Variablen wieder eingefügt 
•2 Custom Functions 
•codierung Delimiter 
•decodierungDelimiter 
1.param1="Hallo¶Velo!" param2=1234 
2.param1="Hallo###par###Velo!" param2=1234 
3.paramblock="Hallo###par### Velo!¶1234" 
4.var1="Hallo###par###Velo!" var2="1234" 
5.var1="Hallo¶Velo!" var2=1234
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Umgehung der Limitierung –Variante 1Delimiter "codieren" 
•Custom Function1: Parameter codieren 
paramEncode( Param)= Substitute ( param; "¶"; "###paragraph###" ) & "¶" 
•Custom Function2: Parameter decodieren 
paramDecode( Param) = Substitute ( param; "###paragraph###"; "¶" ) 
•Script: statisch4 ( artikelliste; adresse) 
•Scriptaufruf: 
PerformScript[ "statisch4 ( artikelliste; adresse)"; Parameter: paramEncode(Hilfsfelder::STATISCH.4.PARAM1 )& paramEncode(Hilfsfelder::STATISCH.4.PARAM2 )]
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungUmgehung der Limitierung -Variante 1 
↕# Script Parameter auslesenund sichtbarmachen 
↕Set Variable [$params; Value:Get( ScriptParameter)] 
↕Set Field [Hilfsfelder::STATISCH.4.PARAMBLOCK; $params] 
↕# Script Parameter aufteilen und in lokalen Variablen speichern 
↕Set Variable [$artikelliste; Value: paramDecode( GetValue( $params; 1 ) )] 
↕Set Variable [$adresse; Value: paramDecode( GetValue( $params; 2 ) )] 
↕# mitlokalenVariablenweiterarbeiten 
↕Set Field [Hilfsfelder::STATISCH.4.OUTPUT1; $artikelliste] 
↕Set Field [Hilfsfelder::STATISCH.4.OUTPUT2; $adresse] 
Script Name: statisch4 ( artikelliste; adresse)
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungUmgehung der Limitierung -Variante 1 
Demo
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Umgehung der Limitierung –Variante 2komplexer Delimiter 
•jeder Parameter wird durch eine komplexe Zeichenfolge umfasst 
•"umhüllte" Parameter werden als Parameterblock übergeben 
•Parameter werden aus ihrer Umhüllung wieder herausgeschält 
•2 Custom Functions 
•umhüllen der Parameter mit komplexemn Delimiter 
•herausschälen der einzelnen Parameter aus dem "Parameterblock" 
1.param1="Hey!¶Du!" param2=1234 
2.param1="##1##Hey!¶Du!##2##" param2="##1##1234##2##" 
3.paramblock="##1##Hey!¶Du!## 2####1##1234##2##" 
4.var1="##1##Hey!¶Du!##2##" var2="##1##1234##2##" 
5.var1="Hey!¶Du!" var2=1234
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungUmgehung der Limitierung -Variante 2 
•Custom Function1: Parameterwert mit Delimiterumfassen 
param( value) = "###start###" & value& "###end###" 
•Custom Function2: Parameterwert aus Parameterblock zurückgewinnen 
getParam( params; nr)= Let ([ 
_start = Position ( params; "###start###"; 1; nr ) + 11; 
_end = Position ( params; "###end###"; 1; nr ) -1; 
_length = _end -_start + 1 
]; 
Middle ( params; _start; _length ) 
) 
•Script: statisch5 ( artikelliste; adresse) 
•Scriptaufruf: 
PerformScript[ "statisch5 ( artikelliste; adresse)"; Parameter: param(Hilfsfelder::STATISCH.5.PARAM1 )& param( Hilfsfelder::STATISCH.5.PARAM2 )]
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungUmgehung der Limitierung -Variante 2 
↕# Script Parameter auslesenund sichtbarmachen 
↕Set Variable [$params; Value:Get( ScriptParameter)] 
↕Set Field [Hilfsfelder::STATISCH.5.PARAMBLOCK; $params] 
↕# Script Parameter aufteilen und in lokalen Variablen speichern 
↕Set Variable [$artikelliste; Value: getParam( $params; 1 )] 
↕Set Variable [$adresse; Value: getParam( $params; 2 )] 
↕# mitlokalenVariablenweiterarbeiten 
↕Set Field [Hilfsfelder::STATISCH.5.OUTPUT1; $artikelliste] 
↕Set Field [Hilfsfelder::STATISCH.5.OUTPUT2; $adresse] 
Script Name: statisch5 ( artikelliste; adresse)
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
statische ParameterauswertungUmgehung der Limitierung -Variante 2 
Demo
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 
•Ziele 
•automatische Zuordnung von Parametern zu lokalen Variablen 
•standardisierter Weg, Parameter einer Funktion zu deklarieren 
•Übertragung der Technik von einem FileMakerScript in ein anderes muss leicht und schnell gehen 
•copy–paste 
•Custom Functions 
•mögliche Erweiterungen 
•Reihenfolge der Parameter bei der Übergabe unwichtig 
•optionale Parameter vs. Pflichtparameter 
•Typprüfungen 
•komplexe Validierungen 
•umfassendes Error Handling
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 1fixe Parameterreihenfolge 
↕Set Variable [$auswertung; Value: attributeParams( getParamsFromScriptname();Get ( ScriptParameter) ) ] 
Script Name: dynamisch1 ( artikelliste; adresse) 
$artikelliste 
$adresse
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 1fixe Parameterreihenfolge 
↕# Script Parameter sichtbarmachen(unnötig! nurDemo!) 
↕Set Field [Hilfsfelder::DYNAMISCH.1.PARAMBLOCK; Get ( ScriptParameter)] 
↕# Script Parameter auswerten 
↕Set Variable [$auswertung; Value:attributeParams( getParamsFromScriptname();Get ( ScriptParameter) )] 
↕# mitlokalenVariablenweiterarbeiten 
↕Set Field [Hilfsfelder::DYNAMISCH.1.OUTPUT1; $artikelliste] 
↕Set Field [Hilfsfelder::DYNAMISCH.1.OUTPUT2; $adresse] 
Aufruf des Skriptes dynamisch1 ( artikelliste; adresse)
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 1fixe Parameterreihenfolge 
PerformScript[ 
"dynamisch1 ( artikelliste; adresse)"; 
Parameter: param(value1 )& param( value2 ) 
] 
Aufruf des Skriptes "dynamisch1 ( artikelliste; adresse)" 
•Tabelle::Feldname 
•$lokaleVariable 
•$$GLOBALE.VARIABLE
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 1fixe Parameterreihenfolge 
Demo
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
An die Funktion "Evaluate()" wird ein Text übergeben, welcher danach von "Evaluate()" als Berechnung ausgewertet wird. Dies erlaubt die Zusammenstellung von Berechnungen zur Laufzeit des Skriptes. 
dynamische Parameterauswertungdas zentrale "Geheimnis" 
Das zentrale "Geheimnis" der dynamischen Parameterauswertung liegt in der FileMakerFunktion Evaluate!
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertungdas zentrale "Geheimnis" 
•Let( [ $$myGlobalVar1="Hello"; $$myGlobalVar2="World" ]; 1) 
•Evaluate(" Let( [ $$"& $var1 & "=" & $value1 & "; $$"& $var2 & "=" & Quote ( $value2 ) & " ]; 1) ") 
Zahlenwerte 
Texte, usw.
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
RÜCKBLENDEdynamische Parameterauswertung 1fixe Parameterreihenfolge
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
attributeParams( getParamsFromScriptname(); Get( ScriptParameter) ) 
START 
Namen der erwarteten Parameter aus Skriptname herleiten 
ersten Parameternamen aus Liste aller Parameter herleiten 
ersten Parameterwert aus Parameterblock herleiten 
Gibt es verbleibende Parameter? 
verbleibende Parameterwerte herleiten 
verbleibende Parameternamen herleiten 
Variablenzuordnung basierend auf erstem Parameternamen und -wert vornehmen 
ENDE 
nein 
ja 
verbleibende Parameternamen und verbleibender Parameterblock als neue Ausgangswerte festlegen 
"Rekursion"
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 1fixe Parameterreihenfolge 
_attribution= Evaluate( " Let( [ $"&_currentName&"=" &Quote (_currentValue)&" ]; True)")
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 2freie Parameterreihenfolge mit Typangabe 
•Da Skriptnamen in FileMaker13 (und älter) auf 100 Zeichen begrenzt sind, können nur wenige und kurze Parameternamen direkt im Skriptnamen definiert werden. 
•Bei einer undefinierten Parameterreihenfolge mit Typangabe definieren wir die erwarteten Parameter INNERHALB des Skriptes in einer klar definierten Art. 
•Parameter werden als eine Abfolge von Wertepaaren übergeben. 
•Die Wertepaare bestehen aus Parameternamen und Parameterwert
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 2 
↕# Script Parameter definieren 
↕SetVariable[$erwarteteParameter; Value:"artikelnummer;number¶artikelbeschreibung;text¶anzahl;number ¶stueckpreis;number¶bestelldatum;date"] 
↕# Script Parameter auswerten 
↕Set Variable [$auswertung; Value:dyn2.params.calculate ( $erwarteteParameter;Get ( ScriptParameter))] 
↕# mitlokalenVariablenweiterarbeiten 
↕… 
Script Name: dynamisch2 ( params)
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
verbleibende Parameternamen und verbleibender Parameterblock als neue Ausgangswerte festlegen 
START 
Datentyp des ersten Parameters bestimmen 
Name-Wert-Paar desersten Parameters auslesen 
Gibt es weitere Name-Wert- Paare? 
verbleibenden Parameterblock berechnen 
ENDE 
nein 
ja 
"Rekursion" 
lokale Variable erzeugen aus Name-Wert-Paar mit Datentyp 
dynamische Parameterauswertung 2
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
START 
Datentyp des ersten Parameters bestimmen 
lokale Variable aus Name- Wert-Paar erzeugen 
dynamische Parameterauswertung 2 
ENDE 
dyn2.params.calculate ( expectedParams; params) 
dyn2.type.determine( name; expectedParams) 
dyn2.param.attribute( nameValuePair; type ) 
"Rekursion"
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
dynamische Parameterauswertung 2 
Demo
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
ein guter Fachartikel zum selben Thema 
•"Scriptparameter-Alte und neue Wege", Arnold Kegebein, FileMakerMagazin, 3, 2014, pp.31-34 
•gut, ziemlich umfassend, empfehlenswert 
•Verweise auf http://filemakerstandards.org 
•extensive Sammlung von Konventionen zur FileMakerProgrammierung 
•diverse bekannte "FileMakerGurus" arbeiten daran mit
Thomas Hirt 
Einführung in FunctionScripting 
FileMakerKonferenz 2014 Winterthur 
www.filemaker-konferenz.com 
Vielen Dank unseren Sponsoren 
Dankefürdas Bewertendieses Vortrages

More Related Content

Viewers also liked

Ein Sonnenstrahl Jesu - Jesus Wants Me for a Sunbeam
Ein Sonnenstrahl Jesu - Jesus Wants Me for a SunbeamEin Sonnenstrahl Jesu - Jesus Wants Me for a Sunbeam
Ein Sonnenstrahl Jesu - Jesus Wants Me for a SunbeamFreekidstories
 
AMMT - Asset Management and Maintenance Technologies
AMMT - Asset Management and Maintenance TechnologiesAMMT - Asset Management and Maintenance Technologies
AMMT - Asset Management and Maintenance Technologiesdankl+partner consulting gmbh
 
10 Erfolgsfaktoren: Was Infografiken sexy macht
10 Erfolgsfaktoren: Was Infografiken sexy macht10 Erfolgsfaktoren: Was Infografiken sexy macht
10 Erfolgsfaktoren: Was Infografiken sexy machtFaktenkontor
 

Viewers also liked (7)

Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Ein Sonnenstrahl Jesu - Jesus Wants Me for a Sunbeam
Ein Sonnenstrahl Jesu - Jesus Wants Me for a SunbeamEin Sonnenstrahl Jesu - Jesus Wants Me for a Sunbeam
Ein Sonnenstrahl Jesu - Jesus Wants Me for a Sunbeam
 
AMMT - Asset Management and Maintenance Technologies
AMMT - Asset Management and Maintenance TechnologiesAMMT - Asset Management and Maintenance Technologies
AMMT - Asset Management and Maintenance Technologies
 
Der Friede - Peace
Der Friede - PeaceDer Friede - Peace
Der Friede - Peace
 
SRF Business Analyse und Agilität
SRF Business Analyse und AgilitätSRF Business Analyse und Agilität
SRF Business Analyse und Agilität
 
Lösungen handout
Lösungen handoutLösungen handout
Lösungen handout
 
10 Erfolgsfaktoren: Was Infografiken sexy macht
10 Erfolgsfaktoren: Was Infografiken sexy macht10 Erfolgsfaktoren: Was Infografiken sexy macht
10 Erfolgsfaktoren: Was Infografiken sexy macht
 

Similar to FM2014: Einführung in Function Scripting by Thomas Hirt

FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischVerein FM Konferenz
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichVerein FM Konferenz
 
FMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwFMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwVerein FM Konferenz
 
FileMaker 13 - Neue Befehle und mehr Möglichkeiten by Patrick Risch
FileMaker 13 - Neue Befehle und mehr Möglichkeiten by Patrick RischFileMaker 13 - Neue Befehle und mehr Möglichkeiten by Patrick Risch
FileMaker 13 - Neue Befehle und mehr Möglichkeiten by Patrick RischVerein FM Konferenz
 
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...Verein FM Konferenz
 
FMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian SchmitzFMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian SchmitzVerein FM Konferenz
 
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich SchmidtFMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich SchmidtVerein FM Konferenz
 
FMK2018 FileMaker Kalkulation, Funktionen by Swen Bauer
FMK2018 FileMaker Kalkulation, Funktionen by Swen BauerFMK2018 FileMaker Kalkulation, Funktionen by Swen Bauer
FMK2018 FileMaker Kalkulation, Funktionen by Swen BauerVerein FM Konferenz
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und ReflectionStefan Marr
 
FMK2015: FileMaker Server 14 by Volker Krambrich
FMK2015: FileMaker Server 14 by Volker KrambrichFMK2015: FileMaker Server 14 by Volker Krambrich
FMK2015: FileMaker Server 14 by Volker KrambrichVerein FM Konferenz
 
FMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinFMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinVerein FM Konferenz
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht SkriptsprachenA. LE
 
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...Verein FM Konferenz
 
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...Verein FM Konferenz
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréVerein FM Konferenz
 
FMK2019 Wir bauen uns ein Menüsystem by Thomas Hirt
FMK2019 Wir bauen uns ein Menüsystem by Thomas HirtFMK2019 Wir bauen uns ein Menüsystem by Thomas Hirt
FMK2019 Wir bauen uns ein Menüsystem by Thomas HirtVerein FM Konferenz
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit WordpressBlogwerk AG
 
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtFMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtVerein FM Konferenz
 
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas HirtFMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas HirtVerein FM Konferenz
 
FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme by Michael HeiderFMK2019 FileMaker Anbindung an Online Systeme by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme by Michael HeiderVerein FM Konferenz
 

Similar to FM2014: Einführung in Function Scripting by Thomas Hirt (20)

FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
 
FMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwFMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten Risseeuw
 
FileMaker 13 - Neue Befehle und mehr Möglichkeiten by Patrick Risch
FileMaker 13 - Neue Befehle und mehr Möglichkeiten by Patrick RischFileMaker 13 - Neue Befehle und mehr Möglichkeiten by Patrick Risch
FileMaker 13 - Neue Befehle und mehr Möglichkeiten by Patrick Risch
 
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
FMK 2013 Konstrukte diverser Programmiersprachen in FileMaker nachgebaut, Tho...
 
FMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian SchmitzFMK2014: FileMaker Plugin erzeugen by Christian Schmitz
FMK2014: FileMaker Plugin erzeugen by Christian Schmitz
 
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich SchmidtFMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt
 
FMK2018 FileMaker Kalkulation, Funktionen by Swen Bauer
FMK2018 FileMaker Kalkulation, Funktionen by Swen BauerFMK2018 FileMaker Kalkulation, Funktionen by Swen Bauer
FMK2018 FileMaker Kalkulation, Funktionen by Swen Bauer
 
Metaprogrammierung und Reflection
Metaprogrammierung und ReflectionMetaprogrammierung und Reflection
Metaprogrammierung und Reflection
 
FMK2015: FileMaker Server 14 by Volker Krambrich
FMK2015: FileMaker Server 14 by Volker KrambrichFMK2015: FileMaker Server 14 by Volker Krambrich
FMK2015: FileMaker Server 14 by Volker Krambrich
 
FMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinFMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael Valentin
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht Skriptsprachen
 
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
 
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel Moré
 
FMK2019 Wir bauen uns ein Menüsystem by Thomas Hirt
FMK2019 Wir bauen uns ein Menüsystem by Thomas HirtFMK2019 Wir bauen uns ein Menüsystem by Thomas Hirt
FMK2019 Wir bauen uns ein Menüsystem by Thomas Hirt
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
 
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas HirtFMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
FMK2015: Erste Schritte mit einem Codeversionierungssystem by Thomas Hirt
 
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas HirtFMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
 
FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme by Michael HeiderFMK2019 FileMaker Anbindung an Online Systeme by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider
 

More from Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfVerein FM Konferenz
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsVerein FM Konferenz
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsVerein FM Konferenz
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzVerein FM Konferenz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzVerein FM Konferenz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzVerein FM Konferenz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingVerein FM Konferenz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinVerein FM Konferenz
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserVerein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtVerein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtVerein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonVerein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussVerein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussVerein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfVerein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonVerein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoVerein FM Konferenz
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaVerein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaVerein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairVerein FM Konferenz
 

More from Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 

FM2014: Einführung in Function Scripting by Thomas Hirt

  • 1. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Einführung in FunctionScripting Übergabe mehrerer Parameter an ein Script
  • 2. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Was erwartet Sie? •allgemein •ein sehr technischer Vortrag •eine Zusammenstellung an spezifischem Methodikwissen •je nach Vorwissen eine steile oder weniger steile Lernkurve •nichts Neues für erfahrene, professionelle FileMakerEntwickler •inhaltlich •Wir beginnen mit Grundlagen. •Wir schreiten danach mit Siebenmeilenstiefeln voran. •viele Details eher für'sStudium nach der Konferenz vorgesehen •3 Themenblöcke •Einführung •statische Parameterauswertung •dynamische Parameterauswertung
  • 3. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Einleitung
  • 4. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Was ist eine Funktion? •Eine Funktion ist eine Abfolge von Anweisungen. •Eine Funktion akzeptiert Eingabewerte ("Parameter"). •Eine Funktion verarbeitet die Parameter und errechnet damit oder daraus einen Rückgabewert. •Eine Funktion wird einmal deklariert und ausprogrammiert und kann danach beliebig oft aufgerufen werden. Rückgabewert Param3 Param2 Param1
  • 5. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Funktionen in stark typisierten Programmiersprachen •Funktionsnamen •Anweisungen •Parameternamen •Datentypen der Parameter •Datentyp des Rückgabewertes Name Anweisung 1 Anweisung 2 … Datentyp ParamTyp1 ParamTyp2 ParamTyp3 … ParamName1 ParamName2 ParamName3 … Beispiel: booleaninviteGuests(Arraynamen; Coordinatesort; Datedatum) { // der Funktionscode }
  • 6. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Funktionen in schwach typisierten Programmiersprachen •Funktionsnamen •Parameternamen •Anweisungen Name Anweisung 1 Anweisung 2 Anweisung 3 … ParameterName1 ParameterName2 ParameterName3 … Beispiel: inviteGuests(namen; ort; datum) { // der Funktionscode }
  • 7. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com FileMakerCustom Functions
  • 8. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com FileMakerScript
  • 9. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com einen Parameter an ein FileMakerScript übergeben
  • 10. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com einen Parameter in einem FileMakerScript auslesen
  • 11. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com einen Parameter in einem FileMakerScript nutzen und den Rückgabewert berechnen Set Variable [$parameter; Value:Get( ScriptParameter)] Set Variable [$returnValue; Value: Berechnungen mit $parameter] Exit Script [Result: $returnValue]
  • 12. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com FileMakerScript Parameterwie vom Hersteller vorgesehen •Ursprünglich konnte kein Parameter an ein FileMakerSkript übergeben werden. Dies war nicht vorgesehen. •Seit FileMaker7 akzeptiert ein FileMakerSkript von Haus aus einen einzelnen Parameter. •Der Parameter wird über ein Formelfeld festgelegt. •Im Skript muss der Parameter über Get( ScriptParameter) ausgelesen werden und wird typischerweise in einer lokalen Variable abgelegt. •Es gibt innerhalb von FileMakerkeine Mechanismen, um an ein Skript mehr als einen Parameter zu übergeben. •ACHTUNG… •Bitte FileMakerSkripten und FileMakerCustom Functionsnicht verwechseln! •Custom Functionsakzeptieren eine frei definierbare Anzahl von Parametern.
  • 13. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com "FunctionScripting" Wenn in FileMakerSkripten Methoden eingesetzt werden, welche es erlauben, einem FileMakerSkript mehr als eine Parameter zu übergeben, wird dies als "FunctionScripting" bezeichnet. Der Begriff "FunctionScripting" lässt sich so erklären, dass ein FileMakerSkript sich durch diese Methoden beinahe wie eine vollwertige Funktion verhält und nicht nur wie ein einfaches, parameterloses Skript.
  • 14. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung
  • 15. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungWie werden die Konzepte demonstriert? •Jedes Konzept wird anhand eines eigenen FileMakerSkriptes vorgestellt. •Ein Demoskript erhält (anders als in der alltäglichen Praxis) keinen sprechenden, funktionsbezogenen Namen, sondern einen Namen, der sich auf das erklärte Konzept bezieht. •"statisch1 ( param)" => Skript 1. Konzept, Kapitel"statische Parameterzuweisung" •"statisch4 ( artikelliste; adresse)" => Skript 4. Konzept, Kapitel "statische Parameterzuweisung" •"dynamisch2 ( params)" => Skript 2. Konzept, Kapitel "dynamische Parameterzuweisung" •Damit die übergebenen Parameter sowie deren Erkennung innerhalb der Skripte in den Demos gut sichtbar gezeigt werden können, werden globale Felder eingesetzt. Dies erfolgt NUR zu Demozwecken!
  • 16. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungWie werden die Konzepte demonstriert? ↕# Script Parameter auslesen ↕Set Variable [$parameter; Value:Get( ScriptParameter)] ↕# ↕# mitlokalenVariablenweiterarbeiten ↕Set Field [Hilfsfelder::STATISCH.1.OUTPUT1; $parameter] Script Name: statisch1 ( param) PerformScript ["statisch1 ( param)"; Parameter: Hilfsfelder::STATISCH.1.INPUT] Skriptaufruf nur zu Demozwecken! Globale Felder, Globale und lokale Variablen, Literalesowie Berechnungen möglich
  • 17. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 1 Demo
  • 18. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 2 Script Name: statisch2 ( zeit; nachricht) 16:30¶Hallo, wie geht's? Set Variable [$params; Value:Get( ScriptParameter)] Set Variable [$zeit; Value:GetValue( $params; 1 ) ] Set Variable [$nachricht; Value:GetValue( $params; 2 ) ]
  • 19. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 2 ↕# Script Parameter auslesen ↕Set Variable [$params; Value:Get( ScriptParameter)] ↕# ↕# Script Parameter aufteilen und in lokalen Variablen speichern ↕Set Variable [$zeit; Value:GetAsTime(GetValue( $params; 1 ) )] ↕Set Variable [$nachricht; Value:GetValue( $params; 2 )] ↕# ↕# mitlokalenVariablenweiterarbeiten ↕Set Field [Hilfsfelder::STATISCH.2.OUTPUT1; $zeit] ↕Set Field [Hilfsfelder::STATISCH.2.OUTPUT2; $nachricht] Script Name: statisch2 ( zeit; nachricht) explizite Typzuweisung
  • 20. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 2 Demo
  • 21. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungLimitierung Als "Delimiter" wird jenes Zeichen oder jene Zeichenkombination bezeichnet, welche die Parameter voneinander abtrennt. Im Deutschen kann auch der Begriff "Trennzeichen" verwendet werden. Der Delimiter darf in den Parametern nicht vorkommen! •PerformScript[ "statisch2 ( zeit; nachricht)"; Parameter: "16:30¶Diese Nachricht hat zwei Zeilen,¶welchedurch eine Absatzmarke getrennt sind.] •PerformScript[ "statisch3 ( sender|msg)"; Parameter: "param1|param2"]
  • 22. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 3 Script Name: statisch3 ( sender|msg) ↕# Script Parameter auslesen ↕Set Variable [$params; Value:Get( ScriptParameter)] ↕# Script Parameter aufteilen und in lokalen Variablen speichern ↕Set Variable [$positionPipeChar; Value: Position( $params; "|"; 1; 1 )] ↕Set Variable [$sender; Value: Left( $params; $positionPipeChar-1 )] ↕Set Variable [$msg; Value:Right( $params; Length( $params) -$positionPipeChar] ↕# mitlokalenVariablenweiterarbeiten ↕Set Field [Hilfsfelder::STATISCH.2.OUTPUT1; $sender] ↕Set Field [Hilfsfelder::STATISCH.2.OUTPUT2; $msg] Script Parameter "en bloc" auslesen Parameterblock in einzelne Parameter aufteilen Parameterwerte an lokale Variablen zuordnen mit lokalen Variablen arbeiten
  • 23. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 3 Demo
  • 24. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungLimitierung Als "Delimiter" wird jenes Zeichen oder jene Zeichenkombination bezeichnet, welche die Parameter voneinander abtrennt. Der Delimiter darf in den Parametern nicht vorkommen! •PerformScript [ "statisch2 ( zeit; nachricht )"; Parameter: "16:30¶Diese Nachricht hat zwei Zeilen,¶welche durch eine Absatzmarke getrennt sind.] •PerformScript [ "statisch3 ( sender|msg )"; Parameter: "param1|param2|enthält eine Pipe"]
  • 25. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Umgehung der Limitierung –Variante 1Delimiter "codieren" •verbotene Delimiter-Zeichen werden vor Parameterübergabe durch eine erlaubte Zeichenkombination ersetzt •verbotenen Delimiter-Zeichen werden während Zuweisung der Parameterwerte an lokale Variablen wieder eingefügt •2 Custom Functions •codierung Delimiter •decodierungDelimiter 1.param1="Hallo¶Velo!" param2=1234 2.param1="Hallo###par###Velo!" param2=1234 3.paramblock="Hallo###par### Velo!¶1234" 4.var1="Hallo###par###Velo!" var2="1234" 5.var1="Hallo¶Velo!" var2=1234
  • 26. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Umgehung der Limitierung –Variante 1Delimiter "codieren" •Custom Function1: Parameter codieren paramEncode( Param)= Substitute ( param; "¶"; "###paragraph###" ) & "¶" •Custom Function2: Parameter decodieren paramDecode( Param) = Substitute ( param; "###paragraph###"; "¶" ) •Script: statisch4 ( artikelliste; adresse) •Scriptaufruf: PerformScript[ "statisch4 ( artikelliste; adresse)"; Parameter: paramEncode(Hilfsfelder::STATISCH.4.PARAM1 )& paramEncode(Hilfsfelder::STATISCH.4.PARAM2 )]
  • 27. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungUmgehung der Limitierung -Variante 1 ↕# Script Parameter auslesenund sichtbarmachen ↕Set Variable [$params; Value:Get( ScriptParameter)] ↕Set Field [Hilfsfelder::STATISCH.4.PARAMBLOCK; $params] ↕# Script Parameter aufteilen und in lokalen Variablen speichern ↕Set Variable [$artikelliste; Value: paramDecode( GetValue( $params; 1 ) )] ↕Set Variable [$adresse; Value: paramDecode( GetValue( $params; 2 ) )] ↕# mitlokalenVariablenweiterarbeiten ↕Set Field [Hilfsfelder::STATISCH.4.OUTPUT1; $artikelliste] ↕Set Field [Hilfsfelder::STATISCH.4.OUTPUT2; $adresse] Script Name: statisch4 ( artikelliste; adresse)
  • 28. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungUmgehung der Limitierung -Variante 1 Demo
  • 29. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Umgehung der Limitierung –Variante 2komplexer Delimiter •jeder Parameter wird durch eine komplexe Zeichenfolge umfasst •"umhüllte" Parameter werden als Parameterblock übergeben •Parameter werden aus ihrer Umhüllung wieder herausgeschält •2 Custom Functions •umhüllen der Parameter mit komplexemn Delimiter •herausschälen der einzelnen Parameter aus dem "Parameterblock" 1.param1="Hey!¶Du!" param2=1234 2.param1="##1##Hey!¶Du!##2##" param2="##1##1234##2##" 3.paramblock="##1##Hey!¶Du!## 2####1##1234##2##" 4.var1="##1##Hey!¶Du!##2##" var2="##1##1234##2##" 5.var1="Hey!¶Du!" var2=1234
  • 30. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungUmgehung der Limitierung -Variante 2 •Custom Function1: Parameterwert mit Delimiterumfassen param( value) = "###start###" & value& "###end###" •Custom Function2: Parameterwert aus Parameterblock zurückgewinnen getParam( params; nr)= Let ([ _start = Position ( params; "###start###"; 1; nr ) + 11; _end = Position ( params; "###end###"; 1; nr ) -1; _length = _end -_start + 1 ]; Middle ( params; _start; _length ) ) •Script: statisch5 ( artikelliste; adresse) •Scriptaufruf: PerformScript[ "statisch5 ( artikelliste; adresse)"; Parameter: param(Hilfsfelder::STATISCH.5.PARAM1 )& param( Hilfsfelder::STATISCH.5.PARAM2 )]
  • 31. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungUmgehung der Limitierung -Variante 2 ↕# Script Parameter auslesenund sichtbarmachen ↕Set Variable [$params; Value:Get( ScriptParameter)] ↕Set Field [Hilfsfelder::STATISCH.5.PARAMBLOCK; $params] ↕# Script Parameter aufteilen und in lokalen Variablen speichern ↕Set Variable [$artikelliste; Value: getParam( $params; 1 )] ↕Set Variable [$adresse; Value: getParam( $params; 2 )] ↕# mitlokalenVariablenweiterarbeiten ↕Set Field [Hilfsfelder::STATISCH.5.OUTPUT1; $artikelliste] ↕Set Field [Hilfsfelder::STATISCH.5.OUTPUT2; $adresse] Script Name: statisch5 ( artikelliste; adresse)
  • 32. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungUmgehung der Limitierung -Variante 2 Demo
  • 33. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung
  • 34. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung •Ziele •automatische Zuordnung von Parametern zu lokalen Variablen •standardisierter Weg, Parameter einer Funktion zu deklarieren •Übertragung der Technik von einem FileMakerScript in ein anderes muss leicht und schnell gehen •copy–paste •Custom Functions •mögliche Erweiterungen •Reihenfolge der Parameter bei der Übergabe unwichtig •optionale Parameter vs. Pflichtparameter •Typprüfungen •komplexe Validierungen •umfassendes Error Handling
  • 35. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 1fixe Parameterreihenfolge ↕Set Variable [$auswertung; Value: attributeParams( getParamsFromScriptname();Get ( ScriptParameter) ) ] Script Name: dynamisch1 ( artikelliste; adresse) $artikelliste $adresse
  • 36. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 1fixe Parameterreihenfolge ↕# Script Parameter sichtbarmachen(unnötig! nurDemo!) ↕Set Field [Hilfsfelder::DYNAMISCH.1.PARAMBLOCK; Get ( ScriptParameter)] ↕# Script Parameter auswerten ↕Set Variable [$auswertung; Value:attributeParams( getParamsFromScriptname();Get ( ScriptParameter) )] ↕# mitlokalenVariablenweiterarbeiten ↕Set Field [Hilfsfelder::DYNAMISCH.1.OUTPUT1; $artikelliste] ↕Set Field [Hilfsfelder::DYNAMISCH.1.OUTPUT2; $adresse] Aufruf des Skriptes dynamisch1 ( artikelliste; adresse)
  • 37. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 1fixe Parameterreihenfolge PerformScript[ "dynamisch1 ( artikelliste; adresse)"; Parameter: param(value1 )& param( value2 ) ] Aufruf des Skriptes "dynamisch1 ( artikelliste; adresse)" •Tabelle::Feldname •$lokaleVariable •$$GLOBALE.VARIABLE
  • 38. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 1fixe Parameterreihenfolge Demo
  • 39. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com An die Funktion "Evaluate()" wird ein Text übergeben, welcher danach von "Evaluate()" als Berechnung ausgewertet wird. Dies erlaubt die Zusammenstellung von Berechnungen zur Laufzeit des Skriptes. dynamische Parameterauswertungdas zentrale "Geheimnis" Das zentrale "Geheimnis" der dynamischen Parameterauswertung liegt in der FileMakerFunktion Evaluate!
  • 40. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertungdas zentrale "Geheimnis" •Let( [ $$myGlobalVar1="Hello"; $$myGlobalVar2="World" ]; 1) •Evaluate(" Let( [ $$"& $var1 & "=" & $value1 & "; $$"& $var2 & "=" & Quote ( $value2 ) & " ]; 1) ") Zahlenwerte Texte, usw.
  • 41. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com RÜCKBLENDEdynamische Parameterauswertung 1fixe Parameterreihenfolge
  • 42. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com attributeParams( getParamsFromScriptname(); Get( ScriptParameter) ) START Namen der erwarteten Parameter aus Skriptname herleiten ersten Parameternamen aus Liste aller Parameter herleiten ersten Parameterwert aus Parameterblock herleiten Gibt es verbleibende Parameter? verbleibende Parameterwerte herleiten verbleibende Parameternamen herleiten Variablenzuordnung basierend auf erstem Parameternamen und -wert vornehmen ENDE nein ja verbleibende Parameternamen und verbleibender Parameterblock als neue Ausgangswerte festlegen "Rekursion"
  • 43. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 1fixe Parameterreihenfolge _attribution= Evaluate( " Let( [ $"&_currentName&"=" &Quote (_currentValue)&" ]; True)")
  • 44. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 2freie Parameterreihenfolge mit Typangabe •Da Skriptnamen in FileMaker13 (und älter) auf 100 Zeichen begrenzt sind, können nur wenige und kurze Parameternamen direkt im Skriptnamen definiert werden. •Bei einer undefinierten Parameterreihenfolge mit Typangabe definieren wir die erwarteten Parameter INNERHALB des Skriptes in einer klar definierten Art. •Parameter werden als eine Abfolge von Wertepaaren übergeben. •Die Wertepaare bestehen aus Parameternamen und Parameterwert
  • 45. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 2 ↕# Script Parameter definieren ↕SetVariable[$erwarteteParameter; Value:"artikelnummer;number¶artikelbeschreibung;text¶anzahl;number ¶stueckpreis;number¶bestelldatum;date"] ↕# Script Parameter auswerten ↕Set Variable [$auswertung; Value:dyn2.params.calculate ( $erwarteteParameter;Get ( ScriptParameter))] ↕# mitlokalenVariablenweiterarbeiten ↕… Script Name: dynamisch2 ( params)
  • 46. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com verbleibende Parameternamen und verbleibender Parameterblock als neue Ausgangswerte festlegen START Datentyp des ersten Parameters bestimmen Name-Wert-Paar desersten Parameters auslesen Gibt es weitere Name-Wert- Paare? verbleibenden Parameterblock berechnen ENDE nein ja "Rekursion" lokale Variable erzeugen aus Name-Wert-Paar mit Datentyp dynamische Parameterauswertung 2
  • 47. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com START Datentyp des ersten Parameters bestimmen lokale Variable aus Name- Wert-Paar erzeugen dynamische Parameterauswertung 2 ENDE dyn2.params.calculate ( expectedParams; params) dyn2.type.determine( name; expectedParams) dyn2.param.attribute( nameValuePair; type ) "Rekursion"
  • 48. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 2 Demo
  • 49. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com ein guter Fachartikel zum selben Thema •"Scriptparameter-Alte und neue Wege", Arnold Kegebein, FileMakerMagazin, 3, 2014, pp.31-34 •gut, ziemlich umfassend, empfehlenswert •Verweise auf http://filemakerstandards.org •extensive Sammlung von Konventionen zur FileMakerProgrammierung •diverse bekannte "FileMakerGurus" arbeiten daran mit
  • 50. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Vielen Dank unseren Sponsoren Dankefürdas Bewertendieses Vortrages