SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
FileMaker Plugin 
Entwicklung 
Christian Schmitz
FileMaker Plugin 
• FileMaker Plugin Schnittstelle 
• Für FileMaker 7 und neuer 
• Erlaubt eigene Funktionen in C, C++, Objective-C & 
Objective-C++ zu definieren
Plugins können nicht 
• Skriptschritte definieren/ändern 
• Zugriff nehmen auf WebDirect Seiten 
• Auf FileMaker Go laufen 
• Layouts ändern 
• Textausrichtung im Formatierten Text 
• Extended Data Source anbieten
Benötigt 
• Plugin SDK von FileMaker 
• Download auf filemaker.com 
http://www.filemaker.de/support/docs/fm_plugin_sdk.13.0.1.zip 
• Filemaker Plugin Template von 24U 
http://content.24usoftware.com/PlugInTemplate 
• Visual Studio für Windows 
• Xcode für Mac OS X
FileMaker SDK 13 
Bibliotheken von 
FileMaker 
C Header
FileMaker SDK 11 
Bibliotheken von 
FileMaker 
C Header 
Projekt Windows 
Beispiel! 
Projekt Mac OS X
Dokumentation? 
• Teilweise im C++ Quelltext
Dokumentation? 
• Teilweise im C++ Quelltext 
• Im Internet 
• http://fmplugins.idma.co.nz/index.php/Main_Page 
• Open Source Plugins lesen 
• Internet Foren 
• Viel probieren
Was ist ein Plugin? 
• Programm Bibliothek mit Metadaten 
• Mac 
• Bundle, 32/64bit 
• Dateiendung .fmplugin 
• Windows 
• Zwei DLLs: eine 32bit, eine 64bit 
• Dateiendungen fmx/fmx64
API 
• Klassen für Parameter/Ergebnis 
• Evaluate 
• StartScript 
• ExecuteFileSQL & ExecuteSQL
Klassen 
• Data 
• DataVect 
• BinaryData (Container) 
• Text 
• FixPt (Zahlen) 
• DateTime 
• CharacterStyle (für formatierten Text) 
• Locale
Plugin Configuration 
• Plugin name "MBS Plugin" 
• Plugin eindeutige 4 Zeichen ID "MBSP" 
• Version 
• Infotext 
• Funktionenliste
Funktionen 
• Plugin definiert Funktionen 
• C Funktion, e.g. MBS 
• ID (laufende Nummer) 
• FileMaker Deklaration, e.g. MBS(FunctionName) 
• Mindeste und maximale Anzahl Parameter 
• Flags: kMayEvaluateOnServer, kDisplayInAllDialogs
Leere Funktion 
FMX_PROC(fmx::errcode) Test 
(short funcId, 
const fmx::ExprEnv& environment, 
const fmx::DataVect& dataVect, 
fmx::Data& results) 
{ 
return 0; 
}
Funktionparameter in C 
• funcID: ID aus Funktionsdefinition 
• environment: Aktuelle Umgebung für 
Evaluate, ExecuteSQL, StartScript 
• dataVect: Parameterliste aus FileMaker
Funktionsergebnis in C 
• results: Variable für Ergebnis der Funktion 
• Ergebnis der Funktion hier zuweisen 
• Text, Zeitstempel, Zahlen, Container 
• errcode: Fehlercode für Rückgabe 
• Hole ( LetzteFehlerNr )
Hello World Funktion 
{ 
fmx::TextAutoPtr resultText; 
resultText->Assign("Hello World"); 
return result.SetAsText( *resultText, 
result.GetLocale() ); 
}
AutoPtr 
• C++ Memory Management 
• const &fmx::Text &text 
• Referenz von FileMaker für existierendes Objekt 
• fmx::TextAutoPtr 
• Neues Objekt zum Ändern 
• Wird automatisch freigegeben, wenn Funktion endet.
AutoPtr 
• TextAutoPtr 
• FixPtAutoPtr 
• DateTimeAutoPtr 
• BinaryDataAutoPtr 
• DataAutoPtr 
• ColorAutoPtr 
• CharacterStyleAutoPtr 
• QuadCharAutoPtr 
• LocaleAutoPtr 
• DataVectAutoPtr 
• RowVectAutoPtr 
• ExprEnvAutoPtr
Addieren Funktion 
const fmx::FixPt &Zahl1 = dataVect.AtAsNumber(0); 
const fmx::FixPt &Zahl2 = dataVect.AtAsNumber(1); 
fmx::FixPtAutoPtr Ergebnis; 
num->AssignFixPt( Zahl1 ); 
num->Add( Zahl2, *Ergebnis ); 
results.SetAsNumber(*Ergebnis); 
return 0;
Großbuchstaben Funktion 
const fmx::Text &text = dataVect.AtAsText(0); 
fmx::TextAutoPtr resultText; 
resultText->SetText(text); 
resultText->Uppercase(); 
return results.SetAsText( *resultText, 
results.GetLocale() ); 
• Mit den Text Funktionen vom Plugin SDK
Großbuchstaben Funktion 
char buffer[200] = {0}; 
const fmx::Text &text = dataVect.AtAsText(0); 
text.GetBytes(buffer, sizeof(buffer), 0, 
fmx::Text::kSize_End, fmx::Text::kEncoding_UTF8); 
char* b = buffer; 
while (*b) 
{ 
*b = toupper(*b); 
b++; 
} 
fmx::TextAutoPtr resultText; 
resultText->Assign(buffer, fmx::Text::kEncoding_UTF8); 
return results.SetAsText( *resultText, 
results.GetLocale() );
Anzahl Parameter 
if (dataVect.Size() < 2) 
{ 
return kErrorParameterMissing; // 102 
}
SDK Kompatibilität 
• Neuere SDKs definieren neue SDK Funktionen 
• FM13 SDK bei Windows inkompatibel zu FM12. 
• Weak Linking hilft.
Trying 24U Template 
• Template laden 
• Xcode & Visual C Projekte kopieren und aktualisieren 
• eventuell kleine Fixes für aktuelles Mac/Win SDK 
• Eigene PLUGIN_ID_STRING festlegen! 
• Eigene Funktion definieren 
• Probieren & Testen
Fragen? 
• Demo
Danke für das Bewerten dieses Vortrages 
Vortragende(r) 
Titel Vortrag 
Vielen Dank unseren Sponsoren 
FileMaker Konferenz 2014 Winterthur 
www.filemaker-konferenz.com

