SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
www.filemaker-konferenz.com
Erweiterung des Leistungsumfangs von FileMaker durch Zugriff auf die
UNIX-Tools des macOS

Dipl.-Math. Erich Schmidt
Nutzung von SHELL-Skripts in FileMaker
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Über den Sprecher
• 1974 Abschluss als Dipl.-Mathematiker

(Universität Rostock)

• ab 1978 Softwareentwicklung Mainframe (IBM 360)

• Mitte der 80-er UNIX und C

• Datenbankentwicklung seit 1990 (IBM AS/400)

• ab 2005 freiberuflicher Softwareentwickler

• ab 2013 mache ich nur noch, was richtig Spass macht

FileMaker gehört manchmal auch dazu

Erich Schmidt
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Zum Thema
• Motivation

• Was macht die Shell im UNIX? 

• Stand-alone-Test von Skripts am Terminal

• Entwurf eines User-Interfaces für FileMaker

• Mögliche Plugins zur Unterstützung in FileMaker

• Implementierung einer Skriptbibliothek in FileMaker

• Einige Beispiele
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Motivation
• Die Verarbeitungslogik lässt sich in Form von Daten in einem Textfeld speichern.

• Damit ist für ein neues Problem keine neue Funktion erforderlich, sondern nur ein
neuer Datensatz.

• Das System enthält eine umfangreiche Sammlung von Tools für die Analyse und
Manipulation von Daten.

• Viele der Tools arbeiten mit regulären Ausdrücken.

• Es können eigene (z.B. in C oder C++) geschriebene Tools hinzugefügt werden.

• Skripts lassen sich unabhängig von FileMaker erstellen und testen.

10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Die Shell
• Die Shell ist ein zeilenorientiertes USER-Interface am Terminal.

• Sie ist ein normales Tool, das Zeilen liest und damit "etwas" macht.

• Wenn die gelesenen Zeilen von einem File kommen, nennt man das File ein
Shell-Skript.

• Es gibt mehrere Shells im System.

• Für jeden Nutzer gibt es eine Standard-Shell (bei mir: /bin/bash).

• Der Leistungsumfang ist immens.

• Es gibt aber einige Grundlagen mit denen

wir uns gleich beschäftigen, weil sie zum

Verständnis der Beispiele erforderlich sind.
ca. 900 Seiten
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Die Bourne-again Shell (bash)
• Die von der Shell gelesenen Zeilen werden ggf. aufbereitet und interpretativ
abgearbeitet.

Beispiel: 

• Es können aber auch mehrere Kommandos in einer Zeile stehen. Die müssen
dann durch ein Kommandotrennzeichen getrennt werden. 

• Ein Kommandotrennzeichen ist das Semikolon. Es bewirkt, dass alle in der
Zeile stehenden Kommandos hintereinander ausgeführt werden.

Beispiel: 

• Ein weiteres ist der senkrechte Strich | (Pipe). Er bewirkt, dass die Ausgabe des
links stehenden als Eingabe des rechts stehenden Kommandos verwendet
wird (auch mehrfach hintereinander).

Beispiel: 

• Es gibt noch weitere Kommandotrennzeichen
ls -lsa
cd /tmp;ls -ls
ls | sort -r
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Shell-Parametersubstitution
• Die Paramtersubstitution ist eine von vielen Aufbereitiungsleistungen der Shell.

• Stellungsparameter werden durch Angabe beim Aufruf eines Skripts oder Kommandos
definiert

MyScript -h 43 txt

• Schlüsselwortparameter durch ein Schlüsselwort gefolgt von = und einem Wert

KUNDE=7081

