FM2014: Einführung in Function Scripting by Thomas Hirt

1.532 Aufrufe

Veröffentlicht am

FileMaker Skripten akzeptieren nur einen einzigen Parameter, den man innerhalb des Skriptes mit der Funktion 'Get(ScriptParameter)' auslesen kann. Seit der Einführung des Skript-Parameters in FileMaker 7 haben Entwickler nach Wegen gesucht, die Beschränkung auf einen einzigen Parameter zu umgehen. In den meisten Programmiersprachen akzeptieren Funktionen eine beliebige Anzahl von Parametern. Wenn man einen Weg findet, in den einzigen Parameter eines FileMaker Skriptes mehrere Parameter zu verpacken, kombiniert man das Konzept des "FileMaker Skriptes" mit dem Konzept der "Funktion". Aus dieser Verbindung ist in der englischsprachigen FileMaker-Community der Begriff "Function Scripting" entstanden. Dieser Vortrag gibt einen Überblick über einige Vorgehensweisen, wie man mehrere Parameter an ein Skript übergeben kann. Wir beginnen mit einfacheren Methoden, die auch für Entwickler mit wenig Erfahrung geeignet sind, und tasten uns danach an fortgeschrittene Techniken heran. Fortgeschrittene Techniken bedeuten mehr Aufwand und Komplexität, bieten aber mehr Kontrolle.

Download Beispieldateien:
http://www.filemaker-konferenz.com/2014/downloads/Hirt_Thomas/Function_Scriptung_und_Custom_Functions.zip

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.532
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
4
Aktionen
Geteilt
0
Downloads
23
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

FM2014: Einführung in Function Scripting by Thomas Hirt

  1. 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. 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. 3. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Einleitung
  4. 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. 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. 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. 7. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com FileMakerCustom Functions
  8. 8. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com FileMakerScript
  9. 9. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com einen Parameter an ein FileMakerScript übergeben
  10. 10. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com einen Parameter in einem FileMakerScript auslesen
  11. 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. 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. 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. 14. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung
  15. 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. 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. 17. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 1 Demo
  18. 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. 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. 20. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 2 Demo
  21. 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. 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. 23. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische Parameterauswertung 3 Demo
  24. 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. 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. 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. 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. 28. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungUmgehung der Limitierung -Variante 1 Demo
  29. 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. 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. 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. 32. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com statische ParameterauswertungUmgehung der Limitierung -Variante 2 Demo
  33. 33. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung
  34. 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. 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. 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. 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. 38. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 1fixe Parameterreihenfolge Demo
  39. 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. 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. 41. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com RÜCKBLENDEdynamische Parameterauswertung 1fixe Parameterreihenfolge
  42. 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. 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. 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. 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. 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. 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. 48. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com dynamische Parameterauswertung 2 Demo
  49. 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. 50. Thomas Hirt Einführung in FunctionScripting FileMakerKonferenz 2014 Winterthur www.filemaker-konferenz.com Vielen Dank unseren Sponsoren Dankefürdas Bewertendieses Vortrages

×