Más contenido relacionado

Destacado

Wetterbeobachtung - Ein Vortrag für die Grundschule
Wetterbeobachtung - Ein Vortrag für die GrundschuleWetterbeobachtung - Ein Vortrag für die Grundschule
Wetterbeobachtung - Ein Vortrag für die GrundschuleRainer Gerhards
 
Ausschreibung 13. Karate-Cup Winterthur
Ausschreibung 13. Karate-Cup WinterthurAusschreibung 13. Karate-Cup Winterthur
Ausschreibung 13. Karate-Cup WinterthurKarateWinti
 
Das Ertragbaum System
Das Ertragbaum SystemDas Ertragbaum System
Das Ertragbaum Systemertragbaum
 
Porsia expo antisemitismus
Porsia expo antisemitismusPorsia expo antisemitismus
Porsia expo antisemitismusCarla Blaumann
 
171 Webber Springs Drive Inwood WV 25428
171 Webber Springs Drive Inwood WV 25428171 Webber Springs Drive Inwood WV 25428
171 Webber Springs Drive Inwood WV 25428Heather Harley
 
Governance, Risk & Compliance
Governance, Risk & ComplianceGovernance, Risk & Compliance
Governance, Risk & ComplianceUwe Rydzek
 
Geld und Weltfinanzsystem
Geld und WeltfinanzsystemGeld und Weltfinanzsystem
Geld und WeltfinanzsystemJens Janssen
 
Werteerziehung für kinder: Demut - Moral Values: Humility
Werteerziehung für kinder: Demut - Moral Values: HumilityWerteerziehung für kinder: Demut - Moral Values: Humility
Werteerziehung für kinder: Demut - Moral Values: HumilityFreekidstories
 
yavalu CeBIT 2012 - Managing Trust
yavalu CeBIT 2012 - Managing Trustyavalu CeBIT 2012 - Managing Trust
yavalu CeBIT 2012 - Managing Trustyavalu
 
52 Wochen Erfolg mit Geschäftskunden - Kapitel 01 Prinzipien
52 Wochen Erfolg mit Geschäftskunden - Kapitel 01 Prinzipien52 Wochen Erfolg mit Geschäftskunden - Kapitel 01 Prinzipien
52 Wochen Erfolg mit Geschäftskunden - Kapitel 01 PrinzipienStephan Heinrich
 
Hsp aufgabenohne tr
Hsp aufgabenohne trHsp aufgabenohne tr
Hsp aufgabenohne trkkreienbrink
 
Zehn Hinweise für Architekten
Zehn Hinweise für ArchitektenZehn Hinweise für Architekten
Zehn Hinweise für Architektenadesso AG
 
FMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwFMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwVerein FM Konferenz
 
Infografik: Was Pressestellen wirklich erfolgreich macht
Infografik: Was Pressestellen wirklich erfolgreich machtInfografik: Was Pressestellen wirklich erfolgreich macht
Infografik: Was Pressestellen wirklich erfolgreich machtFaktenkontor
 
Die Geschichte des Schreibens
Die Geschichte des SchreibensDie Geschichte des Schreibens
Die Geschichte des Schreibenshabasch
 

Destacado (20)

Obo tab 2-2013
Obo tab 2-2013Obo tab 2-2013
Obo tab 2-2013
 
Wetterbeobachtung - Ein Vortrag für die Grundschule
Wetterbeobachtung - Ein Vortrag für die GrundschuleWetterbeobachtung - Ein Vortrag für die Grundschule
Wetterbeobachtung - Ein Vortrag für die Grundschule
 
Ausschreibung 13. Karate-Cup Winterthur
Ausschreibung 13. Karate-Cup WinterthurAusschreibung 13. Karate-Cup Winterthur
Ausschreibung 13. Karate-Cup Winterthur
 
Gatlinburg Tourism Summit
Gatlinburg Tourism SummitGatlinburg Tourism Summit
Gatlinburg Tourism Summit
 
TPM Lehrgang 2012
TPM Lehrgang 2012TPM Lehrgang 2012
TPM Lehrgang 2012
 
Das Ertragbaum System
Das Ertragbaum SystemDas Ertragbaum System
Das Ertragbaum System
 
Porsia expo antisemitismus
Porsia expo antisemitismusPorsia expo antisemitismus
Porsia expo antisemitismus
 
171 Webber Springs Drive Inwood WV 25428
171 Webber Springs Drive Inwood WV 25428171 Webber Springs Drive Inwood WV 25428
171 Webber Springs Drive Inwood WV 25428
 
Governance, Risk & Compliance
Governance, Risk & ComplianceGovernance, Risk & Compliance
Governance, Risk & Compliance
 
B2E
B2EB2E
B2E
 
Geld und Weltfinanzsystem
Geld und WeltfinanzsystemGeld und Weltfinanzsystem
Geld und Weltfinanzsystem
 
Werteerziehung für kinder: Demut - Moral Values: Humility
Werteerziehung für kinder: Demut - Moral Values: HumilityWerteerziehung für kinder: Demut - Moral Values: Humility
Werteerziehung für kinder: Demut - Moral Values: Humility
 
Saber 9
Saber 9Saber 9
Saber 9
 
yavalu CeBIT 2012 - Managing Trust
yavalu CeBIT 2012 - Managing Trustyavalu CeBIT 2012 - Managing Trust
yavalu CeBIT 2012 - Managing Trust
 
52 Wochen Erfolg mit Geschäftskunden - Kapitel 01 Prinzipien
52 Wochen Erfolg mit Geschäftskunden - Kapitel 01 Prinzipien52 Wochen Erfolg mit Geschäftskunden - Kapitel 01 Prinzipien
52 Wochen Erfolg mit Geschäftskunden - Kapitel 01 Prinzipien
 
Hsp aufgabenohne tr
Hsp aufgabenohne trHsp aufgabenohne tr
Hsp aufgabenohne tr
 
Zehn Hinweise für Architekten
Zehn Hinweise für ArchitektenZehn Hinweise für Architekten
Zehn Hinweise für Architekten
 
FMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwFMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten Risseeuw
 
Infografik: Was Pressestellen wirklich erfolgreich macht
Infografik: Was Pressestellen wirklich erfolgreich machtInfografik: Was Pressestellen wirklich erfolgreich macht
Infografik: Was Pressestellen wirklich erfolgreich macht
 
Die Geschichte des Schreibens
Die Geschichte des SchreibensDie Geschichte des Schreibens
Die Geschichte des Schreibens
 

Similar a FMK2014: FileMaker Plugin erzeugen by Christian Schmitz

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
 
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischVerein FM Konferenz
 
FMK2015: MBS FileMaker Plugin by Christian Schmitz
FMK2015: MBS FileMaker Plugin by Christian SchmitzFMK2015: MBS FileMaker Plugin by Christian Schmitz
FMK2015: MBS FileMaker Plugin by Christian SchmitzVerein FM Konferenz
 
FMK 2013 Xojo, Christian Schmitz
FMK 2013 Xojo, Christian SchmitzFMK 2013 Xojo, Christian Schmitz
FMK 2013 Xojo, Christian SchmitzVerein FM Konferenz
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for BeginnersUlrich Krause
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & DominoUlrich Krause
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenChristian Münch
 
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkTYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkdie.agilen GmbH
 
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Christian Wenz
 