• Es gibt built-in-Parameter (PATH, PWD, LOGNAME, HOME, #, ?, PS1, PS2,…), 

von denen einige read-only sind.

• Die Shell scannt jede gelesene Zeile auf bestimmte Zeichen(folgen). (Metazeichen)

• Das Metazeichen $ gefolgt von einer Nummer leitet eine Parametersubstitution ein

$1 ersetzt die Shell durch den ersten, $2 durch den zweiten Stellungsparameter u.s.w.

• Das Metazeichen $ gefolgt von einem Schlüsselwort wird durch den Wert des entsprechenden
Schlüsselwortparameter ersetzt, zum Beispiel:

$HOME --> /Users/fmk (die Tilde ~ ist ein Synonym für $HOME)

$KUNDE --> 7081

10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Stand-alone-Test von Skripts am Terminal

• Ein spezielles Verzeichnis für Shell-Skripts anlegen (Im Finder oder im Terminal)

cd;mkdir bin 

• In der .profile im HOME-Verzeichnis den PATH-Parameter ändern, so dass der
PATH das Skriptverzeichnis enthält. 

PATH=~/bin:$PATH
• Die hidden files werden im Finder mit der Tastenkombination SHIFT-CMD-.
sichtbar. Im Terminal mit ls -lsa
• Mit einem beliebigen Text-Editor ein Skript-File erstellen.
• Das Skript mit chmod u+x MySkript ausführbar setzen.

• Skript unter seinem Filenamen im Terminal aufrufen und ggf. Parameter angeben.

MySkript parm1 parm2
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Das Tool awk
• awk ist nur eines (wenn auch ein sehr mächtiges) von vielen Werkzeugen

• Es ist speziell für die Analyse und Manipulation von Textdaten konzipiert

• Die Verarbeitung geschieht so, dass eine oder mehrere Dateien zeilenweise
gelesen und nach Regeln die der Aufrufer festlegt verarbeitet werden

• Die Regeln enthält das awk-Programm 

• Aufrufvarianten:



awk 'awk-programm' 



awk -v V1=wert1 -v V2=Wert2 ... 'awk-programm'



Beispiel: 

awk -v N=$1 -v M=$2 'awk-programm'
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Regeln bei Ausführung eines awk-Programms
• Ein awk-Programm liest alle Eingabezeilen (Daten).

• Für jede Zeile wird das gesamte awk-Programm ausgeführt

• Eine Programmzeile hat die Form: bedingung { aktion }
• Wenn die gelesene Zeile die Bedingung erfüllt, wird die Aktion ausgeführt, sonst
nicht. Eine Bedingung die fehlt, ist immer erfüllt.

• Jede Eingabezeile wird automatisch in Felder aufgeteilt. Zwischen den Feldern steht
das Feldtrennzeichen. Das wird in der Builtin-Variablen FS definiert. (FS=" ")

• Beim Lesen einer Datenzeile werden die Builtin-Variablen NR (Number of Record)
und NF (Number of Fields) neu gesetzt.

• Die Aktionen, die unter den Bedingungen BEGIN bzw. END codiert sind werden vor
dem Lesen der ersten bzw. nach dem Lesen der letzten Zeile ausgeführt.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Entwurf einer Schnittstelle für 

FileMaker
• Für die Skriptausführung wird benötigt:

Skripttext

Daten (optional)

Parameter (optional, werden als Liste übergeben) 

• Dafür gibt es für jedes unterstützte Plugin eine CF mit diesen 3 Parametern

• Die CFs stellen ein ablauffähiges Skript zusammen und rufen jeweils die
entsprechende Plugin-Funktion auf.

Die Daten werden als Here Document in das Skript integriert und dem
ersten Kommando zugeordnet.

• Die Plugin-Funktionen sind für 

BaseElements: BE_ExecuteSystemCommand

bBox: bBox_Shell

MBS: AppleScript.Run (do shell script)
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Entwurf einer Schnittstelle für 

FileMaker
• Für den Anwender wird das noch einmal gekapselt, damit unabhängig vom
verfügbaren Plugin immer der gleiche Aufruf erfolgen kann. 

• Wrapper: SHELL(cmd;stdin;parm)
• Im Startskript wird das Betriebssystem geprüft (Mac OS) und ob
mindestens eines der Plugins installiert ist.

• Setzen und Abfragen von Flags siehe auch: 

FMM2017-01 S38 ff. und FMM2017-02 S. 22 ff.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Ausführung in FileMaker
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Einige Builtin-Funktionen in awk
length[(x)] length($6)
int(x) int($2/10)
substr(s,m,n) substr(s,3,$1)
index(s,t) index("172-518","-")
match(s,r) match($2,"[X-Z][0-9]+")
Setzt die Builtin-Variablen RSTART und RLENGTH
split(s,a,r) split("JAN,FEB,MRZ",m,",")
Belegt ein Array a mit den Komponenten von s
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Einige Builtin-Funktionen in awk
sub(r,t[,s]) sub(" +"," ",$1)
global mit gsub(r,t[,s])
printf(fmt,expr,…) formatierte Ausgabe
Beispiele
printf("%5dn",zahl) 5 Stellen rechtsbündig
printf("%07dn",zahl) 7 St. mit führenden Nullen
printf("%s : %9.2f ","Summe",s) mit 2 Kommastellen
printf(" %*d",l,zahl) Ausgabelänge steht in l
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Einige Unterschiede zwischen C u. awk
Die Syntax der awk-Skriptsprache ist C-like.

Es gibt aber Unterschiede zu C.
In awk gibt es keine Pointer, folglich auch keine Pointerarithmetik.
Stringvariablen lassen sich mit -konstanten vergleichen

z.B.: $1 == "PLZ"
Den Kommaoperator aus C gibt es nicht in awk.
In awk muss die letzte Anweisung einer Zeile nicht mit Semikolon enden.
Variablen müssen nicht definiert werden. Typ ergibt sich aus Kontext und

kann sich kontextabhängig ändern.
awk unterstützt assoziative Arrays
awk unterstützt keine mehrdimensionalen Arrays
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Spezielle Ausdrücke und Operatoren in awk
x = a+2*p; x == a+2*p
x != 3
Inkrement/Dekrement Bedeutung
x = ++n; n=n+1;x=n;
Wertzuweisung Vergleich
x = n++; x=n;n=n+1;
x = —-n; n=n-1;x=n;
x = n—-; x=n;n=n-1;
Zusammengesetzte Wertzuweisung Bedeutung
s += k; s = s + k;
s *= 2; s = s * 2;
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Spezielle Steuerungselemente awk
awk kennt alle Sprachemente zur Programmsteuerung aus C
Zusätzlich:
for( var in array) # for-Schleife für assoziative arrays
Beispiel: for( m in monat) print m,monat[m];
next; # übergeht die restlichen Aktionen des awk-Programms 

(liest die nächste Zeile)
nextfile; # beendet die Verarbeitung der aktuellen Eingabedatei
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Literatur
• Helmut Herold: 

UNIX Grundlagen 

Kommandos und Konzepte

ADDISON-WESLEY 1991 ISBN 3-89319-306-5

• Helmut Herold:

UNIX-Shells

Bourne-Shell, Korn-Shell, C-Shell

ADDISON-WESLEY 1992 ISBN 3-89319-381-2 

• Helmut Herold:

AWK und SED

ADDISON-WESLEY 1991 ISBN 3-89319-344-8

• Kai Surendorf:

Mac OS X Snow Leopard und UNIX

Galileo Press 2010 ISBN 978-3-8362-1476-6

• Erich Schmidt

Listen listig verarbeiten

FMM2016-03 S. 31ff. K&K Verlag Hamburg

• Erich Schmidt

Outsourcing von Verarbeitungsschleifen

FMM2017-06 S. 10ff. K&K Verlag Hamburg
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt
Fragen und Antworten
Der Idealfall: Sie fragen, ich antworte.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Vortrag und Sprecher
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages

Weitere ähnliche Inhalte

Was ist angesagt?

FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinVerein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinVerein FM Konferenz
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg KösterVerein 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
 
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner StaubFMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner StaubVerein FM Konferenz
 
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...Verein FM Konferenz
 
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...Verein FM Konferenz
 
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...Verein FM Konferenz
 
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael HeiderFMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael HeiderVerein FM Konferenz
 
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...Verein 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
 
FMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - RecyclingFMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - RecyclingVerein FM Konferenz
 
FMK2017 - Die Anker Boje Methode by Gerhard Schwingenschlögl
FMK2017 - Die Anker Boje Methode by Gerhard SchwingenschlöglFMK2017 - Die Anker Boje Methode by Gerhard Schwingenschlögl
FMK2017 - Die Anker Boje Methode by Gerhard SchwingenschlöglVerein FM Konferenz
 
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard SchulzFMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulzschubec
 
FMK2019 Layout Rechnungsdruck mit Übertrag und Gesamtbetrag by Swen Bauer
FMK2019 Layout Rechnungsdruck mit Übertrag und Gesamtbetrag by Swen BauerFMK2019 Layout Rechnungsdruck mit Übertrag und Gesamtbetrag by Swen Bauer
FMK2019 Layout Rechnungsdruck mit Übertrag und Gesamtbetrag by Swen BauerVerein FM Konferenz
 
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.comFMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.comVerein FM Konferenz
 
FMK2017 - FileMaker Server in der Cloud by Volker Krambrich
FMK2017 - FileMaker Server in der Cloud by Volker KrambrichFMK2017 - FileMaker Server in der Cloud by Volker Krambrich
FMK2017 - FileMaker Server in der Cloud by Volker KrambrichVerein FM Konferenz
 
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterFMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterVerein FM Konferenz
 
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
 
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...Verein FM Konferenz
 

Was ist angesagt? (20)

FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
 
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
 
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner StaubFMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
 
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
FMK2019 FileMaker und externe Authentifizierung Rechteverwaltung mit Active D...
 
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
 
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
 
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael HeiderFMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider
 
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
 
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
 
FMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - RecyclingFMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - Recycling
 
FMK2017 - Die Anker Boje Methode by Gerhard Schwingenschlögl
FMK2017 - Die Anker Boje Methode by Gerhard SchwingenschlöglFMK2017 - Die Anker Boje Methode by Gerhard Schwingenschlögl
FMK2017 - Die Anker Boje Methode by Gerhard Schwingenschlögl
 
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard SchulzFMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
FMK2015 FileMaker Server Netzwerk & Perfomance by Bernhard Schulz
 
FMK2019 Layout Rechnungsdruck mit Übertrag und Gesamtbetrag by Swen Bauer
FMK2019 Layout Rechnungsdruck mit Übertrag und Gesamtbetrag by Swen BauerFMK2019 Layout Rechnungsdruck mit Übertrag und Gesamtbetrag by Swen Bauer
FMK2019 Layout Rechnungsdruck mit Übertrag und Gesamtbetrag by Swen Bauer
 
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.comFMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
 
FMK2017 - FileMaker Server in der Cloud by Volker Krambrich
FMK2017 - FileMaker Server in der Cloud by Volker KrambrichFMK2017 - FileMaker Server in der Cloud by Volker Krambrich
FMK2017 - FileMaker Server in der Cloud by Volker Krambrich
 
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterFMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
 
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
 
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
 

Ähnlich wie FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt

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
 
FM2014: Einführung in Function Scripting by Thomas Hirt
FM2014: Einführung in Function Scripting by Thomas HirtFM2014: Einführung in Function Scripting by Thomas Hirt
FM2014: Einführung in Function Scripting by Thomas HirtVerein FM Konferenz
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...Verein FM Konferenz
 
Anforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScriptAnforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScriptChristian Baranowski
 
FMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
FMK2017 - REST mobil- die andere Serververbindung by Volker KrambrichFMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
FMK2017 - REST mobil- die andere Serververbindung by Volker KrambrichVerein FM Konferenz
 
FMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger DarjusFMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger DarjusVerein FM Konferenz
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenB1 Systems GmbH
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Nane Kratzke
 
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
 
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
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions
 
Linuxtools fuer Developer
Linuxtools fuer DeveloperLinuxtools fuer Developer
Linuxtools fuer DeveloperMayflower GmbH
 
FMK2017 - Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 -  Tools für FileMaker Entwickler by Alexis GehrtFMK2017 -  Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 - Tools für FileMaker Entwickler by Alexis GehrtVerein FM Konferenz
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSchlomo Schapiro
 
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
 
FMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
FMK2017 - Das iOS FileMaker URL Schema by Alexis GehrtFMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
FMK2017 - Das iOS FileMaker URL Schema by Alexis GehrtVerein FM Konferenz
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure NotebooksTEitelberg
 

Ähnlich wie FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt (20)

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...
 
FM2014: Einführung in Function Scripting by Thomas Hirt
FM2014: Einführung in Function Scripting by Thomas HirtFM2014: Einführung in Function Scripting by Thomas Hirt
FM2014: Einführung in Function Scripting by Thomas Hirt
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 
Anforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScriptAnforderungsanalsyse - Prototyping mit JavaScript
Anforderungsanalsyse - Prototyping mit JavaScript
 
FMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
FMK2017 - REST mobil- die andere Serververbindung by Volker KrambrichFMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
FMK2017 - REST mobil- die andere Serververbindung by Volker Krambrich
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
FMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger DarjusFMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger Darjus
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
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
 
elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09elemente websolutions - Zusammenfassung T3DD09
elemente websolutions - Zusammenfassung T3DD09
 
C++ kompakt
C++ kompaktC++ kompakt
C++ kompakt
 
Linuxtools fuer Developer
Linuxtools fuer DeveloperLinuxtools fuer Developer
Linuxtools fuer Developer
 
FMK2017 - Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 -  Tools für FileMaker Entwickler by Alexis GehrtFMK2017 -  Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 - Tools für FileMaker Entwickler by Alexis Gehrt
 
SLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauenSLAC 2008 RPMs selber bauen
SLAC 2008 RPMs selber bauen
 
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
 
FMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
FMK2017 - Das iOS FileMaker URL Schema by Alexis GehrtFMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
FMK2017 - Das iOS FileMaker URL Schema by Alexis Gehrt
 
Azure Notebooks
Azure NotebooksAzure Notebooks
Azure Notebooks
 

Mehr von 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 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 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 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp PulsFMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp PulsVerein FM Konferenz
 
FMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker KrambrichFMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker KrambrichVerein FM Konferenz
 

Mehr von Verein FM Konferenz (19)

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 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 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 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp PulsFMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
 
FMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker KrambrichFMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
 

FMK2019 Nutzung von Shell-Skripts in FileMaker by Erich Schmidt

  • 1. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 www.filemaker-konferenz.com Erweiterung des Leistungsumfangs von FileMaker durch Zugriff auf die UNIX-Tools des macOS Dipl.-Math. Erich Schmidt Nutzung von SHELL-Skripts in FileMaker
  • 2. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Über den Sprecher • 1974 Abschluss als Dipl.-Mathematiker
 (Universität Rostock) • ab 1978 Softwareentwicklung Mainframe (IBM 360) • Mitte der 80-er UNIX und C • Datenbankentwicklung seit 1990 (IBM AS/400) • ab 2005 freiberuflicher Softwareentwickler • ab 2013 mache ich nur noch, was richtig Spass macht
 FileMaker gehört manchmal auch dazu
 Erich Schmidt
  • 3. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Zum Thema • Motivation • Was macht die Shell im UNIX? • Stand-alone-Test von Skripts am Terminal • Entwurf eines User-Interfaces für FileMaker • Mögliche Plugins zur Unterstützung in FileMaker • Implementierung einer Skriptbibliothek in FileMaker • Einige Beispiele
  • 4. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Motivation • Die Verarbeitungslogik lässt sich in Form von Daten in einem Textfeld speichern. • Damit ist für ein neues Problem keine neue Funktion erforderlich, sondern nur ein neuer Datensatz. • Das System enthält eine umfangreiche Sammlung von Tools für die Analyse und Manipulation von Daten. • Viele der Tools arbeiten mit regulären Ausdrücken. • Es können eigene (z.B. in C oder C++) geschriebene Tools hinzugefügt werden. • Skripts lassen sich unabhängig von FileMaker erstellen und testen.

  • 5. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Die Shell • Die Shell ist ein zeilenorientiertes USER-Interface am Terminal. • Sie ist ein normales Tool, das Zeilen liest und damit "etwas" macht. • Wenn die gelesenen Zeilen von einem File kommen, nennt man das File ein Shell-Skript. • Es gibt mehrere Shells im System. • Für jeden Nutzer gibt es eine Standard-Shell (bei mir: /bin/bash). • Der Leistungsumfang ist immens. • Es gibt aber einige Grundlagen mit denen
 wir uns gleich beschäftigen, weil sie zum
 Verständnis der Beispiele erforderlich sind. ca. 900 Seiten
  • 6. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Die Bourne-again Shell (bash) • Die von der Shell gelesenen Zeilen werden ggf. aufbereitet und interpretativ abgearbeitet.
 Beispiel: • Es können aber auch mehrere Kommandos in einer Zeile stehen. Die müssen dann durch ein Kommandotrennzeichen getrennt werden. • Ein Kommandotrennzeichen ist das Semikolon. Es bewirkt, dass alle in der Zeile stehenden Kommandos hintereinander ausgeführt werden.
 Beispiel: • Ein weiteres ist der senkrechte Strich | (Pipe). Er bewirkt, dass die Ausgabe des links stehenden als Eingabe des rechts stehenden Kommandos verwendet wird (auch mehrfach hintereinander).
 Beispiel: • Es gibt noch weitere Kommandotrennzeichen ls -lsa cd /tmp;ls -ls ls | sort -r
  • 7. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Shell-Parametersubstitution • Die Paramtersubstitution ist eine von vielen Aufbereitiungsleistungen der Shell. • Stellungsparameter werden durch Angabe beim Aufruf eines Skripts oder Kommandos definiert
 MyScript -h 43 txt • Schlüsselwortparameter durch ein Schlüsselwort gefolgt von = und einem Wert
 KUNDE=7081 • Es gibt built-in-Parameter (PATH, PWD, LOGNAME, HOME, #, ?, PS1, PS2,…), 
 von denen einige read-only sind. • Die Shell scannt jede gelesene Zeile auf bestimmte Zeichen(folgen). (Metazeichen) • Das Metazeichen $ gefolgt von einer Nummer leitet eine Parametersubstitution ein
 $1 ersetzt die Shell durch den ersten, $2 durch den zweiten Stellungsparameter u.s.w. • Das Metazeichen $ gefolgt von einem Schlüsselwort wird durch den Wert des entsprechenden Schlüsselwortparameter ersetzt, zum Beispiel:
 $HOME --> /Users/fmk (die Tilde ~ ist ein Synonym für $HOME)
 $KUNDE --> 7081

  • 8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Stand-alone-Test von Skripts am Terminal • Ein spezielles Verzeichnis für Shell-Skripts anlegen (Im Finder oder im Terminal)
 cd;mkdir bin • In der .profile im HOME-Verzeichnis den PATH-Parameter ändern, so dass der PATH das Skriptverzeichnis enthält. 
 PATH=~/bin:$PATH • Die hidden files werden im Finder mit der Tastenkombination SHIFT-CMD-. sichtbar. Im Terminal mit ls -lsa • Mit einem beliebigen Text-Editor ein Skript-File erstellen. • Das Skript mit chmod u+x MySkript ausführbar setzen. • Skript unter seinem Filenamen im Terminal aufrufen und ggf. Parameter angeben.
 MySkript parm1 parm2
  • 9. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Das Tool awk • awk ist nur eines (wenn auch ein sehr mächtiges) von vielen Werkzeugen • Es ist speziell für die Analyse und Manipulation von Textdaten konzipiert • Die Verarbeitung geschieht so, dass eine oder mehrere Dateien zeilenweise gelesen und nach Regeln die der Aufrufer festlegt verarbeitet werden • Die Regeln enthält das awk-Programm • Aufrufvarianten:
 
 awk 'awk-programm' 
 
 awk -v V1=wert1 -v V2=Wert2 ... 'awk-programm'
 
 Beispiel: 
 awk -v N=$1 -v M=$2 'awk-programm'
  • 10. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Regeln bei Ausführung eines awk-Programms • Ein awk-Programm liest alle Eingabezeilen (Daten). • Für jede Zeile wird das gesamte awk-Programm ausgeführt • Eine Programmzeile hat die Form: bedingung { aktion } • Wenn die gelesene Zeile die Bedingung erfüllt, wird die Aktion ausgeführt, sonst nicht. Eine Bedingung die fehlt, ist immer erfüllt. • Jede Eingabezeile wird automatisch in Felder aufgeteilt. Zwischen den Feldern steht das Feldtrennzeichen. Das wird in der Builtin-Variablen FS definiert. (FS=" ") • Beim Lesen einer Datenzeile werden die Builtin-Variablen NR (Number of Record) und NF (Number of Fields) neu gesetzt. • Die Aktionen, die unter den Bedingungen BEGIN bzw. END codiert sind werden vor dem Lesen der ersten bzw. nach dem Lesen der letzten Zeile ausgeführt.
  • 11. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Entwurf einer Schnittstelle für FileMaker • Für die Skriptausführung wird benötigt:
 Skripttext
 Daten (optional)
 Parameter (optional, werden als Liste übergeben) • Dafür gibt es für jedes unterstützte Plugin eine CF mit diesen 3 Parametern • Die CFs stellen ein ablauffähiges Skript zusammen und rufen jeweils die entsprechende Plugin-Funktion auf.
 Die Daten werden als Here Document in das Skript integriert und dem ersten Kommando zugeordnet. • Die Plugin-Funktionen sind für 
 BaseElements: BE_ExecuteSystemCommand
 bBox: bBox_Shell
 MBS: AppleScript.Run (do shell script)
  • 12. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Entwurf einer Schnittstelle für FileMaker • Für den Anwender wird das noch einmal gekapselt, damit unabhängig vom verfügbaren Plugin immer der gleiche Aufruf erfolgen kann. • Wrapper: SHELL(cmd;stdin;parm) • Im Startskript wird das Betriebssystem geprüft (Mac OS) und ob mindestens eines der Plugins installiert ist. • Setzen und Abfragen von Flags siehe auch: 
 FMM2017-01 S38 ff. und FMM2017-02 S. 22 ff.
  • 13. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Ausführung in FileMaker
  • 14. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Einige Builtin-Funktionen in awk length[(x)] length($6) int(x) int($2/10) substr(s,m,n) substr(s,3,$1) index(s,t) index("172-518","-") match(s,r) match($2,"[X-Z][0-9]+") Setzt die Builtin-Variablen RSTART und RLENGTH split(s,a,r) split("JAN,FEB,MRZ",m,",") Belegt ein Array a mit den Komponenten von s
  • 15. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Einige Builtin-Funktionen in awk sub(r,t[,s]) sub(" +"," ",$1) global mit gsub(r,t[,s]) printf(fmt,expr,…) formatierte Ausgabe Beispiele printf("%5dn",zahl) 5 Stellen rechtsbündig printf("%07dn",zahl) 7 St. mit führenden Nullen printf("%s : %9.2f ","Summe",s) mit 2 Kommastellen printf(" %*d",l,zahl) Ausgabelänge steht in l
  • 16. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Einige Unterschiede zwischen C u. awk Die Syntax der awk-Skriptsprache ist C-like. Es gibt aber Unterschiede zu C. In awk gibt es keine Pointer, folglich auch keine Pointerarithmetik. Stringvariablen lassen sich mit -konstanten vergleichen z.B.: $1 == "PLZ" Den Kommaoperator aus C gibt es nicht in awk. In awk muss die letzte Anweisung einer Zeile nicht mit Semikolon enden. Variablen müssen nicht definiert werden. Typ ergibt sich aus Kontext und kann sich kontextabhängig ändern. awk unterstützt assoziative Arrays awk unterstützt keine mehrdimensionalen Arrays
  • 17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Spezielle Ausdrücke und Operatoren in awk x = a+2*p; x == a+2*p x != 3 Inkrement/Dekrement Bedeutung x = ++n; n=n+1;x=n; Wertzuweisung Vergleich x = n++; x=n;n=n+1; x = —-n; n=n-1;x=n; x = n—-; x=n;n=n-1; Zusammengesetzte Wertzuweisung Bedeutung s += k; s = s + k; s *= 2; s = s * 2;
  • 18. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Spezielle Steuerungselemente awk awk kennt alle Sprachemente zur Programmsteuerung aus C Zusätzlich: for( var in array) # for-Schleife für assoziative arrays Beispiel: for( m in monat) print m,monat[m]; next; # übergeht die restlichen Aktionen des awk-Programms 
 (liest die nächste Zeile) nextfile; # beendet die Verarbeitung der aktuellen Eingabedatei
  • 19. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Literatur • Helmut Herold: 
 UNIX Grundlagen 
 Kommandos und Konzepte
 ADDISON-WESLEY 1991 ISBN 3-89319-306-5 • Helmut Herold:
 UNIX-Shells
 Bourne-Shell, Korn-Shell, C-Shell
 ADDISON-WESLEY 1992 ISBN 3-89319-381-2 • Helmut Herold:
 AWK und SED
 ADDISON-WESLEY 1991 ISBN 3-89319-344-8 • Kai Surendorf:
 Mac OS X Snow Leopard und UNIX
 Galileo Press 2010 ISBN 978-3-8362-1476-6 • Erich Schmidt
 Listen listig verarbeiten
 FMM2016-03 S. 31ff. K&K Verlag Hamburg • Erich Schmidt
 Outsourcing von Verarbeitungsschleifen
 FMM2017-06 S. 10ff. K&K Verlag Hamburg
  • 20. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Nutzung von SHELL-Skripts in FileMaker - Dipl-Math. Erich Schmidt Fragen und Antworten Der Idealfall: Sie fragen, ich antworte.
  • 21. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Vortrag und Sprecher Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages