Anúncio

FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt

Verein FM Konferenz
25 de Jun de 2022
Anúncio

Mais conteúdo relacionado

Similar a FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt(20)

Mais de Verein FM Konferenz(18)

Anúncio

Último(20)

FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt

  1. www.filemaker-konferenz.com FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Was sind Custom Functions? Wie erstellt man Custom Functions? Thomas Hirt Custom Functions für Einsteiger
  2. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Über den Sprecher • Studium der Biochemie und des Software Engineering • betreut seit 25+ Jahren Kleinunternehmen und Privatkunden in Informatikbelangen • Geschäftsführer und Inhaber der Tek:Guides GmbH • Windows Umgebungen als Hauptbetätigungsfeld • Einsatz von FileMaker als Entwicklungsplattform seit 2009
  3. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Inhalt • FileMaker Funktionen als Grundlage von Custom Functions • Funktionen in der FileMaker Entwicklungsumgebung • Funktionsreferenz in der FileMaker Hilfe • Wie erstellt man Custom Functions? – Teil 1 • Erstellung von Custom Functions • ein ganz einfaches Beispiel • Eigenschaften von Custom Functions • Wie erstellt man Custom Functions? – Teil 2 • wichtige Strukturbausteine • Beispiele als Ideengeber • Wann sind Custom Functions sinnvoll?
  4. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt FileMaker Funktionen als Grundlage von Custom Functions
  5. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  6. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  7. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung ?
  8. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  9. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  10. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  11. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  12. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  13. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  14. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  15. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  16. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  17. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  18. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  19. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  20. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionen in der FileMaker Entwicklungsumgebung
  21. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionsreferenz in FileMaker Hilfe
  22. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Funktionsreferenz in FileMaker Hilfe
  23. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Wie erstellt man Custom Functions? Teil 1
  24. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Erstellung von Custom Functions
  25. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Erstellung von Custom Functions
  26. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Erstellung von Custom Functions
  27. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Erstellung von Custom Functions
  28. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel • Ausgabe des deutschen Wochentags zu einem Datum • Schritt 1: durchsuchen der FileMaker Funktionen aus dem Bereich "Datum" • Schritt 2: durchsuchen der FileMaker Funktionen aus dem Bereich "Logik", um einen geeigneten Logarithmus zu ersinnen • Kombination der ausgesuchten Funktionen zu einer eigenen "Custom Function" mit dem Namen "Wochentag" und einem Parameter "datum" • Wochentag ( datum )
  29. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  30. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel • DayOfWeek ( date ) • liefert als Antwort die Zahl 1 für einen Sonntag, 2 für einen Montag, etc. • DayOfWeek ( Date ( 6 ; 18 ; 2020 ) ) • FileMaker erledigt für uns also bereits die eigentliche Berechnung des Wochentags. Wir müssen nur noch die Zahlen der deutschen Bezeichnung zuordnen.
  31. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  32. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  33. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  34. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  35. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  36. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  37. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  38. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel • Choose ( test ; result0 {; result1 ; result2…} ) • eine Berechnung ("test") muss natürliche Zahlen beginnend mit 0 ausgeben • nach der Berechnung werden der Reihe nach die Werte aufgezählt, welche den Ergebnissen 0, 1, 2, usw. zugeordnet werden • Wir können die Funktionen "Choose" und "DayOfWeek" miteinander kombinieren: Choose ( DayOfWeek ( datum ) - 1; "Sonntag"; "Montag"; "Dienstag"; "Mittwoch"; "Donnerstag"; "Freitag"; "Samstag" )
  39. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  40. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  41. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  42. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  43. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  44. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  45. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  46. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  47. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt ein ganz einfaches Beispiel
  48. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Eigenschaften von Custom Functions
  49. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Eigenschaften von Custom Functions • begrenzt im Umfang • Name ≤ 100 Zeichen • max. 30’000 Zeichen • verschachtelte Aufrufe limitiert • max. 50’000 Schleifendurchläufe • max. 50’000 rekursive Aufrufe • max. Verschachtelung gleichzeitig aktiver Aufrufe: 10’000 • Verschachtelungstiefe auf eigenes Risiko mit SetRecursion () änderbar • Limitationen im Prinzip identisch zu Berechnungen • Debugging von Hand im Data Viewer, keine Unterstützung durch Debugger • in andere Lösungen importierbar, Reihenfolge bei Import kritisch
  50. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Wie erstellt man Custom Functions? Teil 2
  51. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt wichtige Strukturbausteine Let ( [ wert1 = meineBerechnung1; wert2 = meineBerechnung2; wert3 = meineBerechnung1; ... wertN = meineBerechnungN ]; berechnungRückgabewert )
  52. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt wichtige Strukturbausteine If ( bedingung = wert; berechnungRückgabewert1; berechnungRückgabewert2 ) Case ( bedingung1 = wert1; berechnungRückgabewert1; bedingung2 = wert2; berechnungRückgabewert2; ... bedingungN = wertN; berechnungRückgabewertN; berechnungRückgabewertUniversell )
  53. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt wichtige Strukturbausteine While ( [ startVariable1 = wert1; startVariable1 = wert1; ... startVariableN = wertN ]; bedingung; [ schleifenVariable1 = berechnung1; schleifenVariable2 = berechnung2; ... schleifenVariableN = berechnungN ]; berechnungRückgabewert )
  54. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt wichtige Strukturbausteine Evaluate ( ) Text, welcher zur Laufzeit (z.B. mittels Variablen) zusammengebaut wird und danach als Berechnung interpretiert wird
  55. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt wichtige Strukturbausteine Die Strukturelemente "Let", "If", "Case", "While" und "Evaluate" lassen sich beliebig kombinieren und ineinander verschachteln, so dass auch sehr komplexe Berechnungen abgebildet werden können.
  56. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt wichtige Strukturbausteine Let ( [ wert1 = If ( bedingung = wert; berechnungRückgabewert1; berechnungRückgabewert2 ); wert2 = meineBerechnung2; wert3 = Evaluate ( XXXXXXXXXXXXXXXXXXXXXX ); wert4 = 123... ]; Case ( bedingungX = wertX; berechnungRückgabewertX; bedingungY = wertY; berechnungRückgabewertY; berechnungRückgabewertUniversell ) )
  57. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Beispiel 1: Alter • Beim erstellen von Custom Function Bibliotheken ist es sinnvoll, die Funktionen thematisch zu gliedern. Der erste Teil des Funktionsnamens ("time.") hat diesen Zweck. • Es wird ein Parameter dateOfBirth übergeben. Es ist wichtig zu überprüfen, ob dieser Parameter ein geeignetes Format hat. time.age ( dateOfBirth )
  58. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Beispiel 1: Alter • Lösungsidee: • Näherungsweise kann das Alter berechnet werden, indem man von der aktuell gültigen Jahreszahl das Jahr des Geburtstages abzieht. • Es muss zusätzlich berücksichtigt werden, ob der Geburtstag im aktuellen Jahr schon vorbei ist oder nicht. time.age ( dateOfBirth ) Jahr Geburtstag aktuelles Jahr - Geburtsjahr aktuelles Jahr - Geburtsjahr - 1
  59. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Beispiel 1: Alter Einfache Methode, um sicherzustellen, dass der übergebene Parameter das richtige Format hat. Let ( [ // aktuelles Datum _today = Get ( CurrentDate ); _todayY = Year ( _today ); _todayM = Month ( _today ); _todayD = Day ( _today ); // Geburtstag _birthday = GetAsDate ( dateOfBirth ); _birthdayY = Year ( _birthday ); _birthdayM = Month ( _birthday ); _birthdayD = Day ( _birthday ); // Geburtstag dieses Jahr schon vorbei? _birthdayPast = Case ( _todayM > _birthdayM; 1; ( _todayM = _birthdayM ) and ( _todayD ≥ _birthdayD ); 1; 0 ) ]; // Altersberechnung If ( _birthdayPast; _todayY - _birthdayY; _todayY - _birthdayY - 1 ) )
  60. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Ausgangsdaten Beispiel 2: Seitenzahlen Ziel • gegeben sei eine Liste von Seitenzahlen in aufsteigender Reihenfolge • Die Seitenzahlen werden durch Absatzmarken getrennt, d.h. pro Zeile findet sich eine Seitenzahl. • Die Liste der Seitenzahlen soll auf einer Zeile dargestellt werden. • Die Seitenzahlen sollen durch Kommas und Abstand voneinander getrennt werden. • Aufeinanderfolgende Seitenzahlen sollen als Serie xx-yy dargestellt werden, um die Liste zu verkürzen.
  61. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Ausgangsdaten Beispiel 2: Seitenzahlen Ziel 5 9 22 23 24 25 51 67 103 104 5, 9, 22-25, 51, 67, 103-104
  62. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Beispiel 2: Seitenzahlen numbers.list.shorten ( listOfNumbers ) While ( [ _shortenedList = ""; _remainingList = listOfNumbers; _lastNumber = 0; _lastNumberWasInSeries = 0 ]; not IsEmpty ( _remainingList ); [ // nächste Zahl in Ausgangsliste merken // Zahl an verkürzte Liste anhängen // Ausgangsliste um 1 Zahl verkürzen ]; _shortenedList )
  63. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Beispiel 2: Seitenzahlen _remainingNumberCount = ValueCount ( _remainingList ); _currentNumber = GetValue ( _remainingList; 1 ); _currentNumberIsInSeries = If ( _currentNumber - 1 = _lastNumber; 1; 0 ); _shortenedList = Case ( IsEmpty ( _shortenedList ); _currentNumber; _currentNumberIsInSeries and _remainingNumberCount = 1; _shortenedList & "-" & _currentNumber; _currentNumberIsInSeries; _shortenedList; _lastNumberWasInSeries; _shortenedList & "-" & _lastNumber & ", " & _currentNumber; _shortenedList & ", " & _currentNumber ); _lastNumber = _currentNumber; _lastNumberWasInSeries = If ( _currentNumberIsInSeries; 1; 0 ); _remainingList = RightValues ( _remainingList; _remainingNumberCount-1 )
  64. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt While ( [ _shortenedList = ""; _remainingList = listOfNumbers; _lastNumber = 0; _lastNumberWasInSeries = 0 ]; not IsEmpty ( _remainingList ); [ _remainingNumberCount = ValueCount ( _remainingList ); _currentNumber = GetValue ( _remainingList ; 1 ); _currentNumberIsInSeries = If ( _currentNumber - 1 = _lastNumber ; 1 ; 0 ); _shortenedList = Case ( // This is the 1st iteration. IsEmpty ( _shortenedList ); _currentNumber; // The current number belongs to an active series of neighbouring numbers. // The current number is the last number in the list. _currentNumberIsInSeries and _remainingNumberCount = 1; _shortenedList & "-" & _currentNumber; // The current number belongs to an active series of neighbouring numbers. _currentNumberIsInSeries; _shortenedList; // The current number does not belong to an active series of neighbouring numbers // but the last number did. Hence, the last number terminates a series. _lastNumberWasInSeries; _shortenedList & "-" & _lastNumber & ", " & _currentNumber; // Neither the last nor the current number belongs to a series of neighbouring numbers. // We can simply add the current number. _shortenedList & ", " & _currentNumber ); _lastNumber = _currentNumber; _lastNumberWasInSeries = If ( _currentNumberIsInSeries ; 1 ; 0 ); _remainingList = RightValues ( _remainingList ; _remainingNumberCount - 1 ) ]; _shortenedList ) Beispiel 2: Seitenzahlen
  65. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Wann sind Custom Functions sinnvoll?
  66. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt eher sinnvoll Wann sind Custom Functions sinnvoll? eher nicht sinnvoll • wiederverwenbar • klar umrissene Funktion • wenige bis gar keine Abhängigkeiten • nicht allzu umfangreich und lang • Fälle zum Testen gut erstellbar, Testaufwand überschaubar (Stichwort: "Unit Tests") • einmalige Verwendung • Abhängigkeiten zwingend gegeben • komplex oder sehr komplex • Funktionalität nicht nachvollziehbar (Stichtwort: "Black Box") • Testaufwand gross bis sehr gross
  67. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Custom Functions Wann sind Custom Functions sinnvoll? FileMaker Skripten • klar umrissene Funktionen • wenige bis gar keine Abhängigkeiten • nicht allzu umfangreich und komplex • FileMaker Funktionen als Basis • Kommentare im Code zwar möglich, aber nicht wirklich vorgesehen • Testing von Hand im Data Viewer • alle Arten von Algorithmen • mit oder ohne Abhängigkeiten • ganz simpel bis sehr komplex • FileMaker Skriptschritte und FileMaker Funktionen als Basis • umfangreiche Kommentare im Code problemlos möglich • Testing mit Hilfe des Debuggers
  68. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Q & R Vielen Dank für Ihr Interesse!
  69. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Links auf Tools • Custom Function Sammlungen • https://www.briandunning.com/filemaker-custom-functions/ • https://github.com/chivalry/filemaker-custom-functions • https://github.com/jbante/FileMaker- Techniques/tree/master/CustomFunctions • kostenlose Text-Editoren für Entwickler • https://notepad-plus-plus.org/ (Windows) • https://code.visualstudio.com/ (Win, macOS, Linux) Plugin für FileMaker Code Highlighting verfügbar
  70. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Custom Functions für Einsteiger – Thomas Hirt Vielen Dank unseren Sponsoren
Anúncio