FMK 2013 Schnittstellen Datenaustausch, Longin Ziegler
FMK 2013 Schnittstellen Datenaustausch, Longin ZieglerFMK 2013 Schnittstellen Datenaustausch, Longin Ziegler
FMK 2013 Schnittstellen Datenaustausch, Longin ZieglerVerein FM Konferenz
 
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
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht SkriptsprachenA. LE
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersUlrich Krause
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere RESTMartin Abraham
 
FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)
FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)
FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)Verein FM Konferenz
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetRalf Abramowitsch
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit WordpressBlogwerk AG
 

Similar a FMK2014: FileMaker Plugin erzeugen by Christian Schmitz (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
 
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
 
FMK2015: MBS FileMaker Plugin by Christian Schmitz
FMK2015: MBS FileMaker Plugin by Christian SchmitzFMK2015: MBS FileMaker Plugin by Christian Schmitz
FMK2015: MBS FileMaker Plugin by Christian Schmitz
 
FMK 2013 Xojo, Christian Schmitz
FMK 2013 Xojo, Christian SchmitzFMK 2013 Xojo, Christian Schmitz
FMK 2013 Xojo, Christian Schmitz
 
C / C++ Api for Beginners
C / C++ Api for BeginnersC / C++ Api for Beginners
C / C++ Api for Beginners
 
C API for Lotus Notes & Domino
C API for Lotus Notes & DominoC API for Lotus Notes & Domino
C API for Lotus Notes & Domino
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerkTYPO3 CMS 7.5 - Die Neuerungen - pluswerk
TYPO3 CMS 7.5 - Die Neuerungen - pluswerk
 
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
Kommunikations-APIs von JavaScript (International PHP Conference/WebTechCon 2...
 
FMK 2013 Schnittstellen Datenaustausch, Longin Ziegler
FMK 2013 Schnittstellen Datenaustausch, Longin ZieglerFMK 2013 Schnittstellen Datenaustausch, Longin Ziegler
FMK 2013 Schnittstellen Datenaustausch, Longin Ziegler
 
Windows Powershell
Windows PowershellWindows Powershell
Windows Powershell
 
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
 
Übersicht Skriptsprachen
Übersicht SkriptsprachenÜbersicht Skriptsprachen
Übersicht Skriptsprachen
 
C/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino DevelopersC/ C++ for Notes & Domino Developers
C/ C++ for Notes & Domino Developers
 
Ist GraphQL das bessere REST
Ist GraphQL das bessere RESTIst GraphQL das bessere REST
Ist GraphQL das bessere REST
 
FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)
FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)
FMK2014: MBS FileMaker Plugin by Christian Schmitz (sponsored Session)
 
Einstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSetEinstieg in das Windows Installer XML (WiX) ToolSet
Einstieg in das Windows Installer XML (WiX) ToolSet
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
 
Was ist neu in .NET 4.5?
Was ist neu in .NET 4.5?Was ist neu in .NET 4.5?
Was ist neu in .NET 4.5?
 

Más de Verein FM Konferenz

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

Más de Verein FM Konferenz (20)

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

FMK2014: FileMaker Plugin erzeugen by Christian Schmitz

  • 1. FileMaker Plugin Entwicklung Christian Schmitz
  • 2. FileMaker Plugin • FileMaker Plugin Schnittstelle • Für FileMaker 7 und neuer • Erlaubt eigene Funktionen in C, C++, Objective-C & Objective-C++ zu definieren
  • 3. Plugins können nicht • Skriptschritte definieren/ändern • Zugriff nehmen auf WebDirect Seiten • Auf FileMaker Go laufen • Layouts ändern • Textausrichtung im Formatierten Text • Extended Data Source anbieten
  • 4. Benötigt • Plugin SDK von FileMaker • Download auf filemaker.com http://www.filemaker.de/support/docs/fm_plugin_sdk.13.0.1.zip • Filemaker Plugin Template von 24U http://content.24usoftware.com/PlugInTemplate • Visual Studio für Windows • Xcode für Mac OS X
  • 5. FileMaker SDK 13 Bibliotheken von FileMaker C Header
  • 6. FileMaker SDK 11 Bibliotheken von FileMaker C Header Projekt Windows Beispiel! Projekt Mac OS X
  • 7. Dokumentation? • Teilweise im C++ Quelltext
  • 8. Dokumentation? • Teilweise im C++ Quelltext • Im Internet • http://fmplugins.idma.co.nz/index.php/Main_Page • Open Source Plugins lesen • Internet Foren • Viel probieren
  • 9. Was ist ein Plugin? • Programm Bibliothek mit Metadaten • Mac • Bundle, 32/64bit • Dateiendung .fmplugin • Windows • Zwei DLLs: eine 32bit, eine 64bit • Dateiendungen fmx/fmx64
  • 10. API • Klassen für Parameter/Ergebnis • Evaluate • StartScript • ExecuteFileSQL & ExecuteSQL
  • 11. Klassen • Data • DataVect • BinaryData (Container) • Text • FixPt (Zahlen) • DateTime • CharacterStyle (für formatierten Text) • Locale
  • 12. Plugin Configuration • Plugin name "MBS Plugin" • Plugin eindeutige 4 Zeichen ID "MBSP" • Version • Infotext • Funktionenliste
  • 13. Funktionen • Plugin definiert Funktionen • C Funktion, e.g. MBS • ID (laufende Nummer) • FileMaker Deklaration, e.g. MBS(FunctionName) • Mindeste und maximale Anzahl Parameter • Flags: kMayEvaluateOnServer, kDisplayInAllDialogs
  • 14. Leere Funktion FMX_PROC(fmx::errcode) Test (short funcId, const fmx::ExprEnv& environment, const fmx::DataVect& dataVect, fmx::Data& results) { return 0; }
  • 15. Funktionparameter in C • funcID: ID aus Funktionsdefinition • environment: Aktuelle Umgebung für Evaluate, ExecuteSQL, StartScript • dataVect: Parameterliste aus FileMaker
  • 16. Funktionsergebnis in C • results: Variable für Ergebnis der Funktion • Ergebnis der Funktion hier zuweisen • Text, Zeitstempel, Zahlen, Container • errcode: Fehlercode für Rückgabe • Hole ( LetzteFehlerNr )
  • 17. Hello World Funktion { fmx::TextAutoPtr resultText; resultText->Assign("Hello World"); return result.SetAsText( *resultText, result.GetLocale() ); }
  • 18. AutoPtr • C++ Memory Management • const &fmx::Text &text • Referenz von FileMaker für existierendes Objekt • fmx::TextAutoPtr • Neues Objekt zum Ändern • Wird automatisch freigegeben, wenn Funktion endet.
  • 19. AutoPtr • TextAutoPtr • FixPtAutoPtr • DateTimeAutoPtr • BinaryDataAutoPtr • DataAutoPtr • ColorAutoPtr • CharacterStyleAutoPtr • QuadCharAutoPtr • LocaleAutoPtr • DataVectAutoPtr • RowVectAutoPtr • ExprEnvAutoPtr
  • 20. Addieren Funktion const fmx::FixPt &Zahl1 = dataVect.AtAsNumber(0); const fmx::FixPt &Zahl2 = dataVect.AtAsNumber(1); fmx::FixPtAutoPtr Ergebnis; num->AssignFixPt( Zahl1 ); num->Add( Zahl2, *Ergebnis ); results.SetAsNumber(*Ergebnis); return 0;
  • 21. Großbuchstaben Funktion const fmx::Text &text = dataVect.AtAsText(0); fmx::TextAutoPtr resultText; resultText->SetText(text); resultText->Uppercase(); return results.SetAsText( *resultText, results.GetLocale() ); • Mit den Text Funktionen vom Plugin SDK
  • 22. Großbuchstaben Funktion char buffer[200] = {0}; const fmx::Text &text = dataVect.AtAsText(0); text.GetBytes(buffer, sizeof(buffer), 0, fmx::Text::kSize_End, fmx::Text::kEncoding_UTF8); char* b = buffer; while (*b) { *b = toupper(*b); b++; } fmx::TextAutoPtr resultText; resultText->Assign(buffer, fmx::Text::kEncoding_UTF8); return results.SetAsText( *resultText, results.GetLocale() );
  • 23. Anzahl Parameter if (dataVect.Size() < 2) { return kErrorParameterMissing; // 102 }
  • 24. SDK Kompatibilität • Neuere SDKs definieren neue SDK Funktionen • FM13 SDK bei Windows inkompatibel zu FM12. • Weak Linking hilft.
  • 25. Trying 24U Template • Template laden • Xcode & Visual C Projekte kopieren und aktualisieren • eventuell kleine Fixes für aktuelles Mac/Win SDK • Eigene PLUGIN_ID_STRING festlegen! • Eigene Funktion definieren • Probieren & Testen
  • 27. Danke für das Bewerten dieses Vortrages Vortragende(r) Titel Vortrag Vielen Dank unseren Sponsoren FileMaker Konferenz 2014 Winterthur www.filemaker-konferenz.com