© 1994 – 2016 K&K Verlag GmbH, Hamburg 201601 Einzelausgabe PDF € 12,00 | www.filemaker-magazin.de Das unabhängige Magazin für FileMaker Anwender und Entwickler Eigene iOS-Apps erstellen Jetzt auch mit FileMaker Datenbanken mit Emotionen Emojis Universaltalente Platzhalter Eigene Prioritäten setzen Freies Sortieren Bedingt aktivieren © 1994 – 2016 K&K Verlag GmbH, Hamburg Tasten SSL-Zertifikate akzeptieren FileMaker Server FMM_201601 Impressum FileMaker Magazin Ausgabe FMM_201601 Verlag K&K Verlag GmbH Große Brunnenstraße 43 22763 Hamburg Deutschland Telefon +49 40 5896579 -70 Telefax +49 40 5896579 -77 E-Mail [email protected] URL www.filemaker-magazin.de Twitter FMM_online Facebook www.facebook.com /FileMakerMagazin USt.ID DE170926882 Herausgeber & Redaktion Klemens Kegebein (v. i. S. d. P.) Autoren dieser Ausgabe Thomas Hirt Arnold Kegebein Klaus Kegebein Jörg Köster Christian Schmitz Thomas Siebert Jörg Wenzel Mitarbeiter dieser Ausgabe Layout, Satz, RZ Irene Karger, Thordsen-Verlag oHG Lektorat Sindy Meyer Druck Druckerei WIRmachenDRUCK GmbH Mühlbachstraße 7 71522 Backnang, Deutschland Anzeigen Gabriela Rajski-Gerigk-81 [email protected] Aboservice Telefon +49 40 5896579-81 E-Mail [email protected] Buchhaltung Maria Gerigk-Bruhn-82 [email protected] Marketing & Redaktion Gabriela Rajski-Gerigk-81 [email protected] Vertrieb/Lizenzberatung Holger Kuhn-85 [email protected] Vertrieb/Kundenservice [email protected] Bankverbindungen Hamburger Sparkasse BLZ 200 505 50 Kto.-Nr. 1293/122 998 IBAN DE83 2005 0550 1293 1229 98 SWIFT HASPDEHHXXX Hinweis für unsere Schweizer Kunden: Wir haben unser Postfinance-Konto auf­gelöst. Bitte zahlen Sie per SEPA-Über­ weisung auf unser vorstehendes Konto bei der Hamburger Sparkasse. Das FileMaker Magazin ist eine unabhängige Zeitschrift und erscheint seit Dezember 1994 im K&K Verlag in Hamburg (HRB 58514). Das FileMaker Magazin ist als Abonnement und im Einzelverkauf erhältlich. Es erscheinen sechs Ausgaben im Jahr. Das Abonnement verlängert sich um ein Jahr, wenn nicht bis sechs Wochen vor Ablauf schriftlich gekündigt wird. Der Preis für ein FMM Basis-Abo (PDF-Abo ohne Online-Abozugang) beträgt zur Zeit € 56; FMM Premium-Abo (druckbares PDF, OnlineZugang, Beispieldateien) € 85; FMM PremiumAbo+Print (wie FMM Premium-Abo, jedoch zusätzlich gedruckte Ausgaben; inkl. Versand) € 112 (alle Preise inkl. MwSt.). Zusatzinformationen wie Beispieldateien usw. zu dieser Ausgabe finden Sie im Abonnenten­ bereich im Internet unter www.filemakermagazin.de/abonnentenbereich/weblinks Es gilt die Anzeigenpreisliste vom 1.1.2015. Für unverlangt eingesandte Beiträge übernimmt der Verlag keine Haftung. Nachdruck, auch in Auszügen, nur mit schriftlicher Genehmigung des Verlages. Produkt-, Waren- und Firmen­ namen werden ohne Gewährleistung der frei­ en Verwendbarkeit benutzt. Der Verlag übernimmt keine Haftung für mög­ liche Fehler in den veröffentlichten Beiträgen. Gerichtsstand ist Hamburg. Namentlich ge­ kennzeichnete Beiträge geben nicht unbe­ dingt die Meinung der Redaktion wieder. Inserenten Telefon E-Mail Internet Seite* Sindy Meyer, Hamburg +49 151 74202175 [email protected] Arnold Kegebein, Hamburg +49 40 85372010 [email protected] www.kegebein.net [x] cross solution, Germering +49 89 84102570 [email protected] www.fm-crosscheck.com 31 Klaus Kegebein, Lübeck +49 451 7076671 [email protected] www.kegebein.de 36 [email protected] www.monkeybreadsoftware.de 36 Christian Schmitz Software GmbH, Nickenich +49 2632 958955 14 26 Wir bitten unsere Leser um freundliche Beachtung der Anzeigen dieser Ausgabe. Der gedruckten Auflage dieser Ausgabe liegt der FMM Jahreskalender 2016 bei. Inseratswünsche senden Sie bitte an [email protected] oder rufen uns an unter +49 40 589657970. *Die hier abgedruckten Seitenzahlen sind nicht rechtsverbindlich. Redaktionelle Gründe können Änderungen erforderlich machen. Zeichenerklärungen Bei einem Beitrag mit dem Zeichen Weblink finden Sie Beispieldateien auf un­se­ren Internetseiten. Wenn Sie das Symbol Webshop sehen, können Sie das Produkt beim K&K Verlag erwerben, z. B. über unseren Internetshop. Dieses Symbol bedeutet, dass Sie dort detaillierte In­for­ ma­tio­nen zu dem beschriebenen Buch oder Artikel lesen. Ab sofort zeigen wir mit Zeichen am Beginn eines Beitrages, wie wir einen Artikel einordnen. Mac bedeutet, dass sich der Artikel vorwiegend an Anwender des Betriebssystems Mac OS richtet. Zeigt der Beitrag das Symbol Win , sind vor allem die Nutzer der Plattform Windows angesprochen. Pro bedeutet: Dieser Beitrag richtet sich an Anwender, die FileMaker Pro besitzen, mit Pro Advanced markierte Tipps können nur mit der 2 Entwicklerversion FileMaker Pro Advanced nachvollzogen werden. Server betrifft den Server, bei Web geht es um die Internet­funktionen Go und behandelt FileMaker auf den mobilen Geräten iPhone, iPod touch und iPad. Wir halten uns bei der Schreibweise von Begriffen i. d. R. an die Form, die FileMaker in der Software verwendet, also Script und Scripts statt Skript und Skripte, Plugin statt Plug-in usw. Bei Internetadressen verzichten wir auf „http://“, wenn bereits durch das „www“ am Beginn deutlich wird, dass es sich um eine Webseite handelt. Müssen wir eine lange Internetadresse umbrechen, dann setzen wir dies so, dass keine zusätzlichen Zeichen erscheinen. FMM_201601 Inhalt Titel Fotolia Editorial Titelbild. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Christian Schmitz Winfried Huslik 3.1.1945 – 4.2.2016 Mobile Lösungen iOS App SDK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Eigene iOS-Apps auf Basis von FileMaker Gewusst wie Klaus Kegebein Freies Sortieren. . Arnold Kegebein Tasten bedingt deaktivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Durch Anklicken eine Reihenfolge festlegen . . . . . . . . . . . . . . . . . . . . 15 Eine in FileMaker vermisste Funktionen nachbilden In eigener Sache FMM Redaktion FMM Titelwahl 2015. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 … wer war der Schönste im letzten Jahr? Tipps & Tricks Thomas Siebert Jörg Köster Putzige Emojis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Die Strichmännchen werden erwachsen Platzhalter im Fokus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Tipps & Tricks FileMaker Server Beliebige SSL-Zertifikate für FileMaker Server 13 und 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wie man FileMaker Server dazu bringt, Zertifikate aller gängigen Certificate Authorities zu akzeptieren Thomas Hirt . . 23 Grundlagen Jörg Wenzel FileMaker und SQL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Sekt oder Selters – Transaktionen, Teil 11 FileMaker Stammtische 4 Plugins und Tools 10 Kleinanzeigen 26 Aktuelle Versionen 31 Neuigkeiten 32 Adressen 35 FMM_201601 Lieber Winfried! Eben noch haben wir uns in Ham­ burg bei der FileMaker Konferenz gesehen, wenn auch schon unter besonderen Umständen: Dich hatte es gleich nach dem Ankunftsabend aus der Spur geworfen. Den FMM Award, den ich Dir eigentlich am Abend vor Publikum überreichen wollte, musste ich Dir ins Kranken­ haus bringen. Und nun das … Kennen gelernt haben wir uns vor unglaublichen 21 Jahren! Du hast die Formulare für unsere aller­ erste FileMaker Lösung geliefert: „Überweisungen ausfüllen“ hieß ­das in FileMaker Pro 2.1 geschriebene Produkt und es konnte … Über­ weisungen bedrucken. Jahre später haben wir Deine Produkte FMDiff und FMvis verkauft – Tools, auf die FileMaker Entwickler und auch viele Kunden bald nicht mehr verzichten konnten und wollten – dafür hast Du auch den FMM Award bekommen! Weil Du die Struktur von FileMaker Dateien entschlüsselt hattest, ­konntest Du so manchem E­ ntwickler aus größter Pein helfen, wenn eine Datei rettungslos verloren schien: Bei Dir gab es Hoffnung auf Datenrettung, selbst wenn FileMaker schon abgewinkt hatte! Wir haben uns auf vielen Konfe­ renzen in Deutschland und den USA getroffen, Dich zu erkennen war nie schwer: Du hast gern breite Hosen­ träger getragen, oft in bayerischer Optik. Du wirst mir und vielen anderen in lebendiger Erinnerung bleiben. Alter Freund, mach’s gut! [email protected] 3 FileMaker Stammtisch FileMaker Stammtische Deutschland Berlin 1. Donnerstag des Monats Pforzheim 1. Donnerstag des Monats Jan Lankwitz [email protected] Braunschweig 2./3. Mittwoch des Monats Martin Hille Horst Baselt [email protected] [email protected] Marcel Moré [email protected] Rhein/Main 1. Donnerstag des Monats Hamburg 1. Donnerstag des Monats Thorsten Seliger [email protected] K&K Verlag [email protected] Koblenz 2. Donnerstag, alle 2 Monate (gerade) Christian Blaes [email protected] Köln alle 2 Monate nach Vereinbarung Roland Schneider filemakerstammtischkoeln.wordpress.com Leipzig 1. Donnerstag des Monats Dr. Karsten Wallberg [email protected] München Armin Egginger Saar-Lor-Lux (Saarbrücken) 1. Donnerstag des Monats Marcus Diederich www.filemaker-stammtisch-saarlorlux.de Ulm 2. Donnerstag des Monats Martin Schwarz [email protected] Schweiz 1. Donnerstag des Monats Bern Arthur Bonino Markus Schneider 2. Donnerstag des Monats [email protected] [email protected] [email protected] St. Gallen 1. Donnerstag des Monats Mutterstadt 1. Donnerstag des Monats Norbert Faul [email protected] Nürnberg 3. Freitag des Monats Alexis Gehrt Otmar Strässle Zürich [email protected] [email protected] 3. Dienstag, alle 2 Monate Manfred Petzold [email protected] Philipp Althaus www.filemaker-stammtisch-zuerich.ch Oldenburg 3. Mittwoch in Quartalsmitte Markus Schall [email protected] Österreich Wien Robert Zimmel Stefan Pusch Berlin Genau: Besuchen Sie doch mal eines der FileMaker Treffen, die sich seit vielen Jahren im deutschsprachigen Raum e­ ta­bliert haben. Sie finden meist an einem festen Wochentag einmal monatlich statt, oft am 1. Donners­tag des M ­ onats. Braunschweig Die Treffen wenden sich an das gesamte Spek­trum der FileMaker Anwender: an Einsteiger ebenso, wie an er­fahrene Ent­ wickler. Und Neuzugänge sind immer willkommen! Denn erst so ergibt sich die oft sehr produktive Mischung, von der alle pro­f itieren können. Leipzig Köln Koblenz Hofheim (Rhein/Main) Nürnberg Saar-Lor-Lux (Saarbrücken) Mutterstadt Pforzheim Ulm Zürich München Wien Essen und trinken in gemütlicher Runde gehören dazu. Hauptsache aber ist FileMaker. Mal als zwangloses „Show and Tell“, mal als der regelmäßige Austausch zu Diskussionsrunde, mal mit einem Vortrag zu speziellen Teilgebieten. Diese werden vom – übrigens ehrenamtlich tätigen – Veranstalter, namhaften Gastreferenten oder einem der Teilnehmer selbst bestritten. Neben neuen Erkenntnissen zu FileMaker soll sich auch schon der ein oder andere ­Geschäftskontakt eingestellt ­haben. Wann und wo? Alle FileMaker Stammtisch Termine sowie alle uns bekannten ­Änderungen finden Sie in unserer T­ ermin­vorschau im Internet unter St. Gallen Bern www.filemaker-magazin.de/filemaker-stammtische Stand: 29.02.2016 4 [email protected] [email protected] Wo können Sie sich allmonatlich gratis motivieren, coachen und begeistern lassen? Oder Ihre Erfahrungen, Fragestellungen oder Probleme mit anderen FileMaker Anwendern teilen? Hamburg Oldenburg 1. Donnerstag des Monats Dort gibt es auch Kontaktadressen zu den jeweiligen Veranstaltern, die Sie gern in ihren E-Mail-Verteiler aufnehmen und regelmäßig zu einem Treffen in Ihrer Nähe einladen werden. FMM_201601 © 1994 – 2016 K&K Verlag GmbH, Hamburg Mobile Lösungen Christian Schmitz (Jg. 1981) entwickelt seit 11 Jahren Software und seit 2006 auch FileMaker Plugins. Außerdem Plugins für Real Studio und allerlei Software für Mac OS X, Windows, Linux und iOS. [email protected] iOS App SDK Eigene iOS-Apps auf Basis von FileMaker Anfang Januar hat FileMaker still und heimlich ein neues Tool auf die Webseite gestellt. Das „iOS App SDK“ ermöglicht es erstmals, eine angepasste FileMaker Go Anwendung unter eigenem Namen zu veröffentlichen. Mithilfe des SDKs (= Software Development Kit) haben Entwickler nun die Möglichkeit, mit Xcode eine eigene iOS-Anwendung zu kompilieren. Das eigentliche Programm kommt komplett von FileMaker, aber die Verpackung kann angepasst werden. Ähnlich einer Runtime betten Sie dabei eine Datenbankdatei als Startdatei in die App ein, die beim Start aufgerufen wird und weitere lokale Datenbanken öffnen oder sich mit einem FileMaker Server verbinden kann. Ihre selbstgebaute iOS-App … n hat einen eigenen Namen und eine eindeutige Bundle-ID. n hat ein eigenes Programm-Icon. n hat eigene Grafiken für den Startbildschirm. n hat eine FileMaker Datenbank als Startpunkt, die zum FileMaker Server verbindet oder eine lokale Lösung bereitstellt. n hat ein eigenes URL-Schema zum Aufruf aus anderen Anwendungen, zum Beispiel einen Link in einer E-Mail. n kann direkt auf iPhones oder iPads installiert werden. n kann über Mobile Device Management in einer Firma verteilt werden. n kann eventuell sogar im iOS App Store angeboten w ­ erden. Das Ganze ist allerdings nicht für jedermann umsetzbar, denn es gibt Vorraussetzungen: Zum einen benötigen Sie das iOS App SDK, das Sie bei FileMaker laden können, sowie Xcode aus dem Mac App Store. Zusätzlich müssen Sie sowohl bei Apple als auch bei FileMaker zahlender Kunde sein und eine FileMaker Developer Subscription (79 €/Jahr) soFMM_201601 wie eine Apple Developer Subscription (99 €/Jahr) haben. Weiterhin sind Kenntnisse zur Benutzung von Terminal und Xcode durchaus hilfreich. Schritt für Schritt Wenn Sie über die oben genannten die Mitgliedschaften verfügen und sich bei Apple im „Member Center“ einloggen können, gehen Sie dort zu „Certificates, Identifiers & Profiles“. Im Abschnitt „Devices“ können Sie alle Ihre iOS-Geräte anmelden, die für die Entwicklung infrage kommen. Xcode installieren Sie über den Mac App Store und geben Ihre Apple-ID in den Voreinstellungen bei Accounts an. Dort können Sie auch gleich ein Zertifikat zum Entwickeln anfordern. Alternativ haben Sie die Möglichkeit, diese Zertifikate auf der Webseite anzulegen, auf der Sie Ihre iOS-Geräte angemeldet haben. Übrigens ist es hilfreich, zum Entwickeln eine separate AppleID zu benutzen, die Sie nicht für private Zwecke verwenden – also weder für den Mac App Store noch für iTunes. Diese Apple-ID benutzen Sie für die Mitgliedschaft im Apple Entwickler Programm und zum Login bei Xcode. iOS SDK laden und auspacken Im nächsten Schritt laden Sie das iOS SDK von der FileMaker Website (siehe Links) herunter – die Datei iOSAppSDK.tbz ist etwa 44 MB groß – und entpacken es per Doppelklick mit dem Archivierungsprogramm. Anschließend können Sie die iOS App SDK EULA.pdf lesen, die zum Beispiel die Information enthält, dass Sie mit jedem Programm auch die ­Lizenzbedingungen von FileMaker mitliefern müssen. 5 Mobile Lösungen App-ID iOS-Projekt anlegen Da die Bundle- bzw. App-IDs für Programme eindeutig sein müssen, schreibt man in der Regel eine Domain rückwärts – zum Beispiel „de.monkeybreadsoftware.myapp“ – und verwendet für jede App eine neue ID. Bei „App Services“ klicken Sie bitte die Häkchen für „iCloud“ und „Data Protection“ mit „Complete Protection“ an. Das sind Services, die Ihre FileMaker App braucht. Öffnen Sie das Programm Terminal auf Ihrem Mac und verwenden Sie dort den Befehl „cd“, um den Ordner zu wechseln. Geben Sie dazu „cd“ ein und ziehen Sie den iOS SDK Ordner vom Finder in das Terminal-Fenster. Wenn Sie dann die Eingabetaste drücken, sind Sie im Terminal in dem Ordner. Mit dem Befehl „pwd“ geben Sie den aktuellen Pfad aus und mit „ls“ können Sie sich die Liste der Dateien im Ordner ansehen. Geben Sie den Befehl „makeprojdir“ nach diesem Schema ein: In den Xcode-Voreinstellungen können Sie bei den Accounts ein „Provision Profile“ für die App laden. Sollte das nicht funktionieren, haben Sie die Möglichkeit, auf der Website ein „Provision Profile“ für die Entwicklung anzulegen und dann zu laden. Per Doppelklick auf das Profil installieren Sie dieses. ./makeprojdir <NewAppDir> <appName> <bundleIdentifier>. Hinter „makeprojdir“ kommt der Name des neuen Projektordners, anschließend der Name des Programms und dahinter der „Bundle Identifier“, also die App-ID, die Sie eben angelegt haben. Sollte ein Teil davon Leerzeichen beinhalten, übergeben Sie diesen Text mit Anführungszeichen, zum Beispiel „Meine App“. ./makeprojdir MyApp MyApp de.monkeybreadsoftware.myapp Der neue Ordner enthält nun einige Einträge: n MyApp.xcodeproj – die Xcode-Projektdatei n MyApp – der Ordner mit den App-Bestandteilen n iOSAppSDKResources – die Bestandteile aus dem iOS SDK von FileMaker n app.entitlements – die „Entitlements“-Datei, wo einige der App-Services explizit erlaubt werden Im „MyApp“-Ordner befinden sich: n Solution Files – der Ordner mit den FileMaker Datenbanken n Launch Screen.storyboard – das Storyboard für den Programmstart – hier kommt später das Startbild hinein n Info.plist – die Datei mit zentralen Einstellungen für die iOS-App n CustomAppMedia.xcassets – der Container, in dem die ganzen Assets, also Bilder, enthalten sind n configFile.txt – die Konfigurationsdatei n Base.lproj – die Main-Storyboard-Datei, die FileMaker benötigt Eigene Datenbank Register App ID.png – Die Apple-Webseite zum Registrieren einer App-ID. 6 Sie haben schon eine fertige FileMaker Datenbank, die gut unter FileMaker Go funktioniert? Dann können Sie das Xcode-Projekt öffnen und die Datenbank hineinziehen. Im Navigationsbereich, der sich im linken Teil des Projektfensters befindet, klicken Sie bei „Custom Application Resources“ auf das kleine Dreieck, um die Unterbereiche zu öffnen. Unter „Solution Files“ finden Sie die Datei Placeholder.fmp12, die Sie mit Ihrer eigenen Datenbank ersetzen können. Falls Sie mehrere Datenbanken haben, ist das auch kein Problem – fügen Sie diese einfach hier ein und folgen Sie den nächsten Schritten um festzulegen, welche Datei beim Start aufgerufen werden soll: FMM_201601 Mobile Lösungen Öffnen Sie die Datei ConfigFile.txt, die sich oberhalb des Solution-Files-Ordners befindet, indem Sie sie anklicken. Diese Datei enthält Befehle, die sowohl Mensch als auch Maschine lesen können: Zeilen, die mit „#“ beginnen, sind Kommentare, die erklären, worum es geht. Der Eintrag „launchSolu­tion“ in Zeile 8 gibt an, welche Datenbank beim Start geöffnet wird. Geben Sie hier den Namen Ihrer Datenbank exakt an und achten Sie auch auf die Groß- und Kleinschreibung. Beim Eintrag „helpURL“ können Sie einen Link zu einer Hilfe­seite angeben – fehlt dieser, wird im Menü kein Hilfe-Eintrag angezeigt. ( + B ) drücken, woraufhin der Compiler Ihnen darüber sowie über fehlende Bilder Auskunft gibt. Die Konfigurationsdatei, in der Sie die Einstellungen für Ihre FileMaker App festlegen. Der Eintrag „alwaysOverwrite“ erlaubt es, die Datenbank bei jedem Start zu überschreiben. Damit sie überhaupt bearbeitet werden kann, kopiert FileMaker die Datenbankdatei aus dem App-Ordner in den Dokumenten-Ordner. Nun kann es für eine Demoversion durchaus nützlich sein, die Datenbank bei jedem Start überschreiben zu lassen, damit das Programm alles vergisst, doch für die meisten Anwendungen sollte diese Option deaktiviert bleiben. Icons und Bilder Für das Programm-Icon brauchen Sie einige Bilder. Bestellen Sie Ihr Icon am besten direkt beim Grafiker als 1024x1024 Pixel großes PNG-Bild mit Transparenz – dann können Sie alle benötigten Größen durch Verkleinern auf 29, 40, 50, 57, 58, 72, 76, 80, 87, 100, 114, 120, 144, 152, 167 und 180 Pixel erzeugen. Man braucht nicht alle Bilder, da man ja nicht unbedingt alle iOS-Versionen unterstützt oder nur iPad bzw. iPhone. Wenn Sie alle Bilder einfügen, kann das so aussehen wie in der Abbildung rechts. Die minimalen Anforderungen für ein iPhone sind 120x120 Pixel für 2x Auflösung (Retina) und 180x180 Pixel für 3x ­(Retina beim iPhone 6s). Bei einem iPad werden minimal 76x76 Pixel für 1x und 152x152 Pixel für 2x benötigt. Für den App Store benötigen Sie noch ein 1024x1024 Pixel großes Icon. Um die Bilder einzufügen, öffnen Sie in der Navigationsleiste des Xcode Projekts den Eintrag „CustomAppMedia.xcasset“ und wählen Sie den „Asset Editor“ aus. Wenn Sie auf den ­ersten Eintrag namens „AppIcon“ klicken, erscheint rechts der Editor, in den Sie Bild für Bild aus dem Finder via Drag & Drop hineinziehen. Um herauszufinden, ob Sie die richtigen Bildgrößen haben, können Sie zwischendurch „Befehl-B“ FMM_201601 App Icons – In Xcode fügt man Icons in sämtlichen Größen ein, die jemals irgendwo gebraucht werden. Launch Image Weiter geht es im „CustomAppMedia.xcasset“, wo Sie das „LaunchImage“ anklicken und dort jeweils ein Bild für 1x, 2x und/oder 3x eintragen können. Dieses Bild wird beim Programmstart gezeigt und eventuell an den Rändern passend zum Bildschirm beschnitten. Daher empfiehlt sich es sich, ein quadratisches Bild mit Programmlogo oder Ähnlichem in der Mitte und viel Rand drumherum zu verwenden. Alternativ können Sie auch verschiedene Bildgrößen für die einzelnen Gräte nehmen – vom iPhone 4S (640x960 Pixel für 2x) bis zum iPhone 6 Plus (2208x1242 Pixel für 3x). Vorzugsweise bleiben Sie bei dem Universal Set von FileMaker mit drei Bildern, statt das ausführliche mit 20 Bildern zu verwenden. Security Shield Image Wenn Ihre Anwendung das „fmreauthenticate“-Recht zum wiederholten Anmelden benutzt, benötigen Sie noch ein Bild für den Bildschirm, den man während des Verbindungsaufbaus sieht. Dieses Bild sollte maximal 120 Pixel groß sein. Einstellungen Nun müssen noch einige Einstellungen im Projekt durchgeführt werden. Klicken Sie dazu in der Navigationsleiste auf das Projekt, woraufhin auf der rechten Seite die Einstellungen mit Reitern zu sehen sind. Ganz links sollte das Target mit Ihrem App-Namen ausgewählt sein. Im Reiter „Gene7 Mobile Lösungen ral“ können Sie die Versionsnummer festlegen, die dreiteilig anzugeben ist (z. B. 1.0.1). Falls Sie die App später im App Store veröffentlichen möchten, müssen Sie dort die Nummer exakt gleich eintippen, da Apple sonst den Upload verweigert. Weiter unten definieren Sie, welche Geräte Sie unterstützen – voreingestellt ist Universal, was iPhones und iPads beinhaltet. Im zweiten Reiter namens „Capabilities“ geben Sie an, was das Programm kann. Aktivieren Sie „Data Protection“, sodass FileMaker die Datenbank verschlüsselt ablegen kann. Wenn Sie ein URL-Schema definieren möchten, können Sie das im Reiter „Info“ tun. Klappen Sie den Bereich „URL Types“ auf und fügen Sie mit „+“ ein Schema hinzu. Den „Identifier“ denken Sie sich aus, es empfiehlt sich aber wieder die reverse Domain-Benennung, zum Beispiel „de.monkeybreadsoftware.myapp.url“. Weiterhin benötigen Sie einen Namen für die URL, der nicht „fmp“ sein darf. Wählen Sie beispielsweise „myapp“ als Namen, beginnen die URLs später mit „myapp:“. FMM im Simulator – Die Website des FileMaker Magazin im iOS-Simulator Auf das iPhone Um die App auf das iPhone zu bekommen, muss zunächst ganz oben in der Toolbar das iPhone als aktives Ziel ausgewählt werden. General Settings – Die allgemeinen Einstellungen zur iOS App in Xcode für Ver­ sion, minimale iOS-Version, Geräteauswahl und diverse andere Optionen. Starten Wenn Sie alles richtig eingestellt haben, lässt sich das Programm nun erstellen. Starten Sie den Vorgang entweder mit der Tastenkombination + B oder mit dem Menübefehl Product ➝ Build. Da sich Xcode bei mir die Provision-Profile leider nicht selbst geladen hat, musste ich nachhelfen: Dafür bin ich auf der Apple-Website „Certificates, Identifiers & Profiles“ auf „App ID Development“ gegangen, habe den „+“-Knopf angeklickt und „iOS App Development“ ausgewählt. Im nächsten Schritt fragt der Assistent nach der App-ID, woraufhin ich meine App aus der Liste ausgewählt habe. Anschließend habe ich mein Zertifikat angegeben, bei den Geräten oben das Häkchen für „Select All“ angeklickt und dem neuen Profil einen Namen gegeben. Das war schon fast alles – danach musste ich das Profil nur noch generieren, herunterladen und mit einem Doppelklick installieren. Viel passiert dabei nicht, außer dass es im Ordner „~/Library/MobileDevice/Provisioning Profiles“ eine neue Datei gibt. Mit + R bzw. dem Menübefehl Product ➝ Run starten Sie das Programm im Simulator – dort können Sie Ihre Anwendung testen, den Bildschirm rotieren lassen, den HomeButton drücken und vieles mehr. iOS Simulator Der iOS Simulator ist ein nützliches kleines Programm, das auch ohne Xcode läuft. Er liegt im Ordner /Applications/Xcode.app/Contents/ Developer/Applications/, aber man kann sich ein Alias an einer günsti­ geren Stelle anlegen. Wenn man den Simulator startet, kann man dort auch einige AppleAnwendungen benutzen. Die App Karten funktioniert durchaus und die News-App gibt es sonst nicht in Deutschland. Für alle Web-Designer ist es außerdem interessant, die eigenen Webseiten mit den Bildschirmauflösungen der verschiedenen iOS-Geräte in Safari anzuschauen. 8 Auswahl iPhone – Über das Target-Menü lässt sich auswählen, wo genau das Programm laufen soll – auf einem Gerät oder im Simulator. FMM_201601 Mobile Lösungen Mit + R bzw. dem Menübefehl Product ➝ Run startet das Programm auf dem iPhone. Wenn der Simulator aufgeht, schauen Sie bitte noch einmal, ob das Gerät im Popup-Menü oben ausgewählt ist. Wenn man dort anstelle des Geräts einen der Simulatoren auswählt, startet das Programm im Simulator. Installation Möchte man das Programm auf einem anderen iPhone oder iPad installieren, benötigt man die Gerätenummer (UDID). Die findet man zum Beispiel in iTunes, wenn man in der Übersicht des entsprechenden iPhones auf die Seriennummer klickt – mit einem Rechtsklick kann man sie auch direkt kopieren. Mithilfe dieser UDID kann man das Gerät auf der Apple Website zum „Provision Profile“ hinzufügen, das neue Profil herunterladen und installieren. Anschließend erzeugt man eine neue App, die jetzt auch auf einem anderen iOSGerät laufen darf. Zum Installieren kann iTunes oder Xcode verwendet werden. Bei Xcode ist das iPhone mit den installierten Programmen im Fenster „Organizer“ zu sehen und das neue Programm kann über den „+“-Knopf hinzugefügt werden. Wenn alles passt, startet das Programm auf dem iPhone durch Antippen. Updates Nun stellt sich noch die Frage, wie man Programm und Datenbank aktualisiert. Dafür gibt es mehrere Szenerien: Hat man lokal nur eine Datenbank, die direkt zu einem Server weiterleitet, dann sind die lokalen Daten kein Problem und es macht überhaupt nichts, wenn die lokale Datenbank bei einer neuen App-Version überschrieben wird. Erstellt man eine neue Version der App (mit neuer Versionsnummer) und verteilt diese, dann ergeben sich für die lokale Datenbank im Dokumenten-Ordner mehrere Varianten. Hat die neue Datenbank in der App den gleichen Namen wie die alte, wird sie normalerweise nicht übertragen und die alte Version bleibt auf dem Gerät. Eine Datenbank mit neuem Namen MyFile.01.fmp12 wird dagegen übertragen. Es ist also hilfreich, sich Gedanken über Updates zu machen. Vielleicht könnten Sie dafür sorgen, dass die Datenbank schaut, ob eine ältere Version vorhanden ist, und die Daten dann in diese Version übertragen werden. Oder Sie legen Daten und Scripts in verschiedenen Datenbanken ab. Daran merkt man schon, dass das iOS-SDK wohl für Datenbanken auf einem FileMaker Server geschrieben ist. In diesem Fall muss die lokale Datenbank nur die Auswahl des Servers speichern und die Verbindung anstoßen. iOS App Store die Entwickler nicht viel ändern – sie können nur die Layouts und Scripts variieren, falls jemand aus dem Review Team eine Taste bemängelt. Eventuell meckert Apple, wenn die App nicht den Richtli­nien entspricht. Zum Beispiel fordert die App standard­ mäßig durch einen Eintrag in der info.plist das Recht, Musik im Hintergrund abzuspielen. Wenn man in der App aber keine Musik abspielen kann, ist das Recht nicht notwendig und sollte entfernt werden. Bis Redaktionsschluss haben es einige Programme erfolgreich durch den Review-Prozess und in den App Store geschafft. Zu bedenken bleibt auch, dass es eventuell schlecht wäre, wenn die App direkt zu einem FileMaker Server verbindet und mal eben 10.000 Leute das Programm ausprobieren. So viele Lizenzen für gleichzeitige Verbindungen haben Sie vermutlich nicht. Die Datenbank extrahieren Noch ein Hinweis: Jeder kann sich die App laden und die ipaDatei auspacken. Es handelt sich dabei nur um ein ZIP-Archiv mit anderer Endung, sodass Benutzer Zugang zur Datenbankdatei bekommen und diese einfach in FileMaker Pro öffnen können. Es empfiehlt sich also möglicherweise, im Startscript zu überprüfen, ob die Plattform iOS ist und ob die App richtig heißt. Dazu kann man zum Beispiel „Get(FileMakerPath)“ verwenden und schauen, ob der Name der App im Pfad vorkommt. Falls jemand die Datenbank mit FileMaker Pro öffnet, kann sich Ihre Lösung selbst beenden. Ausblick Mit dem neuen iOS SDK hat FileMaker einen interessanten Weg gezeigt, um einen Mehrwert für die Plattform zu bieten. Endlich können FileMaker Entwickler ihre iOS-Lösung unter eigenem Namen anbieten, ohne dass die Kunden zunächst FileMaker Go installieren müssen. Gespannt bin ich auf weitere Neuerungen. Besonders interessant fände ich die Möglichkeit, Bibliotheken einzubinden. So wäre ein MBS Plugin für iOS doch bestimmt wünschenswert. Mal sehen, was sich hier im Laufe des Jahres noch tut! Links iOS App SDK Ankündigung https://community.filemaker.com/docs/DOC-6727 iOS App Download Seite https://community.filemaker.com/docs/DOC-6672 iOS App SDK Instructions http://help.filemaker.com/app/answers/detail/a_id/15531 Technisch dürfte es möglich sein, eine iOS-SDK-Anwendung im App Store zu veröffentlichen. Aktuell gibt es mehrere Entwickler, die das probieren und wir sind gespannt, was das Apple Review Team dazu sagt. Am Programm selbst können FMM_201601 9 Plugins und Tools im Vertrieb des K&K Verlags 1 Lizenz myFMbutler 79, 00 1) Clip Manager Express 1.1, e 11…14 Adv –/W € 70, 21 48, 00 1) Clip Manager 5, e 10…14 Adv M/– € 70, 21 37, 00 1) myFMbutler AutoSender 3.2, e 11…13 Server M/W € 296, 31 39, 00 1) DoSQL 2.0, e 11…14 M/W € 34, 51 39, 00 1) NEU myFMbutler PrinterSwitch 3.0, e 9…14 M/W € 70, 21 48, 00 1) New Millennium Communications 1 Lizenz 58, 00 1) DialogMagic 9.0, e 7…9 M/W $ 99, 95 1) 48, 00 1) FMrobot 2.2 (Win)/1.7 (Mac), e 7…11 Dev/Adv M/W $ 199, 95 1) 37, 00 1) MediaManager 14.0, e 9…13 M/W $ 129, 95 1) 58, 00 1) Metadata Magic 2.0, e (für 10 Dateien) 5/6 M/W $ 199, 95 1) 48, 00 1) SecureFM 13.0, e mit MenuMagic 7…13 M/W $ 159, 95 1) 48, 00 1) Productive Computing 1 Lizenz 1 Lizenz AddressBook Manipulator 4.0, e 8…14 M/– $ 74, 95 1) 12, 13 M/W $ 495, 00 1) Change Printer 4.0, e 8…14 M/W $ 74, 95 1) 10 user/Firma Exchange Manipulator 4.0, e 8…14 –/W $ 1.599, 95 1) 7…14 M/W $ 95, 00 1) File Manipulator 3.0, e 8…14 M/W $ 59, 95 1) 7…14 M/W $ 95, 00 1) FM CreditCard 1.0, e. 8…13 M/W $ 149, 95 1) 7…14 M/W $ 95, 00 1) iCal-Manipulator 1.0 8…13 M/– 59, 95 1) 7…14 M/W $ 395, 00 1) Outlook Manipulator 7.0, e (Preis pro Jahr) 8…14 –/W $ 120,00 1) 7…14 M/W $ 95, 00 1) Outlook Manipulator for Mac 1.0, e 8…14 M/– $ 99, 95 1) 7…14 M/W $ 195, 00 1) PDF Manipulator 3.0, e 8…14 M/W $ 74, 95 1) 7…14 M/W $ 95, 00 1) qutic development 1 Lizenz 7…14 M/W $ 195, 00 1) FM-iCal-Connector 4.0 8.5…14 (32) M/– € 89, 00 7…14 M/W $ 95, 00 1) Scodigo 1 Lizenz 1 Lizenz Scodigo SmartPill Edition 3.0, e 12, 13 M/W $ 89, 00 1) 7…13 M/W $ 85, 00 1) Troi Automatisering 1 Lizenz 7…14 (32/64) M/W $ 85, 00 1) Troi Activator 3.6, e 12…14 M/W $ 89, 00 1) 7…14 (32) M/W $ 65, 00 1) Troi Dialog 6.1, e 12…14 M/W $ 59, 00 1) 7…14 (32) M/W $ 65, 00 1) Troi Encryptor 3.0, e 12…14 M/W $ 79, 00 1) 7…14 (32) M/W $ 65, 00 1) Troi File 8.0, e 12…14 M/W $ 99, 00 1) 7…14 (32) M/W $ 35, 00 1) Troi Grabber 2.3, e Developer License 10…12 Adv M/W $ 999, 00 1) 7…14 (32/64) M/W $ 35, 00 1) Troi Serial 4.0, e Developer Lic. Mac+Win 12…14 M/W $ 999, 00 1) 7…14 (32) M/W $ 35, 00 1) Troi Text 3.5, e 12…14 M/W $ 49, 00 1) 7…14 (32/64) M/W $ 65, 00 1) Troi URL 4.1, e 12…14 M/W $ 79, 00 1) 7…14 (32/64) M/W $ 65, 00 1) WorqSmart früher: Waves in Motion 1 Lizenz 1 Lizenz eAuthorize 5.2, e 7…13 M/W $ 250, 00 1) 7…14 Adv M/W € 185, 00 Events 4.5, e 7…12 M/W $ 89, 00 1) 7…14 Adv M/W € 459, 00 Bitte prüfen Sie vor dem Kauf, ob das gewünschte Plugin mit Ihrer FileMaker Version und Ihrem Rechner­ 7…14 Adv M/W € 1.099, 00 betriebssystem kompatibel ist! Alle Angaben dieser Übersicht (auch zur Kompatibilität) geben wir ohne Gewähr! 1 Lizenz Alle Preise gelten bei Lieferung via E-Mail. 11, 12 M/W $ 59, 00 1) 7…12 M/W $ 59, 00 1) Hinweise und Zeichenerklärungen: 7…12 M/W $ 59, 00 1) 1) = Verkaufspreis in € ergibt sich wie folgt: Preis in Dollar lt. Tageskurs in € zzgl. 19% MwSt. 10…14 M/W $ 69, 00 1) M/W = für Mac und Win verfügbar 8…12 M/W $ 59, 00 1) e =englisch dt =deutsch 10…12 M/W $ 39, 00 1) Adv = FileMaker Pro Advanced ist erforderlich 1 Lizenz NEU = Neue Version 7…13 –/W € 399, 00 NEU = Neu im Vertrieb 1 Lizenz M/* = für Mac; für Win in Vorbereitung –/W = nur für Win 7…14 –/W € 39, 00 M/– = nur für Mac 7…14 –/W € 49, 00 7… = kompatibel mit FileMaker 7 bis … 7…14 –/W € 59, 00 14 = kompatibel mit FileMaker 14 (32/64) = für FileMaker 14 in 32 und 64-Bit-Version verfügbar 7…14 –/W € 49, 00 7…14 –/W € 49, 00 Upgrades 7…14 –/W € 39, 00 Bitte sprechen Sie uns an, wenn Sie Ihre vorhandenen Plugins und Tools auf die aktuelle Version upgraden 7…14 –/W € 39, 00 wollen: Wir nennen Ihnen gerne die Preise und sagen Ihnen, wie Sie an die Produkte gelangen! 7…14 –/W € 39, 00 Weitere Lizenzarten 7…14 –/W € 79, 00 Preise für Entwickler-, Firmen- und Weltweit-Lizenzen nennen wir gerne auf Anfrage. Demoversionen finden Sie in unserem Downloadbereich: www.filemaker-magazin.de 7…14 –/W € 49, 00 1 Lizenz K&K Verlag GmbH · Große Brunnenstraße 43 · 22763 Hamburg · Telefon +49 40 589 65 79 70 Telefax +49 40 589 65 79 77 · E-Mail: vertrieb@filemaker-magazin.de · www.filemaker-magazin.de 7…14 M/W $ 399, 00 1) 7…14 M/W $ 399, 00 1) 8…12 M/W $ 8…11 Adv M/W $ 7…12 M/W $ 10…12 M/W $ 8.5…12 M/W $ 7…12 M/W $ 8.5…10 M/W $ 7…12 M/W $ 7…12 M/W $ 7…12 M/W $ 8.5…12 M/W $ 7…12 M/W $ 7…14 M/W € 117, 00 Wichtig: Bitte testen Sie immer die Kompatibilität und alle gewünschten Funktionen eines Plugins oder Tools vor dem Kauf, indem Sie die Demoversion laden und installieren! 10 FMM_201601 Stand: 25.02.2016 24U Software 24U Phidgets 1.0, e 24U SimpleChart 1.2, e 24U SimpleCode 2.1, e 24U SimpleDialog 4.1, e 24U SimpleFile 2.0, e 24U SimpleHASP 1.1, e 24U SimpleHelp 4.0, e 24U SimpleHighlight 2.0, e 24U SimpleSound 3.0, e 24U SimpleTalk 1.1, e 24U Toolbox 1.2, e 24U VirtualUser 1.0, e Beezwax Inspector 5.5, e (Single User Lizenz) 360Works Charts 1.7, e Email 2.1, e FTPeek 1.6, e JDBC 1.8, e Plastic 2.3, e RemoteScripter 1.8, e Scribe 2.1, e SuperContainer 2.9, e (Workgroup, bis 10 User) WebAssistent 1.6, e CNS CNS Audit 1.5, e CNS Barcode 1.5, e CNS Image 1.6, e CNS Menu 1.1, e (Nachfolger von SCRIPTit) FTPit Pro 2.0, e MMColor 1.6, e MMQuery 1.2, e MMScript 1.1, e POP3it Pro 4.5, e SMTPit Pro 4.6, e Cross Solution CrossCheck 6.0 lite (max. 3 files/20 Tabellen) CrossCheck 6.0 unlimited (unbegrenzt) CrossCheck 6.0 Master (inkl. Masterzugriff) Dacons ChartFire, e FileFire Advanced 1.0, e Toolbar 1.0, e Mailit 6.0, e MenuControl 5, e ScriptFire, e gbpro OlePropertyCreator 2.9, dt, Dev. (bis 30 User) HEMCOM Software HC-Calendar 1.7, dt HC-Dialog 3.8, dt HC-Fax 2.6, dt HC-File 3.1, dt HC-FTP 1.7, dt HC-Printer 2.3, dt HC-RegInfo 2.1, dt HC-Script 1.6, dt HC-SFTP 2.0, dt HC-ZIP 3.4, dt Huslik FMDiff 4.0, e (d) FMVis 2.0, e (d) Monkeybread Software NEU MBS FileMaker 6.0, e (5 User) © 1994 – 2016 K&K Verlag GmbH, Hamburg Gewusst wie Klaus Kegebein (Jg. 1962) war 1994 Mitbegründer des FileMaker ­Magazins und ist heute von Lübeck aus als selbst­ ständiger FileMaker Entwickler tätig. Weblink [email protected] Freies Sortieren Durch Anklicken eine Reihenfolge festlegen Datensätze lassen sich in FileMaker schnell und einfach sortieren – nach Alter, Rechnungsbetrag, Postleitzahl usw. Aber vielleicht brauchen Sie ab und zu eine Sortierung, die nicht vom Inhalt eines bestimmten Feldes abhängt: n Sie wollen Ihre Todo-Liste nach der aktuellen Priorität sortieren. n Sie sind Handelsvertreter und wollen festlegen, in ­welcher Reihenfolge Sie Ihre Kunden besuchen. n Sie wollen festlegen, in welcher Reihenfolge Sie die ­Punkte beim Eurovision Song Contest vergeben. n Sie haben Stichworte für Ihren Vortrag auf der FileMaker Entwickler Konferenz gesammelt und wollen sie jetzt sinnvoll sortieren. Mir gefällt die Methode, mit der im Layoutmodus die „Tabulatorfolge“ eingestellt wird: Die Felder eines Layouts werden einfach in der gewünschten Reihenfolge angeklickt. Auf ähnliche Weise soll die Datensatz-Abfolge erstelle werden. Brainstorming: Was muss ich morgens alles machen? In all diesen Fällen können Sie sich behelfen, indem Sie ein zusätzliches Zahlenfeld anlegen, das Sie nach Bedarf mit einem niedrigeren oder höheren Wert füllen und anschließend danach sortieren. Dieses Feld von Hand zu füllen, kann aber ziemlich mühsam sein. Ich zeige Ihnen, wie Sie sich und Ihren Anwendern die Arbeit erleichtern können. Vorbild: Die Tabulatorfolge Per Mausklick kann die Reihenfolge festgelegt werden. Man nehme … n Ein Zahlenfeld namens SortNr, in das der Anwender per Mausklick eine fortlaufende Nummer eingeben kann. Dieses Feld dient allerdings nur dem Festlegen der Reihenfolge, nicht der eigentlichen Sortierung. n Ein weiteres Zahlenfeld, das im Layout normalerweise nicht enthalten ist, weil es nur vom Script benötigt wird und deshalb den sprechenden Namen SortNr_unsichtb ­­­ ­ FMM_201601 11 Gewusst wie trägt. In den folgenden Screenshots (und in der Beispieldatei, die Sie zu diesem Beitrag bekommen­ ­können) wird es nur zur Verdeutlichung abgebildet. n Ein Auswertungsfeld namens Anz_SortNr, das angibt, wie viele Datensätze bereits eine SortNr erhalten haben. n Ein weiteres Auswertungsfeld, das max_SortNr heißt und die höchste bereits vergebene Nummer liefert. Das Script „SortNr vergeben“ Ich habe das Feld SortNr zur Taste gemacht und ein Script darauf gelegt, das recht übersichtlich ist. Weil sich ohnehin alles in der gleichen Tabelle abspielt, verzichte ich bei allen Feldnamen und in allen Formeln auf den Namen der Tabelle bzw. des Tabellenauftretens. SortNr vergeben 1 Wenn Ich brauche also für die Sortierung ein weiteres Feld – das bereits angekündigte SortNr_unsichtb. Fall A Alle Datensätze sind nummeriert. Das ist der einfachste Fall. Hier wird einfach der Inhalt von SortNr in SortNr_unsichtb übertragen, wofür ich die Funktion „Ersetze alle Feldwerte“ benutze. Formel: SortNr > 0 2 Feldwert setzen Feld:SortNr Formel:"" 3 Sonst 4 Feldwert setzen Feld:SortNr Formel: max_SortNr + 1 5 Ende (wenn) Im Klartext: Wenn der angeklickte Datensatz bereits eine SortNr hat (also wenn das Feld ein zweites Mal angeklickt wird), soll die SortNr wieder gelöscht werden; anderenfalls wird die nächsthöhere Nummer eingetragen. So weit ist alles klar, denke ich. War’s das schon? Nun könnten die Datensätze nach der SortNr sortiert werden – allerdings würde das voraussetzen, dass alle Datensätze angeklickt sind, denn Einträge ohne SortNr werden bei dieser Sortierung vor den nummerierten Datensätzen erscheinen. Das ist vielleicht gar nicht gewollt. Es gibt vier Möglichkeiten: A Alle Datensätze sind nummeriert. Das ist der Fall, wenn Anz_SortNr = Hole( AnzahlGefundeneDatensätze ) Fall B Die unnummerierten Datensätze sollen vorn erscheinen. Auf den ersten Blick scheint dieses Szenario ebenso einfach zu sein wie das erste: Weil Datensätze mit leerer SortNr bei aufsteigender Sortierfolge vor 1 erscheinen, könnte ich eigentlich genauso verfahren wie im Fall A. C Die unnummerierten Datensätze sollen nach den nummerierten erscheinen. Aber das geht nicht, denn Felder mit gleichem Eintrag im Sortierfeld werden in der Reihenfolge angeordnet, in der sie angelegt wurden – und diese Reihenfolge kann von der Ausgangssituation abweichen! Die ursprüngliche Reihenfolge bleibt nur dann garantiert erhalten, wenn die Datensätze ohne SortNr vor der Weiterverarbeitung eine fortlaufende Zahl zugewiesen bekommen, die kleiner 1 ist. D Die unnummerierten Datensätze sollen ihre Position beibehalten: Die Datensätze, die sich vor der ersten SortNr befinden, sollen vorn bleiben, die anderen sollen nach der zuletzt vergebenen SortNr stehen. Ich beginne bei -9.999 und erhöhe bei jedem Datensatz ohne SortNr um 1, sonst übernehme ich den Wert von SortNr. Auch hier kann mit der Ersetzen-Funktion gearbeitet werden. Trifft das nicht zu, muss der Anwender entscheiden: B Die unnummerierten Datensätze sollen vor den nummerierten erscheinen. 12 FMM_201601 Gewusst wie Damit die Sortierung funktioniert, muss der erste Datensatz in der Spalte SortNr_unsichtb (siehe folgendes Bild) eine Zahl kleiner 1 zugewiesen bekommen, die letzten beiden Nummern müssen größer 2 sein. Fall C Die unnummerierten Datensätze sollen hinten erscheinen. Dieser Fall ähnelt dem Fall B, mit dem Unterschied, dass die „leeren“ Datensätze nicht mit einer Nummer ab – 9.999 gefüllt werden, sondern fortlaufend ab der letzten manuell vergebenen Nummer – die dank des Feldes max_SortNr bekannt ist. Damit wird die Nummer zwar nicht lückenlos vergeben, aber sie ist eindeutig. Was will man mehr? Auch bei Fall B und C kommt die „Ersetzen“-Funktion zum Einsatz. Fall D Die unnummerierten Datensätze sollen ihre Position beibehalten. Ein typisches Beispiel wäre, dass die Positionen von zwei Datensätzen getauscht werden sollen. Hier helfe ich dem Anwender, indem er nur die Datensätze markieren muss, die an dem P ­ ositionstausch beteiligt sind. FMM_201601 Der erste Datensatz in der Spalte SortNr_unsichtb muss eine Nummer kleiner 1 bekommen, die letzten beiden Nummern müssen größer 2. So weit so gut, aber wie soll das Script sortieren, wenn es wie im folgenden Beispiel Lücken gibt? Auch Menschen, die ausschließlich Tiefkühlschrank und Mikrowelle für ihre Ernährung benötigen, wissen, dass es ratsam ist, zuerst das Öl in der Pfanne zu erhitzen und dann den Fisch anzubraten. Logisch, dass die Reihenfolge dieser beiden Arbeitsschritte getauscht werden muss. Aber soll der Fisch vor oder nach dem Braten gewürzt werden? Um den Anwender nicht mit noch mehr Fragen (oder Fehlerhinweisen) zu belästigen, habe ich in dem Script Folgendes festgelegt: Unnummerierte Datensätze, die sich vor dem ersten nummerierten Datensatz befinden, bekommen negative Nummern, alle folgenden werden ab der höchsten vergebenen SortNr weitergezählt. Dieser Fall lässt sich leider nicht mit der Ersetzen-Funktion erledigen; die SortNr_unsichtb muss in einer Schleife für ­jeden Datensatz einzeln errechnet werden. Und so sieht das Script aus: 13 Gewusst wie Sortierung festlegen 1 Wenn Formel: Anz_SortNr = Hole( AnzahlGefundeneDatensätze ) 2 # ALLE Datens. haben eine SortNr 3 Sortieren Sortierfolge:SortNr Option: Ohne Dialogfeld 4 Sonst unsichtb eingetragen werden soll, wenn das manuell gesetzte Feld SortNr nicht gefüllt ist. Diese Nummer, die zu Beginn bei -9.999 steht, wird vom ersten Datensatz an hochgezählt, bis das Script zur ersten gefüllten SortNr gelangt. Dann macht der Zähler einen großen Sprung und zählt ab der höchsten manuell vergebenen SortNr weiter. – 5 Wenn Formel: Hole( LetzteMeldungswahl ) = 3 6 # unnummerierte VORNE anfügen 7 Ersetze alle Feldwerte Feld:SortNr_unsichtb Option: Ohne Dialogfeld Formel:Falls( IstLeer( SortNr ) ; -9999 + Hole( DatensatzPositionInErgebnismenge ) ; SortNr ) 8 Sonst, wenn Formel: Hole( LetzteMeldungswahl ) = 2 9 # unnummerierte HINTEN anfügen Wenn Sie diese Technik verwenden, um Daten in einem Ausschnitt zu bearbeiten, brauchen Sie sich um den eigentlichen Sortiervorgang (nach dem Feld SortNr_unsichtb) nicht zu kümmern, denn Sie können die Sortierung in den Ausschnitt­ einstellungen festlegen. Wenn Sie aber in einer Listenansicht arbeiten, müssen Sie beachten, dass die Datensätze auch einmal unsortiert vorliegen können. Sie sollten dann dafür sorgen, dass die Sortierung notfalls automatisch hergestellt wird, zum Beispiel durch einen Script-Trigger beim Öffnen des Layouts. ♦ 10 Ersetze alle Feldwerte Feld:SortNr_unsichtb Option: Ohne Dialogfeld Formel:Falls( IstLeer( SortNr ) ; max_SortNr + Hole( DatensatzPositionInErgebnismenge ) ; SortNr ) 11 Sonst 12 # unnummerierte nicht ändern 13 Gehe zu Datensatz Option:Erster Anzeige 14 Variable setzen Name:$n Wert:-9999 15 Schleife (Anfang) 16 Wenn Formel: SortNr > 0 17 Variable setzen Name:$n Wert:max_SortNr 18 Ende (wenn) 19 Feldwert setzen Feld:SortNr_unsichtb Formel: Falls( SortNr > 0 ; SortNr ; $n + 1 ) 20 Variabel setzen Name:$n Formel: $n + SortNr + 1 21 Gehe zu Datensatz Option:Nächster Option: Nach letztem beenden 22 Schleife (Ende) 23 Ende (wenn) 24 Ende (wenn) 25 Sortieren Kriterien:SortNr_unsichtb Option: ohne Dialogfeld 26 Ersetze alle Feldwerte Feld:SortNr_unsichtb Option: Ohne Dialogfeld Formel:"" Eine kurze Erklärung zur Lösung des Falles D (nach „Sonst“): Die Variable $n enthält den Wert, der im Hilfsfeld SortNr_ 14 FMM_201601 Weblink ab FileMaker 13 Dipl.-Ing. © 1994 – 2016 K&K Verlag GmbH, Hamburg Gewusst wie Arnold Kegebein (Jg. 1964) studierte Technische Informatik. Er war über sechs Jahre als IT-Leiter in den USA tätig. Nach Deutschland zurückgekehrt arbeitet er als selbst­ ständiger Entwickler für FileMaker Lösungen und andere Anwendungen. [email protected] Tasten bedingt deaktivieren Eine in FileMaker vermisste Funktionen nachbilden In meinem Beitrag geht es wieder einmal um eine „vermisste“ Funktion in FileMaker. Diesmal handelt es sich darum, ein Objekt bedingt zu deaktivieren. Ich werde Ihnen zeigen, wie diese Funktion mit FileMaker Mitteln nachgestellt werden kann – ebenso wie ein paar andere Dinge, die sich im Zusammenhang mit der Lösungssuche ergeben haben. Nebenbei ist dieser Beitrag ein Beispiel dafür, dass man manchmal mehrere Ansätze abarbeiten muss, um zu einer funktionierenden, optimierten Lösung zu gelangen. Einige der neueren Features in FileMaker nutze ich gern und häufig, zum Beispiel Popover-Elemente und das bedingte Ausblenden von Layoutobjekten. Aber wie so oft wächst auch hier mit der Anwendung der neuen Möglichkeiten die Begehrlichkeit nach mehr. Seit einiger Zeit vermisse ich schmerzlich ein Feature, das mir ein bedingtes Deaktivieren von Objekten erlaubt, vor allem bei Tasten. Feature-Wunsch Eigentlich ist mein Wunsch ganz einfach: Ich hätte gern eine Funktion, mit der eine Taste deaktiviert wird, wenn bestimmte Felder nicht ausgefüllt sind. Damit soll sichergestellt werden, dass erforderliche Daten vom Anwender eingetragen werden, bevor der Datensatz gespeichert oder die Verarbeitung fortgesetzt wird. Ich könnte natürlich die Taste zum Speichern oder Fortfahren in meinem selbstdefinierten Dialog bedingt ausblenden. Dann wäre im Dialog aber nur eine Taste „Abbrechen“ sichtbar, was weder besonders schön ist noch dem Standard guter Benutzeroberflächen entspricht, wie er sich in modernen Programmen und im Web etabliert hat. FMM_201601 Stattdessen soll die Taste „Speichern“ sichtbar, aber ausgegraut sein. Dadurch wird dem Anwender erkennbar gemacht, dass die Funktion „Weiter“ noch nicht verfügbar ist, weil nicht alle erforderlichen Daten eingegeben wurden. Wünschenswert wäre dieses Feature auch bei Tastenleisten (ButtonBars). Im Moment sind die inaktiven Tasten unsichtbar, während die anderen Tasten breiter dargestellt werden. Auch hier fände ich das „Ausgrauen“ inaktiver Tasten besser, da ihre Sichtbarkeit eine Hilfestellung für den Anwender sein kann. Leider existiert das Feature „Bedingtes Deaktivieren“ (noch) nicht in FileMaker, doch Sie können sich mit Hausmitteln eine eigene Lösung bauen. 15 Gewusst wie Bastelanleitung Ich möchte einen Login-Dialog erstellen, bei dem die Taste „Weiter“ deaktiviert ist, solange das Feld Login keinen Wert enthält. Ich benötigte dazu: n zwei Felder (Login und Passwort) n zwei Tasten mit der Beschriftung „Abbrechen“ ­­und ­„Weiter“ n eine Kopie der Taste „Weiter“, so formatiert, dass sie deaktiviert aussieht Die normale „Weiter“-Taste erhält bei der Option für das bedingte Ausblenden eine zutreffende Formel, zum Beispiel: IstLeer( System::Login ) Bei der „deaktivierten“ Taste entferne ich alle Tastenfunktionen, sodass beim Anklicken keine Funktion ausgeführt wird. Die Formatierung dieser Taste halte ich bewusst in hellen Grautönen, damit sie dem Anwender „funktionslos“1 erscheint. Beide Tasten werden im Layout übereinander gelegt, sodass die normale Taste die deaktivierte Taste überdeckt. Anschließend werden die beiden Felder und die Taste „Abbrechen“ an geeigneten Stellen im Layout untergebracht (siehe Abb.). Unvollkommen Das Ergebnis kann sich schon mal sehen lassen, allerdings stört mich noch ein Punkt: Die Taste „Weiter“ wird erst dann ein- bzw. ausgeblendet, wenn die Änderung im Feld Login gespeichert wird. Das geschieht gewöhnlich erst beim Verlassen des Feldes. In meiner Wunschlösung ist die Taste „Weiter“ aktiv, sobald das erste Zeichen in das Feld eingetippt wurde. Getriggert Ich habe mir also erneuet Gedanken gemacht und bin auf folgende Idee gekommen: Da die Bedingung für das Ausblenden erst beim Speichern des Feldwertes neu berechnet wird, muss die Taste „Weiter“ nach jeder Eingabe aktualisiert werden. Dazu gibt es seit FileMaker 13 den Script-Befehl „Objekt aktualisieren“. Dieser Befehl erwartet einen Objektnamen als Parameter, sodass ich meiner „Weiter“-Taste den Namen „Taste­Weiter“ zugewiesen habe. 16 Da ich meine Scripts gerne wiederverwendbar programmiere, habe ich ein einfaches Script namens „Objekt aktualisieren( Objektname )“ erstellt, das als Scriptparameter den Objekt­ namen des Objekt erwartet, das aktualisiert werden soll. Anschließend lege ich den Script-Trigger „BeiObjektÄndern“ auf das Login-Feld, und weise ihm das neue Script mit dem Parameter „TasteWeiter“ zu. Beim Ausprobieren erwartet mich eine Überraschung: Meine Taste wird weiterhin erst nach dem Verlassen des Feldes ein- bzw. ausgeblendet. Die Überprüfung mit dem Script Debugger ergibt jedoch, dass das Script nach jedem Tastendruck ausgeführt wird. Da der Objektname korrekt angegeben wurde, vermute ich, dass das Problem in der Formel für das bedingte Ausblenden liegt. Vielleicht wird der neue Feldwert dort nicht erkannt? Schließlich bin ich mitten in der Eingabe und der neue Wert wurde noch nicht gespeichert. Ungespeichert Nachdem sich diese Vermutung bestätigt hat, habe ich die Formel für das bedingte Ausblenden etwas geändert: Wenn( Hole( AktivesFeldName ) = "LOGIN"; Hole( AktivesFeldInhalt ); // Sonst SYSTEM::LOGIN ) = "" Die Formel prüft nun, ob das Feld Login gerade bearbeitet wird. Trifft das zu, verwendet es den Inhalt des aktuellen Feldes, also den ungespeicherten Login-Wert, ansonsten den Wert von Login. Erwartungsvoll teste ich meine neue Lösung: Sie scheint zu funktionieren – allerdings nur, wenn das Feld vor der Zeicheneingabe leer war. Beim Entfernen des Zeichens mit der Löschtaste bleibt die Taste sichtbar – daran ändert sich auch nichts beim Verlassen des Feldes. Mein Problem scheint sich mit diesem Lösungsansatz also nur verstärkt zu haben. Parametertrick An Aufgeben wollte ich aber noch nicht denken. Vielmehr kam mir eine neue Idee: Vielleicht kann das Ausblenden der Taste durch eine – zur richtigen Zeit gesetzte – globale Variable kontrolliert werden. Ich habe die Formel für das bedingte Ausblenden also erneut überarbeitet, sodass dort nur noch eine Variable ausgewertet wird: $$TasteAusblenden. Natürlich muss diese Variable noch gesetzt werden, was ich mit dem Aufruf des Trigger-Scripts verbinde. Es wird weiterhin das Script „Objekt aktualisieren( Objektname )“ aufge­ rufen, allerdings mit erweitertem Scriptparameter: FMM_201601 Gewusst wie SetzeVar ( $$TasteVerstecken = IstLeer( SYSTEM::LOGIN ); "TasteWeiter" ) In der „SetzeVar“-Funktion wird die globale Variablen gesetzt und dann der Objektname ausgegeben. Ein Test ergibt ein einigermaßen zufriedenstellendes Ergebnis, einziger Wermutstropfen: Die Taste „Weiter“ wird immer erst einen Tastendruck später angezeigt oder ausgeblendet. Verzögerung Eine Problemanalyse ergab, dass die Berechnung der globalen Variablen im Scriptparameter wohl etwas zu früh erfolgt, weshalb ich die Variable im nächsten Ansatz erst im Script setze. Dafür erstelle ich das neue Script „Taste aktivieren/deaktivieren“, in dem ich zuerst der Variablen $$TasteVerstecken einen Wert zuweise und dann das Objekt „TasteWeiter“ aktualisiere. Beide Befehle sind „fest verdrahtet“, d. h. die verwendeten Werte sind Konstanten, sodass das Script nur für diese spezielle Situation funktionieren wird. So weit, so gut, aber funktioniert dieser Ansatz auch? Ja, er funktioniert tatsächlich! Da die Variable erst im Script gesetzt wird, ist das Timing richtig und die Taste „Weiter“ wird mit jedem Tastendruck korrekt ein- oder ausgeblendet. Etwas sonderbar erscheint mir lediglich, dass das Ganze ohne die Verwendung von „Hole( AktivesFeldInhalt )“ funktioniert – im Script wird ja nur das Feld SYSTEM::LOGIN auf Inhalt überprüft … Verbesserung Dem einen oder anderen von Ihnen ist bestimmt aufgefallen, dass das Script, das ich für den letzten Ansatz erstellt habe, meinem Anspruch, allgemein einsetzbare Scripts zu programmieren, nicht entspricht. Hier muss also noch nachgebessert werden. Das Script „Objekt aktualisieren( ObjektName )“ enthält schon eine Verallgemeinerung, da der Objektname erst beim Aufruf als Parameter mitgegeben wird. Genauso kann ich die Formel für die Bedingung als weiteren Parameter einrichten: Dazu erstelle ich ein neues Script „Objekt bedingt ausblenden( Objektname; Bedingung )“, das zwei Parameter erwartet.2 Da der Feldname in einem Text, also als konstanter Wert übergeben wird, kann das noch verbessert werden: Liste( "TasteWeiter"; "$$TasteVerstecken = IstLeer(“ & HoleFeldName( SYSTEM::LOGIN ) & “)" ) Damit habe ich nun eine Lösung, die das Deaktivieren von Layoutobjekten ermöglicht. Durch das allgemein gehaltene Script kann ich diesen Ansatz mehrfach in meiner Datenbank einsetzen oder in andere Datenbanken überführen. Wermutstropfen Okay, ich muss zugeben, ganz perfekt ist die Lösung nicht. Beim Anzeigen des Datensatzes muss die globale Variable $$TasteVerstecken initialisiert werden, was aber recht einfach in einem entsprechenden Trigger-Script „BeiDatensatzLaden“ erledigt werden kann. Anmerkungen Am Anfang des Artikels habe ich Tastenleisten erwähnt, bei denen einzelne Tasten deaktiviert werden sollen. Ein möglicher Lösungsansatz wäre das Anlegen einer „deaktiviert“ formatierten Version jeder Taste (oder zumindest der Tasten, die deaktiviert werden können), die genau über der aktiven Taste platziert wird. Diese „deaktivierte“ Taste sollte eine Tastenfunktion zugewiesen bekommen, damit beim Anklicken nicht die darunter liegende aktive Taste ausgeführt wird. Am besten eignet sich hierfür die Zuweisung eines Leerscripts, das keine Befehle enthält. Bei der Bedingung muss darauf geachtet werden, dass die Logik umgedreht ist, da in diesem Fall die deaktivierte Taste ausgeblendet wird. Diese Methode, Layoutobjekte bedingt zu deaktivieren, kann natürlich auch auf andere Elemente angewendet zu werden. ♦ Fußnoten 1 Funktionslos im Sinne von „es wird kein Script oder anderer Befehl ausgeführt“. Visuell hat die Taste natürlich eine Funktion, da ihre Formatierung den Anwender erkennen lässt, dass bestimmte Bedingungen nicht zutreffen. 2 Zur Vereinfachung übergebe ich beide Parameter in mehreren Zeilen. Andere Wege zur Übergabe von mehreren Parametern sind möglich. ­ Das Script muss dann in den ersten beiden Zeile angepasst werden. In der ersten Zeile des Scriptparameters steht der Objektname, der der lokalen Variable $Objektname zugewiesen wird. Alle anderen Zeilen werden für die Bedingung zum Ausblenden des Feldes verwendet, die im Format des Definitionsteils einer „SetzeVar“-Funktion angegeben wird. Ein kompletter Scriptparameter könnte folgendermaßen aussehen: Liste( "TasteWeiter"; "$$TasteVerstecken = IstLeer( SYSTEM::LOGIN )" ) FMM_201601 17 In eigener Sache Weblink FMM Titelwahl 2015 … wer war der Schönste im letzten Jahr? Titel Titel Titel Titelbild Titelbild Titelbild iStock 201503 FMM_201501 Das unabhängige Magazin für FileMaker Einzelausgabe PDF € 12,00 | www.filemaker-magazin.de Anwender und Entwickler Modulare Konzepte Neue Ansätze in der FileMaker Entwicklung So kommen Entwickler an ihr Geld Rechtsverbindlich Tipps zur Funktion „SQLAusführen“ Anwender und Entwickler FMM_201502 Das unabhängige Magazin für FileMaker Fensterln Einsteigen für Fortgeschrittene Vorgestellt Die Eigene Funktion Need for Speed Entwickler-Logik Kleine Helfer mit Pfiff Platzhalter Abgesichert FileMaker 14 Live-Programmierung Eine Stoppuhr als Eigene Funktion Zeitfragen Layout und Tasten © 1994 – 2015 K&K Verlag GmbH, Hamburg Ergänzt DML und DDL Eine Verlagsgeschichte in Bildern © 1994 – 2015 K&K Verlag GmbH, Hamburg Damals FMM_201501 „Modulare Konzepte“ Gebucht FileMaker Konferenz FMM_201502 „Fensterln“ Titel fotolia FMM_201503 „Need for Speed“ Titel Titelbild 201506 201505 Titelbild FMM_201504 Das unabhängige Magazin für FileMaker Einzelausgabe PDF € 12,00 | www.filemaker-magazin.de Einzelausgabe PDF € 12,00 | www.filemaker-magazin.de Anwender und Entwickler Anwender und Entwickler Datumsberechnung Feiertage in Bewegung Lieferdaten angeben Kalenderwoche FMM_201505 Das unabhängige Magazin für FileMaker Logik pur Signieren Für Einsteiger Datensatzaktualisierung Impressionen FileMaker Konferenz Auf zur FileMaker Konferenz Hamburg! FMM_201504 „FileMaker Konferenz Hamburg“ Geprüfte Authentizität Zeichen zählen © 1994 – 2015 K&K Verlag GmbH, Hamburg Moin, Moin … Auffallend bunt Universell einsetzbar © 1994 – 2015 K&K Verlag GmbH, Hamburg Serverwechsel leicht gemacht Farbige Containerfelder Mengenlehre Textaustausch Funktion „Position“ Datensatzänderungen FMM_201506 Listendetails In die Tiefe gehen FileMaker 14 Anwender und Entwickler Einblenden, ausblenden 2n-Boolmethode SQL Titel shutterstock fotolia Titelbild Das unabhängige Magazin für FileMaker Scripts und Formeln Sicher und stabil Einzelausgabe PDF € 12,00 | www.filemaker-magazin.de © 1994 – 2015 K&K Verlag GmbH, Hamburg FMM_201503 Nachgedacht Abfragen © 1994 – 2015 K&K Verlag GmbH, Hamburg Anwender und Entwickler Einzelausgabe PDF € 12,00 | www.filemaker-magazin.de 201501 Das unabhängige Magazin für FileMaker Einzelausgabe PDF € 12,00 | www.filemaker-magazin.de fotolia 201502 iStock FMM_201505 „Datumsberechnung“ Scripts im Menü Die richtige Wahl Wertelisten FMM_201506 „Farbige Containerfelder“ Wählen Sie jetzt den Titel des Jahres 2015: Welches ­Titelbild des letzten Jahres hat Ihnen am besten gefallen? ten angesprochen? Passt er besonders gut zum Titelthema, oder finden Sie ihn einfach optisch überzeugend? Bitte schauen Sie sich alle Titel noch einmal an und treffen Sie Ihre Entscheidung. Dann kreuzen Sie Ihren Lieblings­titel im entsprechenden Auswahlfeld auf dieser Webseite an: Alle Einsendungen, die eine E-Mail-Adresse enthalten, nehmen an der Verlosung von zwei iTunes-Gutscheinen im Wert von je € 25 teil. Die Abstimmung endet am 25. März 2016 – dann wird ausgewertet. www.filemaker-magazin.de/go/titel-2015 Wenn Sie mögen, nennen Sie uns gern eine kurze Begründung für Ihre Wahl: Was hat Sie an dem gewählten Titel am meis18 Wir freuen uns auf Ihr Feedback! Ihre FMM Redaktion © 1994 – 2016 K&K Verlag GmbH, Hamburg FMM_201601 © 1994 – 2016 K&K Verlag GmbH, Hamburg Tipps & Tricks Thomas Siebert (Jg. 1963) Selbstständiger FileMaker Entwickler seit 1997. Außerdem aktiv als improvisierender Musiker und Sounddesigner. Ursprünglich unterwegs in Druckvorstufe & DTP. Weblink [email protected] :-) Putzige Emojis Die Strichmännchen werden erwachsen Wer kennt sie nicht? Emojis grinsen sich schon seit geraumer Zeit durch die Chat- und SMS-Welt. Auch FileMaker bleibt nicht verschont von den kleinen lustigen und oft recht praktischen Symbolen. Viele Jahre lang haben wir aus Punkten, Strichen und Klammern kleine Strichmännchen zusammengestrickt, die mit Einführung der Mobiltelefone zu grafischen Objekten, sogenannten Smileys geworden sind. Spätestens seit der Verwendung von Smartphones ist der Siegeszug der Emojis nicht mehr aufzuhalten – mittlerweile sind sie zu umfangreichen Symbolfamilien mit mehr als hundert Symbolen angewachsen. Unicode Die Auswahl der Symbole im UTF-Format wird von dem Unicode Consortium1 bestimmt und standardisiert. Seine Mitglieder setzen sich in erster Linie aus verschiedenen Computerkonzernen zusammen, z. B. Adobe, Apple, Facebook, Huawei, IBM, Micro­soft, Ministerium von Awqaf (Oman Sultanate), Oracle, SAP und Yahoo. Hinzu kommen verschiedene Institutionen, Vereinigungen und Förderer.2 Die Verfügbarkeit unter Windows 8.1 ist eher als rudimentär zu bezeichnen, d. h. einige Icons stehen nur schwarz-weiß zur Verfügung oder werden auf die eine oder andere Weise reduziert dargestellt. Eine neuere Windows-Version habe ich leider nicht vorliegen, aber nach Informationen, die ich im Internet gefunden habe, sind in Windows 10 Hunderte von bunten Emojis über die Bildschirmtastatur verfügbar. Verfügbarkeit Seit Mac OS X Yosemite haben die EmojiSymbole Einzug in Apples Desktop-System gehalten – in iOS sind sie schon länger verfügbar. FMM_201601 19 Tipps & Tricks Mac OS X hält die Zeichen z. B. über die Zeichenpalette bereit, die sich optional und dauerhaft in der Menüleiste einblenden lässt ( ➝ Systemeinstellungen ➝ Tastatur ➝ Eingabequellen ➝ Eingabequellen in der Menüleiste anzeigen). Vorteile In manchen Bereichen kann die Verwendung der Icons viel Sinn machen, da die Bildchen meistens weniger Platz ­benötigen als der entsprechende Text – und in manchen Fällen sind Emojis sogar aussagekräftiger als ganze Sätze. Natürlich hängt es auch vom allgemeinen Design einer Anwendung ab, welche Zeichen in welchem Maße verwendet werden. Verwendung in FileMaker Unter Mac OS X sind die Emojis im PNG-Format mit einer Auflösung von bis zu 160x160 Pixel in die TrueType-Fonts eingebettet. Da die Bildzeichen im UTF-8-Format vorliegen, lassen sie sich auch in FileMaker relativ problemlos wie Buchstaben oder Zahlen verwenden. In der Beispieldatei habe ich verschiedene Anwendungsmöglichkeiten dargestellt: PopUp-Menüs, Optionsfelder (Radiobuttons), Menü und Dialogboxen. Alle Bereiche, in denen Schriftzeichen verwendet werden, können auch Emojis verarbeiten. Wermutstropfen Leider werden Breite und Höhe der Zeichen von FileMaker noch nicht optimal berechnet, sodass sie u. U. mehr Platz beanspruchen als eigentlich nötig. Aber sicherlich wird FileMaker Inc. an dieser Stelle noch Optimierungen vornehmen, wenn wir freundlich nachfragen. Beachten sollten Sie zudem, dass die Darstellung der Emojis auf Apple- und Windows-Systemen stark abweichen kann. ♦ Fußnoten 1 www.unicode.org/emoji/ 2 www.unicode.org/consortium/members.html Emojis können auch in Formeln verwendet oder über Formeln berechnet werden, wofür wir lediglich die „Code“- und die „Char“-Funktion benötigen: Erstere, um die Unicode-Nummer eines Emojis zu berechnen, und Letztere, um die UnicodeNummer in das entsprechende Emoji umzuwandeln. In letzter Minute Updater auf FileMaker 14.0.5 FileMaker hat Version 5 eines Updaters für FileMaker 14 veröffentlicht. Verfügbar sind Updater für FileMaker Pro und FileMaker Pro 14 Advanced, sowohl für Windows (in 32 und 64 Bit) wie für den Macintosh. Die Installation wird allen Anwendern der Versionen 14.0.1, 14.0.2, 14.0.3 und 14.0.4 empfohlen. Download und weitere Infos http://help.filemaker.com/app/answers/ detail/a_id/15645 https://filemaker-magazin.de/service/aktuellefilemaker-versionen/ 20 FMM_201601 Jörg Köster (Jg. 1964) hat Musik studiert und arbeitet als freibe­ ruflicher Pianist und Arrangeur. Seit 2009 beschäftigt er sich intensiv mit FileMaker, ist zertifizierter FileMaker Entwickler und betreut überwiegend kleine und mittlere Unternehmen. [email protected] Platzhalter im Fokus Tipps und Tricks Obwohl Platzhalter ursprünglich wohl nur für den Einsatz in Drucklayouts gedacht waren, verfügen sie über Eigenschaften, die sie auch für die Anwendung in Benutzerschnittstellen (besser bekannt als „User Interface“) zunehmend interessanter machen. In der FileMaker Hilfe wird der Platzhalter1 wie folgt beschrieben: „Ein Feld in einem Layout, das für den Inhalt eines Dateifelds steht. Ein Platzhalter wird im Blätternmodus und Seitenansichtsmodus oder beim Drucken so erweitert, dass die Daten des Dateifelds für jeden Datensatz darin Platz finden. Platzhalter sind nützlich für Serienbriefe. FileMaker Pro verwendet Platzhalter in vordefinierten Layouts für Etiketten und Briefumschläge.“ Das heißt, Platzhalter können Inhalte von Dateifeldern, Variablen und diversen „Hole-Funktionen“ darstellen. Selbstverständlich gibt es auch die Möglichkeit, per Tastatur einen Freitext direkt in einen Platzhalter einzufügen oder alle genannten Möglichkeiten miteinander zu kombinieren. Daher möchte ich in diesem Beitrag auf andere Aspekte eingehen, die mich zur vermehrten Nutzung von Platzhaltern in Benutzerschnittstellen motiviert haben. Platzhalter sind sperrig? Platzhalter eignen sich wunderbar, um Daten aus unterschiedlichen Feldern, Variablen und fixierten Textelementen zu einem Fließtext zusammenzufassen. Bei längeren Objektbezeichnungen oder Feldern aus Bezugstabellen kann der Platzhaltertext allerdings unbequem lang werden. Die Anwender-Info beispielsweise erfordert unter der Haube folgende Syntax: Zudem befindet sich der Platzhalter in diesem Beispiel innerhalb eines Ausschnitts. An dieser Stelle möchte ich auf den sehr lesenswerten Beitrag „Platzhalter auf Komfortkurs“ von Holger Darjus hinweisen, der in der Ausgabe FMM_201501 erschienen ist. Neben der Vorstellung neuer Möglichkeiten und einiger Anwendungsbeispiele von Platzhaltern werden auch die von mir erwähnten „Hole-Funktionen“ beschrieben. FMM_201601 21 © 1994 – 2016 K&K Verlag GmbH, Hamburg Tipps & Tricks Tipps & Tricks Doch obwohl er die Grenzen der Ausschnittszeile überragt, wird die korrekte Darstellung nicht beeinträchtigt. Wenn wir zwei identisch formatierte, 100 x 21 pt große Layoutobjekte vergleichen, ergibt sich folgendes Ergebnis: Während das Feld eine Größe von 7,17 kB hat, ist der Platzhalter nur 6,6 kB groß. Das entspricht einer Differenz von 0,57 kB, also ca. 8 % weniger Datentransfer. Das hat zwar schon unter FileMaker 11 tadellos funktioniert, dennoch war mir nie ganz wohl dabei. Deshalb habe ich derartige Konstrukte gemieden und stattdessen mit Feldobjekten gearbeitet. Da Platzhalter im Layoutmodus oftmals größer sind, als die tatsächlich darzustellenden Daten, überlappen sie sich häufig mit anderen Layoutobjekten. Das macht das Arbeiten im Layoutmodus mit der Zeit unbequem und unübersichtlich. Seit FileMaker 12 gibt es aber einen Trick, um die Übersichtlichkeit wiederherzustellen. Der Trick Hinzu kommt, dass ein Platzhalter oftmals die Werte mehrerer Felder enthält, aber nur den Speicherplatz eines einzigen Layoutobjekts benötigt. So beinhaltet der Platzhalter im oben gezeigten Beispiel (siehe Abb. vorige Seite) die Werte von drei Dateifeldern. Hierfür lohnt sich ein weiterer Vergleich. Bei der Darstellung dieser drei Dateifelder via Platzhalter ändert sich nichts an der Größe, es bleibt bei 6,6 kB. Anders sieht es bei der Darstellung mit Feldern aus: Hier muss die Größe von 7,17 kB dreimal gerechnet werden, was 21,51 kB ergibt. Die Differenz liegt nun bereits bei 14,91 kB, was einem ca. 70 % geringeren Datentransfer entspricht. Viele Entwickler haben sicherlich schon vergeblich versucht, die Größe eines Platzhalters zu reduzieren. Nutzt man dazu die Maus, springt der Platzhalter wieder auf die minimal erforderliche Größe zurück, die zur Darstellung des Textes im Layoutmodus benötigt wird. Selbst bei sparsam gestalteten Layouts mit wenigen Layout­ objekten kann der Einsatz von Platzhaltern erhebliche Performancesteigerungen zur Folge haben. Insbesondere bei langsamen Netzwerken, externen FileMaker Servern sowie unter FileMaker Go oder Webdirekt kommt es auf jedes gesparte Byte an. Verwendet man jedoch stattdessen den Inspektor, lässt sich eine beliebige Größe für den Platzhalter einstellen. Wie lassen sich Objektgrößen ermitteln? Auf der Homepage des amerikanischen Entwicklers Richard Carlton2 gibt es ein Tool namens RCC Layout Optimization, mit dem sich unter anderem die Größe eines oder mehrerer Layoutobjekte ermitteln lässt. Darüber hinaus können Layoutobjekte ausfindig gemacht werden, die keinem Stil zugeordnet wurden. Dieses Tool hat sich für mich als sehr nützlich bei der Gestaltung schlanker und damit performanter Layouts erwiesen. Allerdings ist Vorsicht geraten, denn ein erneutes Klicken auf den Platzhalter lässt ihn wieder zur ungeliebten Größe aufspringen. Aber auch das lässt sich vermeiden, und zwar mithilfe einer Fixierung. Zwar vergrößert sich der Platzhalter auch in diesem Fall, wenn er angeklickt wird, aber der Zustand ist nur vorübergehend und der Platzhalter nimmt wieder die gewünschte Größe an, sobald er nicht mehr ausgewählt ist. Dieses Verhalten ist sehr praktisch, weil man dadurch den Inhalt eines Platzhalters sehen kann, ohne seine Größe zu verändern. Konnte ich Ihnen mit diesem Beitrag den Einsatz von Platzhaltern schmackhaft machen? Falls ja, wünsche Ihnen dabei viel Spaß und Erfolg! Fußnote 1 www.filemaker.com/help/14/fmp/de/html/glossary.html#1063205 2 http://rcconsulting.com/downloads.html Bessere Performance durch Platzhalter Ein weiterer Vorteil von Platzhaltern ist ihr geringer Speicherbedarf im Layout. 22 FMM_201601 © 1994 – 2016 K&K Verlag GmbH, Hamburg FileMaker Server Thomas Hirt (Jg. 1975) studierte Biochemie und Software Engi­ neering. Er arbeitet seit 25 Jahren als IT-Adminis­ trator und IT-Consultant und entwickelt seit 2009 FileMaker Lösungen. [email protected] Beliebige SSL-Zertifikate für FileMaker Server 13 und 14 Wie man FileMaker Server dazu bringt, Zertifikate aller gängigen Certificate Authorities zu akzeptieren Jeder, der FileMaker Server betreibt und das Thema ­„Sicherheit“ ernst nimmt, muss sich mit SSL-Zertifikaten beschäftigen, da Verbindungen zu FileMaker Server nur bei aktivierter SSL-Verschlüsselung abgesichert sind. Das von FileMaker mitgelieferte Zertifikat ist jedoch lediglich zu Testzwecken geeignet, darüber hinaus akzeptiert FileMaker Server nur SSL-Zertifikate von wenigen, vorde­ finierten Certificate Authorities (CAs). In diesem Beitrag möchte ich Ihnen zeigen, wie man es schafft, dass FileMaker Server unter Microsoft Windows Server Betriebssystemen auch SSL-Zertifikate anderer CAs akzeptiert. Ein Hinweis vorweg: Dieser Artikel geht nur auf FileMaker Server unter Microsoft Windows Server ein. Da es in meinem Umfeld keine FileMaker Server unter Mac OS X gibt, beschäftige ich mich auch nicht damit. Ich weiß daher nicht, ob das hier beschriebene Verfahren auch für FileMaker Server unter Mac OS X funktioniert. Wir setzen das hier beschriebene Vorgehen aber erfolgreich für FileMaker Server 13 und 14 unter Windows Server 2008 R2, 2012 und 2012 R2 ein. Welche Certificate Authority? FileMaker veröffentlicht in seiner Knowledge Base unter der Answer ID 11413 eine kurze Liste mit Certificate Authorities (CAs), von denen sich wiederum nur wenige Zertifikatstypen in Kombination mit FileMaker Server verwenden lassen. Diese CAs sind Comodo, Entrust, GoDaddy, GeoTrust, Symantec und Thawte. Bestimmt haben sich viele von Ihnen schon über diese kurze Liste gewundert, schließlich gibt es Dutzende von CAs. Ein Schelm, wer Böses dabei denkt … FMM_201601 Es gibt aus meiner Sicht zwei Gründe, wieso diese Einschränkungen unerwünscht oder gar höchst problematisch sein ­können: Zum einen dürfen Serveradministratoren in größeren Organisationen meist nicht frei entscheiden, welche Zertifikate sie gerne hätten. Häufig hat sich eine Organisation für eine CA entschieden und dazu klare Prozesse etabliert. Anders gesagt: Ein Administrator kann und/oder darf häufig gar kein Zer­ tifikat der von FileMaker Server unterstützten CAs oder Zertifikatstypen lösen. Zum anderen gibt es extrem preiswerte und sogar kostenfreie Zertifikate, die aus finanzieller Sicht insbesondere für kleine Organisationen oder auch zu Übungs- und Testzwecken interessant sind. Diese besonders preiswerten Zertifikate stehen für FileMaker Server leider nicht zur Verfügung. Um Ihnen zu zeigen, wie Sie diese Beschränkungen umgehen können, setze ich ein Zertifikat ein, das nicht von FileMaker Server unterstützt wird. Ich habe mich für ein StartCom Class 1 Server Zertifikat entschieden, das man kostenfrei für die Dauer von einem Jahr lösen kann. FileMaker Go Es gibt eine Einschränkung, derer man sich beim Einsatz von Zertifikaten, die nicht von FileMaker Inc. vorgesehen sind, bewusst sein muss: Sie werden von FileMaker Go nicht akzeptiert. Nach meinem Verständnis muss FileMaker Go die sogenannten Wurzel- und Zwischenzertifikate (Root und Intermediate Certificates) einer CA enthalten, wenn eine sichere 23 FileMaker Server Verbindung zwischen FileMaker Go und FileMaker Server mit einem Zertifikat dieser CA aufgebaut werden soll. Soweit ich weiß, gibt es keine Möglichkeit, FileMaker Go auf die Zertifikate zusätzlicher CAs zu erweitern. Inc. nicht vorgesehenen CA unterzuschieben, benötigen Sie Folgendes: SSL-Zertifikate: eine Wissenschaft für sich 2. das Zwischenzertifikat (Intermediate Certificate) der CA als BASE64-codierte Reintextdatei Als ich vor Jahren zum allerersten Mal ein SSL-Zertifikat benötigte, dauerte es eine ganze Weile, bis ich mich in all die Begriffe eingearbeitet hatte. Erschwerend kommt hinzu, dass sich die Prozesse zum Lösen eines Zertifikats von CA zu CA und von Servertyp zu Servertyp leicht unterscheiden. Man bindet ein SSL-Zertifikat in einen Apache Webserver z. B. ganz anders ein als in einen FileMaker Server. Falls Sie sich mit SSL-Zertifikaten noch gar nicht auskennen, empfehle ich Ihnen, sich zunächst etwas einzulesen. Da die großen CAs (z. B. GoDaddy oder Thawte) ein Interesse daran haben, ihre Zertifikate zu verkaufen, versuchen sie, ihren Kunden zu helfen. Entsprechend finden Sie dort gute HilfeBereiche mit praxisorientierten Anleitungen. Natürlich sind diese Anleitungen teilweise auf die Details des Prozesses bei der jeweiligen CA abgestimmt, aber die Anleitungen enthalten auch sehr viele allgemeine Informationen zum Vorgehen und auch zu verschiedenen Arten von Servern. Wenn Sie sich einige Basisinformationen erarbeitet haben, sollten Sie sich mit den von FileMaker Inc. zur Verfügung gestellten Anleitungen beschäftigen. Folgende Quellen, die als Bestandteil der Produktdokumentation von der FileMaker Website heruntergeladen werden können, sind hilfreich: n FileMaker Server 14, Einführung, Kapitel 7: „Einrichten des Web-Servers“ n FileMaker Pro 14, FileMaker Server Hilfe, Kapitel: „Datenbank-Server-Sicherheitseinstellungen“, S. 73ff. n FileMaker Pro 14, FileMaker Server Hilfe, Kapitel: „Sichern Ihrer Daten“, S. 145ff. Zertifikatsignieranforderung (Certificate Signing Request) Bei vielen CAs muss man zum Beantragen eines Zertifikats eine sogenannte „Zertifikatsignieranforderung“ (auf Englisch „Certificate Signing Request“ oder kurz CSR) einreichen. Für FileMaker Server muss man eine CSR über die Kommandozeile (auf Englisch „Command Line Interface“ oder kurz CLI) erstellen. Das funktioniert zwar einwandfrei und ist in der Produktdokumentation zu FileMaker Server auch erklärt, doch meiner Ansicht nach ist dieses Verfahren für Einsteiger eher ungeeignet. Meine Empfehlung für die ersten Gehversuche wäre eine CA, bei der man Zertifikate auch ohne CSR erhalten kann. StartCom ist eine solche CA. Was Sie benötigen Um FileMaker Server ein SSL-Zertifikat einer von FileMaker 24 1. das Wurzelzertifikat (Root Certificate) der CA als BASE­ 64-codierte Reintextdatei 3. Ihre von der CA signierte Zertifikatsdatei für Ihren Servernamen (z. B. myserver.mydomain.com) als BASE64codierte Reintextdatei 4. die private Schlüsseldatei (Private Key) zu Ihrem Zertifikat als BASE64-codierte Reintextdatei 5. falls die private Schlüsseldatei (Private Key) verschlüsselt vorliegt, ist zudem das Passwort notwendig, das zur Verschlüsselung verwendet wurde Bezüglich dieser Auflistung gehe ich davon aus, dass Sie alle aufgeführten Dateien von Ihrer CA erhalten (z. B. von StartCom) und die FileMaker Server Admin Konsole verwenden. Sollten Sie ein Zertifikat mit CSR über das FileMaker CLI beantragen und importieren, entsteht die private Schlüsseldatei (Private Key) beim Ausführen des entsprechenden „create“Befehls gemäß FileMaker Server Produktdokumentation. Eigentlich sind die Dateiendungen der vier oben erwähnten Dateien (Wurzelzertifikat, Zwischenzertifikat, Zertifikatsdatei und private Schlüsseldatei) relativ klar vorgegeben. Leider werden die Endungen teils nicht wie vorgesehen verwendet, sodass Sie sich nicht darauf verlassen können. Mein Tipp: Schauen Sie sich die Dateien, die Sie von Ihrer CA erhalten, mit einem Reintexteditor an. Ich verwende unter Windows gerne Notepad++ oder den für Windows und Mac verfügbaren Editor Sublime Text. Die Dateien sollten im Format UTF-8 ohne BOM (Byte Order Mark) vorliegen und dürfen nur die Zeichen der BASE64-Codierung enthalten.1 Mir sind schon Wurzelzertifikate und Zwischenzertifikate untergekommen, die von den entsprechenden CAs nicht als BASE64-codierte Reintextdateien, sondern nur in einem Binärformat zum Download angeboten wurden. Dieses Binärformat nennt sich DER (Distinguished Encoding Rules) und muss zunächst konvertiert werden. Wenn Sie sich zufällig mit dem Tool OpenSSL auskennen, können Sie dieses zur Konvertierung verwenden. Ansonsten empfehle ich Ihnen eine Website wie https://www.sslshopper.com/ssl-converter.html oder https://cheapsslsecurity.com/ssltools/ssl-converter.php, wo Sie eine Datei im Binärformat hochladen und von DER zu PEM konvertieren können. Eine Datei im PEM-Format ist BASE64-codiert und daher für unsere Zwecke brauchbar. Hinzufügen der neuen CA zu FileMaker Server Damit FileMaker Server Ihr neues Zertifikat akzeptiert, muss das Programm zunächst wissen, dass es Ihre CA überhaupt gibt. Dazu geben Sie den Reintextdateien, die das Wurzel- FMM_201601 FileMaker Server zertifikat (Root Certificate) und das Zwischenzertifikat (Intermediate Certificate) enthalten, aussagekräftige Namen, damit Sie sie jederzeit eindeutig identifizieren können. Für mein StartCom-Zertifikat habe ich die beiden Dateien z. B. folgendermaßen benannt: StartCom Certificate Authority.pem StartCom Class 1 DV Server CA.pem Kopieren Sie die Dateien anschließend in die folgenden Ordner auf Ihrem Windows Server (beide Dateien müssen in beide Ordner kopiert werden!) … C:\Program Files\FileMaker\FileMaker Server \Database Server\Extensions\OpenSSL\RootCA\ C:\Program Files\FileMaker\FileMaker Server \Web Publishing\publishing-engine\cwpc\Extensions\ OpenSSL\RootCA\ … und starten Sie den FileMaker Server-Dienst neu. Bei jedem Neustart generiert der FileMaker Server-Dienst die Datei C:\Program Files\FileMaker\FileMaker Server\ CStore\root.pem neu. Diese Datei enthält eine Aneinanderreihung sämtlicher von FileMaker Server akzeptierten CAs. Als Grundlage zur Erstellung der Datei root.pem dienen die Reintextdateien in den beiden weiter oben genannten Ordnern namens „RootCA“. FileMaker Server wird Sie daraufhin mit einem großen, roten Warnhinweis auffordern, den Server-Dienst neu zu starten. Tun Sie das. Nach der Neuanmeldung an der FileMaker server Admin Konsole sollte auf dem Reiter „Sicherheit“ in der Rubrik „Datenbank-Server“ unter dem Untertitel „SSL-Verbindungen“ folgender Hinweis erscheinen: „Das auf diesem Server installierte, eigene SSL-Zertifikat stammt von einer Certificate Authority, die von FileMaker unterstützt wird.“ Aktivieren Sie Ihr Zertifikat Nun können Sie Ihr signiertes Zertifikat über die FileMaker Server Admin Konsole importieren. Verwenden Sie dazu die Taste „Zertifikat importieren …“ auf dem Reiter „Sicherheit“ in der Rubrik „Datenbank-Server“: Et voilà. Nun können Sie über den im Zertifikat hinterlegten DNS-Namen (im Beispiel ist das der Hostname „fmhost. hrc.systems“) sauber verschlüsselte Verbindungen zu Ihrem FileMaker Server herstellen – vorausgesetzt, Ihr Server ist über diesen DNS-Namen auch tatsächlich erreichbar und alle Firewall-Einstellungen sind richtig: Im Dialog „Zertifikat importieren“ wählen Sie über die beiden „Durchsuchen …“-Tasten zunächst Ihr signiertes Zertifikat und danach Ihre private Schlüsseldatei aus. Falls Letztere verschlüsselt ist, fügen Sie das Passwort zur Entschlüsselung ins Feld „Privates Schlüsselpasswort“ ein. Das funktioniert sowohl über WebDirect als auch mit FileMaker Pro. In beiden Fällen erkennen Sie die korrekt verschlüsselten Verbindungen am Schlosssymbol: FMM_201601 25 FileMaker Server Anzeige Zusammenfassung Wenn Sie FileMaker Server unter einem Microsoft Server Betriebssystem einsetzen und keine iOS-Clients darauf zugreifen müssen, können Sie die Beschränkung von FileMaker auf SSL-Zertifikate weniger CAs umgehen. Dazu müssen Sie das Wurzel- und das Zwischenzertifikat als Reintextdateien in zwei bestimmte Ordner kopieren und den FileMaker ServerDienst neu starten. Danach können Sie Ihr Zertifikat erfolgreich in FileMaker Server importieren. Ein Dankeschön zum Schluss Es gibt eine Person, der im Kontext dieses Artikels ein ganz besonderes Dankeschön gebührt. Mein Kollege Steve Rast ist Windows Administrator mit Leib und Seele. Ihn hat die Einschränkung von FileMaker Server auf Zertifikate, die in seiner Umgebung nicht verfügbar sind, vor größere Probleme gestellt, sodass er sich die Zeit genommen hat, nach einem Workaround zu suchen. Das Verfahren, das ich Ihnen in diesem Beitrag vorgestellt habe, wurde von ihm entwickelt. ♦ Fußnote 1 Siehe Wikipedia: https://de.wikipedia.org/wiki/Base64 Kleinanzeigen Suche gebrauchten Mac Mini i5, 2.6 GHz, 8 GB, aus 2014 oder 2015 nach Möglichkeit mit SSD. [email protected] FileMaker Pro 11 Lizenz abzugeben. [email protected] Mac Serverhousing: Sie haben eine Lösung, die Sie mit Mac OS X im Internet bereitstellen wollen? Einen FileMaker Server, Kerio-Server, Webserver, ownCloud oder Daylite? Dann könnte unser Mac Serverhousing für Mac mini oder Mac Pro genau das Richtige für Sie sein. Wir bieten Ihnen die schnellste Internet-Anbindung in einem der modernsten Rechenzentren in Frankfurt am Main mit einer Direktanbindung mit jeweils 10GE an das DE-CIX, die Deutsche Telekom sowie Level 3. Mehr erfahren … [email protected] FileMaker Pro 11 Lizenzen: ich suche 2-5 Clientlizenzen, evt. eine Serverlizenz. Alle für Windows. Freue mich über Ihre Hilfe und Ihr Angebot. Besten Dank. [email protected] Hallo alle zusammen, wer kann mir (gegen Rechnung) einen FileMaker Server für den Zugriff über das Internet einrichten? Am liebsten wäre mir ein persönlicher Kontakt – also jemand aus Berlin. Momentane Konfiguration: Mac Mini Rechner 10.8.5 | FileMaker Server 26 12.0.3.327 | AC1750 Wireless Dual Band Gigabit Router | feste IP im eigenen Netzwerk. Ziel soll es sein, dass eine Person aus München z. B. via Win10-Browser auf die Datenbank zugreifen kann. [email protected] FileMaker Entwickler aus Berlin, mit mehrjähriger Erfahrung in verschiedensten Branchen, bietet freie Mitarbeit bei der Pflege, Erweiterung und Neuentwicklung von FileMaker Datenbanken aller Art. Migration zu FileMaker 14 und Anbindung an SQL-Server. E-Mail Telefon [email protected] Mobil +49 30 588 917 27 Fax +49 177 2062394 +49 30 13895776 Ich bin dabei, eine Verwaltung für den Betrieb eines Tonstudios auf FileMaker 13 zu er­ stellen, doch stoße ich mittlerweile an meine Grenzen, da ich einiges einfach nicht mehr hin bekomme. Das heißt, ich suche einen Programmierer, der mich entsprechend unterstützt. Am besten auf Festpreisbasis nach Absprache. [email protected] Suche FileMaker Pro 11 Advanced, Vollversion Mac. [email protected] www.filemaker-magazin.de/magazin/kleinanzeigen Stand: 29.02.2016 FMM_201601 Jörg Wenzel (Jg. 1953) M.A. Publizistik, arbeitet als frei­beruflicher Publizist, Multimedia- und Daten­bankentwickler. Nutzt FileMaker seit der Version 2 und lebt zurzeit in den USA. Weblink [email protected] FileMaker und SQL Teil 11 Sekt oder Selters – Transaktionen Neu in unserer Beispieldatenbank In dieser Folge wurde unsere Beispieldatenbank um das Layout „Transaktionen“, die Scripts „TransaktionVorbereiten“, „TransaktAnwAusführen“, „TransaktCommitRollback“, „Trans­aktionsmodus Abrufen“, „AutoCommitAusschalten“, die Tabellen Transaktionen und Transaktionsanweisungen sowie um einige Variablen, Schaltflächen und Textanzeigen erweitert. In der Tabelle Transaktionen gibt es zurzeit einen Datensatz – die darin befindliche Transaktion kann über die untergeordnete Bezugstabelle Transaktionsanweisungen mit beliebig vielen Anweisungen befüllt werden, die alle einzeln über die zugehörige Schaltfläche ausgeführt werden können. Über „Commit“ oder „Rollback“ werden sie als Ganzes entweder festgeschrieben oder zurückgesetzt. Beim Onlinehandel und im Zahlungsverkehr sind Transaktionen unverzichtbar. Bei einer Transaktion handelt es sich um eine Anzahl von SQL-Anweisungen, die entweder als Ganzes, also vollständig ausgeführt werden oder gar nicht. Bei vollständiger Ausführung werden sie durch „Commit“ beendet und sind danach für alle sichtbar, wohingegen „Rollback“ dafür sorgt, dass alle betroffenen Tabellen in ihren Zustand vor Transaktionsbeginn zurückgesetzt werden. Im Grunde ist bereits eine einzige SQL-Anweisung eine Transaktion, wenn sie zur Data Manipulation Language (DML) gehört, also verändernd auf die Datenbank zugreift. So kann die nachfolgende Anweisung nur vollständig oder gar nicht ausgeführt werden: Name: $$Ergebnis Wert: MBS ("FM.ExecuteSQL"; "DELETE FROM Kunden WHERE autor LIKE '%Grass' ") Auch die FileMaker Anweisung Gefundene Datensätze löschen verfährt nach diesem Prinzip: Entweder werden alle gefundenen Datensätze gelöscht oder gar keiner – es wird nie die Hälfte, ein Viertel oder dergleichen gelöscht. FMM_201601 Sie selbst können beliebig viele Transaktionen in der Haupttabelle hinterlegen und auch bei der Anzahl der Anweisungen in der zugehörigen Tabelle Transaktionsanweisungen sind Ihnen keine Grenzen gesetzt. Das Ergebnis können Sie jederzeit mit einer SELECT-Anweisung, die das Feld Transaktionen::ergebnis befüllt, kontrollieren (siehe Abb. 1). Wäre das nicht der Fall, würde die Datenbank mit jeder ausgeführten DML-Anweisung zunehmend inkonsistenter und irgendwann völlig unbrauchbar. Von daher ist die Feststellung, dass auch FileMaker Transaktionen kann, durchaus richtig. Allerdings wird unter „Transaktion“ normalerweise die Ausführung nicht nur einer Anweisung verstanden, sondern der Begriff bezieht sich auf eine Reihe von SQL-Anweisungen, die eine Einheit bilden. Hinzu kommt, dass diese häufig auf Datenbanksysteme zugreifen, die sich auf unterschiedlichen Rechnern an verschiedenen Orten befinden. Über einen Workaround lassen sich solche Transaktionen auch mit FileMaker ausführen. Dabei machen wir uns die Eigenschaft zunutze, dass FileMaker bei einer Beziehung, über die in der untergeordneten Tabelle Datensätze erstellt bzw. gelöscht werden dürfen, die Änderungen erst dann schreibt, wenn diese im Datensatz in der übergeordneten Tabelle „geschrieben“ also „commited“ wurden.1 Wir wollen uns allerdings ausschließlich mit den Möglichkeiten von Transaktionen in FileMaker unter Verwendung von SQL beschäftigen, was nur mit externen SQL-Datenbanksystemen funktioniert. Auch die Funktionskomponente FMSQL von Monkeybreadsoftware (MBS), die die interne FileMaker Engine für ihre Datenbankzugriffe nutzt, sowie der Zugriff über ODBC mittels des Script-Schrittes „SQL Ausführen“ müssen passen. 27 © 1994 – 2016 K&K Verlag GmbH, Hamburg Grundlagen Grundlagen Die in den vorangegangenen Folgen vorgestellte SQL-Komponente von MBS unterstützt Transaktionen mit externen SQL-Datenbanken, 2 wobei es allerdings die Eigenschaften des jeweiligen Datenbankmanagementsystems (DBMS) zu beachten gilt. Während z. B. der SQL-Server von Microsoft Transaktionen explizit unterstützt, bietet MySQL eine implizite Transaktionsunterstützung. Das heißt, beim Microsoft SQL-Server muss mit BEGIN TRANSACTION explizit angegeben werden, wenn eine Transaktion gestartet werden soll, um später ein ROLLBACK oder COMMIT TRANSACTION zu ermöglichen – beim MySQL-Server ist das jederzeit möglich. Arbeitet man allerdings in der MySQLeigenen Arbeitsumgebung „Workbench“, muss man zunächst über den Menüpunkt Query ➝ Auto-Commit Transactions den dort befindlichen Haken entfernen. Zudem bieten die meisten SQL-Systeme Savepoints. Diese sind bei umfangreicheren Transaktionen hilfreich, da eine misslungene Transaktion nicht unbedingt vollständig „zurückgerollt“ werden muss, sondern auch nur bis zu einem ausgewählten Savepoint zurückgesetzt werden kann. Bei Transaktionszugriffen auf MySQL-Datenbanken über das MBS-Plugin gibt es solche Savepoints leider nicht, aber ansonsten werden Transaktionen vollständig unterstützt. Um sie erfolgreich abwickeln bzw. zurückrollen zu können, gilt es noch einige vorbereitende Schritte durchzuführen. Viele davon sind bereits in den Folgen 9 und 10 dieser Serie vorgestellt worden und müssen lediglich ein wenig umorganisiert werden. Transaktion vorbereiten So habe ich das vorbereitende Script „TransaktionVorbereiten“ von dem Script „Datenbanköffnen“ aus Folge 9 abgeleitet: TransaktionVorbereiten 1 Variable setzen Name:$$RollbackCommit Wert:"" 2 # Platz für eine neue Datenbankverbindung­reservieren 3 Variable setzen Name:$$Connection Wert:MBS("SQL.NewConnection") 11 # Mit Datenbank verbinden. Lesend, schreibend. 12 # Tabellenerzeugung möglich. Dateierstellung bei Bedarf. 13 Variable setzen Name:$result Wert: MBS ("SQL.Connect"; $$Connection;$db; $name; $pass; "MySQL") 14 Fenster aktualisieren [] 15 Wenn Wert: $result = "OK" 16 Aktuelles Script verlassen 17 Sonst 18 Eigenes Dialogfeld anzeigen Meldung:"Error: " & $result 19 Variable setzen Name:$result Wert: MBS("SQL.FreeConnection"; $$Connection) 20 Alle Scripts abbrechen 21 Ende (wenn) Verändert wurde die ursprüngliche Zeile 14 und jetzige Zeile 16, die das Script nun ohne Ergebnisübergabe verlässt. Weiterhin wurde die lokale Variable $Connection in die globale Variable $$Connection umbenannt und am Script-Anfang wurde eine Definition für die von dem Script „TransaktCommitRollback“ verwendete Variable $$RollbackCommit eingefügt, sodass sie zu Beginn einer neuen Transaktion geleert wird. Außerdem wird in Zeile 14 das Fenster aktualisiert. Während wir das Script „Datenbanköffnen“ genutzt haben, um eine vollständige Aktion in Einheit mit dem aufrufenden Script „SQLAusführen“ durchzuführen und danach die Verbindung zu MySQL zu beenden, benötigen wir in dieser Folge eine andere Programmlogik. Verbindung herstellen und halten Zunächst soll über das Script „TransaktionVorbereiten“ eine Verbindung zur MySQL-Datenbank buchshop hergestellt werden, die so lange gehalten wird, bis wir alle für unsere Transaktion gewünschten Anweisungen ausgeführt haben. Danach wird die Verbindung über das Script „TransaktCommitRollback“ beendet. 4 Variable setzen Name:$db Wert:Transaktionen::serverunddatenbankname 5 Variable setzen Name:$name Wert:Transaktionen::accountname 6 Variable setzen Name:$pass Wert:Transaktionen::passwort 7 # Dem Plugin mitteilen, dass wir MySQL benutzen wollen 8 Variable setzen Name:$result Wert: MBS("SQL.SetClient"; $$Connection; "MySQL") 9 # Dem Plugin mitteilen, wo die MySQL Library ist 10 Variable setzen Name:$result Wert: MBS ("SQL.SetConnectionOption"; $$Connection; "MYSQL.LIBS"; Transaktionen::pfadmysqllib) 28 Grundlage dafür ist die Initiierung einer Verbindung mithilfe von „MBS(„SQL.NewConnection“)“, siehe Zeile 3 im Script „TransaktionVorbereiten“. Anschließend werden in den Zeilen 4 bis 6 die Werte für den Server und den Datenbank­ namen in $db, der Accountname in $name und das Passwort in $pass geschrieben. Dass das Datenbanksystem „My­ SQL“ über die Verbindung $$Connection genutzt werden soll, legen wir mit „MBS("SQL.SetClient"; $$Connection; „MySQL“)“ fest (Zeile 8). In Zeile 10 wird mit „MBS("SQL. SetConnectionOption"; $$Connection; "MYSQL.LIBS"; Transaktionen::pfadmysqllib)“ angegeben, welche Library benutzt werden soll und wo diese zu finden ist. Die gewünschte Verbindung wird in Zeile 13 mit „MBS("SQL.Connect"; $$Connection;$db; $name; $pass; "MySQL")“ hergestellt. FMM_201601 Grundlagen Anweisungen zu Transaktionen bündeln Wir wollen nun eine beliebige Anzahl schreibender Anweisun­ gen in der Tabelle lieblingskundenv4 durchführen, um uns danach (oder auch zwischendurch) mithilfe einer SELECTAnweisung den Zustand der Tabelle lieblingskundenv4 über die gleiche Verbindung anzusehen. In der Programmlogik der Scripts aus den Folgen 9 und 10 hätten wir unterschiedliche Verbindungen für jede auszuführende Anweisung gehabt und den Zustand innerhalb einer Transaktion nicht ermitteln können. Jede Anweisung, die sich im Feld sqlanweisung der Tabelle Transaktionsanweisungen befindet, wird durch die zugehörige Schaltfläche „Ausführen“ individuell gestartet, die dazu das Script „TransaktAnwAusführen“ aufruft: TransaktAnwAusführen 1 # SQL-Anweisung(en) für Transaktion ausführen. 2 Variable setzen Name:$SQL_string Wert:Transakt_Anweisungen::sqlanweisung 3 Variable setzen Name:$Command Wert: MBS( "SQL.NewCommand"; $$Connection; $SQL_string; ) 4 Variable setzen Name:$result Wert: Über „MBS( "SQL.isResultSet"; $Command)“ in Zeile 5 wird ermittelt, ob das Ergebnis ein „ResultSet“, unter FileMaker eine Ergebnismenge liefert. Ist das der Fall, werden vorname und nachname mithilfe der Funktionen „SQL.Fetchnext“ und „SQL.GetFieldAsText“ über eine Schleife Zeile für Zeile in das Feld ergebnis der Tabelle Transaktionen geschrieben. Wurde die gewünschte Anzahl SQL-Anweisungen ausgeführt, wird die Verbindung zur MySQL-Datenbank über ein „Commit“ oder ein „Rollback“ im Script „TransaktCommitRollback“ geschlossen und der dafür reservierte Speicherplatz wieder freigegeben. Transaktions-Interface Im Layout „Transaktionen“ (siehe Abb. 1) sind die bisher gezeigten Möglichkeiten nebst einigen weiteren in einer übersichtlichen Oberfläche dargestellt, sodass Sie ein unmittelbares Feedback zu den durchgeführten Experimenten bekommen. Hier können Sie nach Herzenslust experimentieren und Ihr Verständnis von Transaktionen unter FileMaker, dem MBS-Plugin und MySQL vertiefen. Rechts oben finden Sie die bereits aus den vorangegangenen Folgen bekannten Parameter, die Sie benötigen, um eine Verbindung zu Ihrer MySQL-Datenbank herzustellen. MBS("SQL.Execute"; $Command) 5 Variable setzen Name:$result Wert: MBS( "SQL.isResultSet"; $Command) 6 Wenn Wert: $result = 1 7 Feldwert setzen Feld:NameTransaktionen::ergebnis Wert:"" 8 Schleife (Anfang) 9 Variable setzen Name:$$ergebnis Wert: MBS ("SQL.FetchNext"; $Command) 10 Verlasse Schleife wenn Wert: $$ergebnis = "0" 11 Variable setzen Name:$vorname Wert: MBS ("SQL.GetFieldAsText"; $command; "vorname") 12 Variable setzen Name:$nachname Wert: MBS ("SQL.GetFieldAsText"; $command; "nachname") 13 Feldwert setzen Abb. 1: Das Layout „Transaktionen“ fasst alle in dieser Folge vorgestellten Scripts und Anweisungen übersichtlich zusammen. Feld:Transaktionen::ergebnis Wert: Transaktionen::ergebnis & $vorname & " " & $nachname & "¶" 14 Schleife (Ende) 15 Fenster aktualisieren Option: Join-Ergebnisse im Cache löschen Im Mittelpunkt des Layouts stehen die beiden Tabellen Transaktionen und Transaktionsanweisungen, die über eine Beziehung zwischen den Feldern id und id_transaktionen miteinander verbunden sind. Option: Externe Daten im Cache löschen 16 Ende (wenn) In Zeile 2 wird der Wert von sqlanweisung in die V ­ ariable $SQL_string eingelesen, die in Zeile 3 an die Funktion „MBS("SQL.NewCommand"; $$Connection; ­$SQL_string;)“ übergeben wird, die wiederum die Variable $Command erzeugt. Mit der Funktion „MBS("SQL.Execute"; $Command)“ wird diese Variable dann zur Ausführung gebracht. FMM_201601 Abb. 2: Die beiden Tabellen Transaktionen und T ­ ransaktionsanweisungen sind über eine Beziehung zwischen den Feldern id und id_transaktionen verbunden. 29 Grundlagen Die Schaltfläche „Transaktion vorbereiten“, die sich links oben im Layout befindet, startet das Script „TransaktionVorbereiten“, dessen Ergebnis (= die Verbindungsnummer) über die Variable $$Connection in das darunter liegende Textfeld geschrieben wird. Wurde noch keine Verbindung aktiviert, steht dort der Hinweis „keine Verbindung“. In der Abbildung ist die Verbindung 23001 aktiv. Darunter befindet sich die Schaltfläche „Transaktionsmodus abrufen“, der das gleichnamige Script zugewiesen ist. TransaktionsmodusAbrufen 1 Variable setzen Name:$$Transaktionsmodus Wert: MBS ("SQL.GetAutoCommit"; $$Connection ) 2 Fenster aktualisieren Dieses Script ermittelt durch „MBS( "SQL.GetAutoCommit"; $$Connection)“, ob „Autocommit“ ein- oder ausgeschaltet ist. Wurde die MBS-Funktion „SQL.SetAutoCommit“ noch nicht ausgeführt, wird „unknown state: -1“ zurückgeliefert und das Ergebnis unterhalb der Schaltfläche „Autocommit ausschalten“ hinter „Transaktionsmodus:“ angezeigt. Nachdem eine Transaktion vorbereitet wurde, empfiehlt es sich also, das automatische Schreiben nach jeder Anweisung über die Schaltfläche „AutoCommit ausschalten“ zu deaktivieren. Dazu wird das Script „AutoCommitAusschalten“ aufgerufen, das die gewünschte Aktion mit der Funktion „MBS ( "SQL.SetAutoCommit"; $$Connection; "Off " )“ ausführt. Das Ergebnis wird danach unter der Schaltfläche angezeigt. AutoCommitAusschalten 1 Variable setzen Name:$result Wert: MBS ( "SQL.SetAutoCommit"; $$Connection; "Off" ) 2 Variable setzen Name:$$Transaktionsmodus Wert: MBS( "SQL.GetAutoCommit"; $$Connection ) 3 Fenster aktualisieren Unter dem Transaktionsmodus-Textfeld befinden sich die beiden Schaltflächen „Rollback“ und „Commit“, mit denen die aktuelle Transaktion beendet und das Script „TransaktCommitRollback“ aufgerufen wird – allerdings mit unterschiedlichen Parametern. TransaktCommitRollback 7 Ende (wenn) 8 Variable setzen Name:$result Wert: MBS("SQL.FreeCommand"; $Command) 9 Variable setzen Name:$result Wert: MBS("SQL.FreeConnection"; $$Connection) 10 Variable setzen Name:$$Connection Wert: "Keine Verbindung" 11 Variable setzen Name:$$Transaktionsmodus Wert:"" 12 Fenster aktualisieren Beim Klick auf die Schaltfläche „Commit“ wird die Funktion „MBS("SQL.Commit"; $$Connection)“ ausgeführt und alle bisher über die Schaltfläche „Ausführen“abgerufenen SQL-Anweisungen werden in der Datenbank festgeschrieben und für andere Anwender sichtbar. Zudem wird die Variable $$RollbackCommit auf den Wert „Commit ausgeführt“ gesetzt und unter den Schaltflächen „Rollback“ und „Commit“ angezeigt. Würden Sie die in Abb. 1 dargestellte Löschanweisung DELETE FROM buchshop.lieblingskundenv4 über die zugeordnete Schaltfläche ausführen, könnten Sie sich mit der darunterliegenden SELECT-Anweisung SELECT * FROM buchshop.lieblingskundenv4 den in dieser Verbindung aktuellen Zustand der Tabelle lieblingskundenv4 anzeigen lassen und würden feststellen, dass die Datensätze bereits gelöscht sind. Andere Nutzer würden diese Datensätze noch als existent angezeigt bekommen, könnten sie aber nicht bearbeiten, da sie zur Bearbeitung gesperrt sind. Mit einem Klick auf die Schaltfläche „Rollback“ wird das Script „TransaktCommitRollback“ ebenfalls aufgerufen, allerdings werden in diesem Fall alle durchgeführten Anweisungen über die Funktion „MBS("SQL.Rollback"; $$Connection)“ rückgängig gemacht, die Variable $RollbackCommit wird entsprechend belegt und die Verbindung beendet. Nach Erstellen einer neuen Verbindung über „Transaktion vorbereiten“ können Sie mit der obigen SELECT-Anweisung feststellen, dass alle Datensätze von lieblingskundenv4 „wieder da“ sind. 1 Wenn Wert: Hole ( ScriptParameter ) = "Commit" 2 Variable setzen Name:$result Wert: MBS("SQL.Commit"; $$Connection) 3 Variable setzen Name:$$RollbackCommit Wert: "Commit ausgeführt" 4 Sonst, wenn Wert: Hole ( ScriptParameter ) = "Rollback" 5 Variable setzen Name:$result Wert: MBS("SQL.Rollback"; $$Connection) 6 Variable setzen Name:$$RollbackCommit Wert: "Rollback ausgeführt" 30 Bei Ausführung der DELETE-Anweisung mit nachfolgendem „Commit“ wird diese festgeschrieben und die Datensätze sind auch für andere Nutzer nicht mehr abrufbar. Sollten Sie diese Kombination ausgeführt haben und möchten die Tabelle lieblingskundenv4 erneut befüllen, können Sie dazu die Anweisung „Lieblingskunden in lieblingkundenv4 einfügen“ mit der id 19 im Layout „SQLMBS“, Register „Folge 9 und 10“ verwenden. Fazit und Ausblick Nachdem Sie in dieser Folge die Welt der Transaktionen kennengelernt haben, werden wir uns das nächste Mal FMM_201601 Aktuelle Versionen voraus­sichtlich mit Stored Procedures beschäftigen und eine Alternative zu der von MySQL nicht beherrschten MERGEAnweisung entwickeln. ♦ Fußnoten 1 Einzelheiten hierzu finden Sie u.a. unter https://www.youtube.com/watch?v=FQzXs9SXt-U und unter https://www.geistinteractive.com/filemaker-transactions/. Das Video und der Artikel von Geist Interactive sind allerdings auf Englisch. 2 Ob es noch weitere FileMaker Plugins gibt, die das tun, ist mir nicht bekannt. MBS unterstützt folgende externe Datenbanksysteme: Oracle, SQL Server, DB2, Sybase, Informix, InterBase, SQLBase, MySQL, PostgreSQL, SQL Anywhere, ODBC und SQLite. FileMaker 14 (.fmp12) FileMaker Pro FileMaker Pro Advanced FileMaker Server FileMaker Go MacintoshWindows 14.0v514.0v5 14.0v514.0v5 14.0v4a 14.0v4a iPad, iPhone, iPod Touch 14.0.4 Es sind diese Sprachpakete verfügbar: deutsch, englisch, französisch, italienisch, japanisch, spanisch, niederländisch, schwedisch, chinesisch, koreanisch, portugiesisch. Weitere Sprachversionen sind auf Anfrage erhältlich! FileMaker 13 (.fmp12)Macintosh Windows FileMaker Pro 13.0v9 13.0v9 FileMaker Pro Advanced 13.0v9 13.0v9 FileMaker Server 13.0v10 13.0v10 iPad, iPhone, iPod Touch FileMaker Go (.fmp12) 13.0.9 FileMaker 12 (.fmp12) FileMaker Pro FileMaker Pro Advanced FileMaker Server FileMaker Server Advanced FileMaker Server/ Server Advanced FileMaker Go MacintoshWindows 12.0v5 12.0v4 12.0v5 12.0v4 12.0v5 12.0v5 12.0v5 12.0v5 Mac OS 10.9 (Mavericks) 12.0v6 iPad, iPhone, iPod Touch 12.0.8 FileMaker 11 (.fp7) FileMaker Pro FileMaker Pro Advanced FileMaker Server FileMaker Server Advanced FileMaker Go MacintoshWin 11.0v41 11.0v31 11.0v4111.0v31 11.0v5111.0v51 11.0v5111.0v51 iPad, iPhone, iPod Touch 11.0.21 Für alle nachfolgend genannten Produkte leistet FileMaker keinen Support mehr: Anzeige Jetzt inn Versio 6.0 FileMaker 10 (.fp7) FileMaker Pro FileMaker Pro Advanced FileMaker Server FileMaker Server Advanced MacintoshWin 10.0v3 10.0v3 10.0v3 10.0v3 10.0v2 10.0v2 10.0v2 10.0v2 FileMaker 9 (.fp7) FileMaker Pro FileMaker Pro Advanced FileMaker Server FileMaker Server Advanced MacintoshWin 9.0v3 9.0v3 9.0v3 9.0v3 9.0v3 9.0v3 9.0v3 9.0v3 FileMaker 8.5 (.fp7) FileMaker Pro FileMaker Advanced MacintoshWin 8.5v2 8.5v2 8.5v2 8.5v2 FileMaker 8 (.fp7) FileMaker Pro FileMaker Pro Advanced FileMaker Server WPE für Server Advanced FileMaker Mobile MacintoshWin 8.0v3 8.0v3 8.0v3 8.0v3 8.0v4 8.0v4 8.0v3 8.0v3 Palm/Pocket PC 2 8.0v1 FileMaker 7 (.fp7) FileMaker Pro FileMaker Developer FileMaker Server FileMaker Server Advanced MacintoshWin 7.0v3 7.0v3 7.0v3 7.0v3 7.0v3 7.0v3 7.0v3 7.0v3 FileMaker 6 (.fp5) MacintoshWin FileMaker Pro 6.0Dv46.0Dv4 FileMaker Developer 6.0Dv4 6.0Dv4 FileMaker Pro Unlimited 6.0Dv4 6.0Dv4 Web Companion 6.0Dv1/Dv236.0Dv1 OS 9 Win FileMaker Server 5.5Dv1 5.5Dv1 Mac OS X 5.5Dv4 Palm/Pocket PC FileMaker Mobile 2.1D Updates/Patches www.filemaker-magazin.de/service/aktuelle-filemaker-versionen 1 2 3 Der Support durch den Hersteller für die Produktfamilie FileMaker 11 endet am 25.09.2015. Kompatibel mit FileMaker 8.0, FileMaker 8.5 und FileMaker 9.0. Nur für Mac OS X. Aktuelle Änderungen werden – wenn vorhanden – in roter Schrift aufgeführt! FMM_201601 Stand: 26.02.2016 31 Neuigkeiten Neues aus der FileMaker Welt Die Website des FileMaker Magazins ­ ist jetzt responsive Das Online-Angebot des FileMaker Magazins wurde komplett im Responsive Design überarbeitet. Responsive Webdesign nutzt eine aktuelle Technik, die das einheitliche Anzeigen von Inhalten auf einer Webseite gewährleistet. Das Layout wird so flexibel gestaltet, dass es auf dem Computer-Desktop, dem Tablet und dem Smartphone eine gleichbleibende Benutzerfreundlichkeit bietet und die Inhalte komplett und schnell vom Besucher erfasst werden können. n JSON: Die JSON-Funktionen wurden grundlegend über­arbeitet. So können jetzt statt JSON als Text auch Referenznummern übergeben werden, wodurch das Parsen und damit die ganze Funktion deutlich schneller läuft. n Neue Funktionen zum Abfragen von LDAP-Servern: Wenn Sie LDAP-Server oder Active-Directory nutzen, können Sie nun suchen und die Ergebnisse abfragen sowie Einträge hinzufügen, ändern, löschen oder umbenennen. n Neue DNSLookup-Funktionen: Sie können nun IPv4oder IPv6-Adressen zu einem Domainnamen bzw. den Namen zur IP-Adresse ermitteln. n Für Zip-Archive: Hier gibt die beiden neuen Funktionen „UnZipFile.ExtractFiles“ (extrahiert alle Dateien eines offenen Zip-Archivs in einen Ordner) und „ZipFile.CompressFiles“ (fügt Dateien zu einem Zip-Archiv hinzu). n Das Responsive Design optimiert die Website auch für mobile Geräte n Die Webseiten sind schneller und noch sicherer als zuvor n Der Webshop wurde komfortabler gestaltet, weitere Verbesserungen folgen n Die Website läuft mit dem RadiantMagic-System zur Erleichterung der Integration weiterer Funktionen n Neuanmeldungen erfolgen für Forum, Newsletter etc. jetzt im sicheren Double-Opt-In-Verfahren n Die SQL-Neuerungen betreffen die Befehle „Insert“, „Update“ und „Delete“: „FM.UpdateRecord“ (Datensatzaktualisierung ohne Layoutwechsel), „FM.InsertOrUpdateRecord“ (aktualisiert einen vorhandenen Datensatz oder fügt einen neuen hinzu), „FM.DeleteRecord“ (Datensatz ohne Beziehung oder Layoutwechsel löschen). Verantwortlich für den Relaunch auf die neueste Server- und WebTechnologie zeichnet Stefan Husch von qutic development. Er betreut die Webseiten des FileMaker Magazins seit 2010. n HTML: Sie können HTML auch in die Zwischenablage kopieren bzw. abfragen. Verbesserungen gibt es auch bei den Hash-, FSEvents-, Pfad-, Preferences-, Fenster-, ­Listen- und PDFKit-Funktionen. https://filemaker-magazin.de/neuigkeit/3859 n Für Entwickler: Es gibt Kontextmenüs in einigen ListenSteuerelementen und die Farben für Formeln aktivieren sich erst, wenn Sie den Scripteditor öffnen, damit normale Benutzer von dieser Funktion nicht irritiert werden. Systemvoraussetzungen: Mac OS X 10.6 oder neuer, inklusive Mac OS X 10.11 Windows XP und neuer, inklusive Windows 10 FileMaker 9 bis 14 MBS-Plugin in Version 6.0 Monkeybread Software hat das „MBS-Plugin für File­ Maker“ mit neuen Funktionen versehen und in der runden Version 6.0 veröffentlicht. Mit mehr als 3.500 Features zählt das Plugin zu den größten FileMaker Erweiterungen auf dem Markt. n DynaPDF-Funktionen: Der neue Befehl „Optimize“ dient dazu, eine PDF-Datei neu aufzubauen und zu reparieren. Außerdem gibt es z. B. die Befehle „DynaPDF.ExtractText“ und „DynaPDF.ExtractPageText, um einzelne Texte aus PDF-Dateien bzw. Texte einer ganzen Seite zu extrahieren. 32 Das MBS-Plugin erhalten Sie ab € 99 (zuzüglich MwSt.) im FMM Webshop oder auf der Webseite des Herstellers. Webshop www.filemaker-magazin.de/neuigkeit/3863 Neue Webinare zu FileMaker Auch im Jahr 2016 veranstaltet FileMaker wieder zahlreiche Webinare für Einsteiger und Anwender. FMM_201601 Neuigkeiten Die Webinare zu unterschiedlichen Themenbereichen sind kostenlos und können live oder als Aufzeichnung angesehen werden. Das Angebot wird laufend aktualisiert. n Einführung in die Entwicklung maßgeschneiderter Apps n Webinar-Serie zu den FileMaker Training Series: Basics, dem kostenlosen FileMaker Training zum Selbststudium n Die Vorteile von FileMaker Server 14 n Ihre App im Web Hier finden Sie eine Übersicht der aktuellen FileMaker Webinare 2016 und das Archiv aller aufgezeichneten Übertragungen: www.filemaker.com/de/learning/webinars/index.html Ihre FileMaker Go Lösung als echte App Wer seine FileMaker Go Lösung in eine eigenständig lauffähige App für iOS-Geräte konvertieren will und sich nicht mit Xcode, dem iOS-App-SDK und anderen Schwierigkeiten herumschlagen möchte, kann jetzt eine neue Dienstleistung in Anspruch nehmen. Das Kompetenz-Institut für Wirtschaftsinformatik (KIWI) macht aus Ihrer FileMaker Lösung eine echte App. Im ersten Schritt wird die Lösung einer Qualitätskontrolle unterzogen und hinsichtlich der Optimierung für die vorgesehenen Geräte (iPhone, iPad usw.) geprüft. Anschließend erstellt KIWI einen ausführlichen Report über möglicherweise gefundene Probleme. Auf Wunsch und nach vorheriger Absprache wird die FileMaker Lösung auch überarbeitet. Bei fehlerfreier Funktion kompiliert KIWI die Lösung zu einer App und sendet Ihnen das einsatzbereite Paket zurück. eBook zu FileMaker 14 Der Mandl & Schwarz-Verlag hat zum neuen Jahr eine ausschließlich digitale Aktualisierung zu FileMaker 14 herausgebracht. Schwerpunkte des eBooks sind der Layoutbereich mit Effekten und Werkzeugen sowie das Verfassen von Scripts mit Fehlersuche und konkreten ­Arbeitsschritten. Autor Horst Grossmann hat u. a. im FileMaker Magazin und in der Zeitschrift Macwelt geschrieben. In diesem Ergänzungsband zeigt er, wie sich insbesondere die mobilen und gestalterischen Funktionen für Datenbanken mit FileMaker Pro 14 auswirken. Neben dem Buch-Update zu FileMaker Pro 13 und dem Grundlagenwerk zu Version 12 bietet sich hiermit die Möglichkeit, sich umfassender mit dem zum Thema „Flexible Datenbanken für Unternehmen via iPad, iPhone, Windows-PC, Mac und Internet“ zu beschäftigen. Das eBook richtet sich an Freiberufler und Unternehmer, die sich in Sachen FileMaker fortbilden und in die aktuellen Möglichkeiten hinsichtlich Automatisierung, Gestaltung und Datenbank-Mobilität einarbeiten wollen. Leseprobe und Download Hier finden Sie eine Leseprobe zum Download (1,64 MB). Das eBook ist mit 95 Seiten (PDF) oder 8,9 MB (ePUB) ­direkt bei Mandl & Schwarz für € 8,99 ladbar. https://filemaker-magazin.de/neuigkeit/3862 Zum Testen der neuen Dienstleistung hat KIWI ein befristetes Angebot zusammengestellt. Dieses umfasst die Qualitätskontrolle, einen Datenbank-Report, kleinere Optimierungen nach Absprache und eine einsatzfähige App zu einem Paketpreis von € 980 (zzgl. 19% MwSt.). Das Einstiegs-Angebot gilt bei Auftragserteilung bis zum 31.03.2016. KIWI – Kompetenz-Institut für Wirtschaftsinformatik [email protected] https://filemaker-magazin.de/neuigkeit/3861 FMM_201601 Frühbucherrabatt für FileMaker DevCon, USA Die diesjährige Konferenz findet vom 18. bis 21. Juli 2016 im The Cosmopolitan in Las Vegas, Nevada statt. Ein Aufruf zur „Early, early Bird“-Anmeldung verspricht Ermäßigungen bis zu € 715. 33 Neuigkeiten Die internationale Konferenz der FileMaker Entwickler Community richtet sich an alle, die neue Fertigkeiten erwerben, vorhandene Fähigkeiten ausbauen oder ihre Karriere durch den Einsatz der FileMaker Plattform voranbringen möchten, um Apps für iPad, iPhone, Windows, Mac und Webbrowser zu erstellen. Die 21. FileMaker Developer Conference verspricht laut Veranstalter, eines der umfassendsten und spannendsten FileMaker Weiterbildungsevents des Jahres zu werden. Die Teilnehmer können aus einer breiten Auswahl von Sessions wählen, z. B. zu Design, Mobilität, Entwicklung für das Web, FileMaker als Geschäftsgrundlage und Innovationen zu Big Data, sozialen Medien, Barcodes, neuer Hardware und sonstigen Technologien. Sie werden Fertigkeiten, Strategien und bewährte Methoden für den Aufbau maßgeschneiderter Apps kennen lernen und sich mit FileMaker Entwicklern aus der ganzen Welt vernetzen. Frühbucher-Ermäßigungen Die Konferenzteilnehmer sparen € 715 des vollen Preises (€ 1.880 nach dem 26. Mai) und zahlen nur € 1.165, wenn sie die „Early, early Bird“-Ermäßigung nutzen, die ab sofort bis 31. März 2016 gebucht werden kann. Oder sie sparen € 445 des vollen Preises und zahlen im Rahmen der „Early Bird“Ermäßigung € 1.435 bis zum 26. Mai 2016. Weitere Informationen erhalten Sie telefonisch beim FileMaker Kundensupport unter +1 800 3252747 oder per E-Mail. Workshops zum MBS-Plugin Der Entwickler Christian Schmitz zeigt in zwei eintägigen Trainings im März und November 2016 Beispiele für die vielfältigen Einsatzmöglichkeiten seines „MBS“-Plugins in FileMaker Datenbanken. Der Kurs bietet einen tiefgreifenden Einblick in die Benutzung und Entwicklung des Plugins. Workshop-Teilnehmer haben die Möglichkeit, eine 5er-Lizenz zum Seminarpreis von € 70 zzgl. MwSt. zu erwerben. n Einführung in das MBS-Plugin n Rundgang durch ausgewählte Beispiele n Gemeinsames Implementieren von Plugin-Funktionen in eine Datenbank n Up-/Download mit CURL auf HTTP/FTP-Server n Ausfüllen eines Formulars auf einer Webseite n Bilder bearbeiten nPDF-Verarbeitung nDruckerfunktionen n Adressbuch und Kontakte abfragen unter Mac OS X n Fragen und Antworten Termine und Buchung 3. März 2016 3. November 2016 9:30-17:30 Uhr 9:30-17:30 Uhr FileMaker DevCon 2016 – Trainingstag und Ausstellung Die Seminargebühr beträgt € 99 (€ 83,19 ohne MwSt.). Am Konferenzort wird am Montag, den 18. Juli, ein eintägiges Trainingsevent für € 180 angeboten. Der Trainingstag richtet sich sowohl an Neueinsteiger, die eine praktische Einführung in FileMaker wünschen, als auch an fortgeschrittene Benutzer, die sich bereits im Vorfeld der Konferenz über die Grundlagen informieren möchten. Kursgröße: Ab drei bis maximal 20 Teilnehmer Die Konferenz bietet zudem eine Ausstellung mit FileMaker Dienstleistungen und Zusatzprodukten sowie eine Gelegenheit, um sich mit den Programmierern, Produktmanagern und Mitgliedern des technischen Supportteams von FileMaker zu unterhalten. Zu den Highlights zählen der Begrüßungsempfang, das jährliche Mittagessen unter dem Motto „Women of FileMaker“ und die Dinnerparty für die Teilnehmer. FMM Experte Ausstellungsstände werden für € 2.245 angeboten, ein Ausstellerpass für den ganzen Zeitraum kostet € 895. Information und Buchung Alle Informationen sowie die Möglichkeit zur Anmeldung finden Sie hier: https://r.online-reg.com/FileMaker_Devcon_2016/ 34 Weitere Informationen erhalten Sie unter: www.denkform.net/schulungen/Monkeybread0Software /MBS0FileMaker0Plug-in0Workshop/MBSPI Neu bei den FMM Experten Zander Solutions UG (haftungsbeschränkt) Schuhgasse 1, 55545 Bad Kreuznach Telefon: E-Mail: URL: Ansprechpartner: +49 170-3370219 [email protected] zander-solutions.de Daniel Zander, Michael Kiefer Kurzprofil Informationen und Prozesse optimal verwalten – der Schlüssel zum Erfolg. BWL-Einmaleins. Eigentlich. Denn so einfach es sich anhört, so komplex ist es tatsächlich. Die Lösung: Zander FMM_201601 Neuigkeiten Solutions. Sie machen mit individuell programmierter Workflow-Software auf FileMaker Basis jeden Prozess schneller, einfacher und wirtschaftlicher. Effizienz in allen Geschäftsprozessen ist das Ziel von Zander Solutions. Hierfür analysiert das Team aus Unternehmer und Programmierer jeden Geschäftsprozess und setzt ihn anschließend in eine intelligente, individuelle Software-Lösung um. Ob Warenwirtschaftssystem, Controlling oder Projektmanagement, gern auch mit Integration eines Mailsystems: Alle Betriebsabläufe werden schneller, einfacher und wirtschaftlicher. Grundlage der agilen Softwareprogrammierung von Zander Solutions ist das etablierte FileMaker Datenbanksystem. Ihre auf dieser Basis entwickelten Anwendungen können nahtlos in jeden Geschäftsprozess integriert werden, sind intuitiv handhabbar und laufen Device-unabhängig auf iPad, iPhone, Windows, Mac und im Web. !!! Warnung vor Abzocke Haben Sie auch ein Schreiben der Firma OfficeMax erhalten? Bitte zahlen Sie auf keinen Fall den Betrag, der in dem Schreiben genannt wird, denn es steht KEINE seriöse Firma dahinter! Seit Ende 2015 erhalten wir Anfragen von unseren Kunden zu diesen Schreiben: Angeboten wird ein FileMaker Pro, Business Package – oft in der noch gar nicht verfügbaren Version 15. Die Preise hierfür lauten meist € 595, oder auch mal stolze ­€ 1.280, jeweils zzgl. Steuern. Aufmachung Die gut aufgemachten und auf dem Postweg versandten S­ chreiben in englischer Sprache haben die Anmutung einer Rechnung und gelangen daher meist direkt in die Buchhaltung. De facto handelt es sich allerdings um Angebote (engl. offers), die erst durch die Zahlung des geforderten Betrags zu Aufträgen werden. Dieser Hinweis ist aber so klein geschrieben, dass er bei oberflächlicher Betrachtung leicht überlesen wird. Der Betrag soll auf ein Konto bei der Hipotekarna Bank in Montenegro gezahlt werden, in anderen Fällen auch auf ein Konto bei der Lovcen Bank, Montenegro oder der Bankia SA in Valencia, Spanien. Danach verspricht OfficeMax die Zusendung eines Freischaltcodes zum Download der Software von einer Website. Was soll ich tun? Die Firma FileMaker beobachtet den ganzen Vorgang sehr genau und bittet alle Empfänger dieser Schreiben, sich mit dem FileMaker Support1 in Verbindung zu setzen: Alle Fälle werden untersucht und es wird versucht, die Hintermänner zu finden. Zahlen sollten Sie in keinem Fall! Woher die Betrüger die Adressdaten der angeschriebenen Anwender haben, konnte bisher nicht schlüssig geklärt werden: Es ist aber auffällig, dass es sich bei den angeschriebenen Firmen und den genannten Ansprechpartnern („contact person“) sehr oft um Personen handelt, die – obschon zur Firma gehörig – meist gar nicht ins operative Tagesgeschäft eingebunden sind: Firmengründer, Teilhaber und Geschäftsführer, die sehr oft gar nicht in Erscheinung treten. Uns sind Fälle aus Deutschland, Österreich und der Schweiz bekannt, der Support bei FileMaker berichtet auch von Empfängern in Skandinavien, Großbritannien und den Niederlanden. Resumee Die weite Verbreitung von FileMaker Produkten ruft auch Betrüger auf den Plan. Gesunde Skepsis ist bei allzu günstigen Angeboten immer gerechtfertigt, bei dieser Methode scheint der Betrüger allerdings mehr auf Unachtsamkeit in der Buchhaltung zu zählen, denn der Preis ist in keinem Fall verlockend oder günstig. Sollten Sie Fragen hinsichtlich eingehender Schrei­ben haben (per Post, Telefax oder E-Mail): Fragen Sie uns, wir geben Ihnen gern weitere Tipps zur Verhaltensweise! Entsprechende Anfragen senden Sie bitte per E-Mail an ­[email protected] oder rufen Sie unsere Redaktion an unter Telefon: +49 40 589657970. 1 Per E-Mail an [email protected] oder telefonisch an 0800 724 35 14 (aus Deutschland), 0800 070 61 44 (aus Österreich) oder 043 55 79 035 (aus der Schweiz) Stand: 29.02.2016 Adressen Deutschland, Österreich, Schweiz FileMaker GmbH · Carl-von-Linde-Straße 38 85716 Unterschleißheim · Deutschland Telefon +49 89 317759 -0 Telefax +49 89 317759 -20 URLwww.filemaker.com/de FileMaker Info Line Telefon (D, A) Telefax (D, A) Telefon (CH) Telefax (CH) FMM_201601 +49 1802 000534 +49 1802 000535 +49 89 317759 -70 +49 89 317755 -21 FileMaker Support Line Montag bis Freitag von 9 bis 17 Uhr (außer an Feiertagen) Deutschland Österreich Schweiz 1 0800 724 3514 0800 070 6144 043 55 79 0351 12 Rappen/Min. aus schweiz. Festnetz, max. 60 Rappen/Min. Mobilnetz Support Online: Fragen stellen http://filemaker-de.custhelp.com/app/ask (Eingangsbestätigung mit Vorgangsnummer und Ant­ wort innerhalb von zwei Tagen per E-Mail) FileMaker, Inc. Zentrale 5201 Patrick Henry Drive · P.O. Box 58168 Santa Clara; CA 95052-8168 USA [email protected] URLwww.filemaker.com FileMaker, Inc. Europa, Mittlerer Osten & Afrika 2 Furzeground Way / Stockley Park East Uxbridge / Middlesex UB11 1BB United Kingdom Stand: 29.02.2016 35 Anzeigen MBS FileMaker Plugin Workshop n Neue Ideen für den Einsatz des MBS-Plugins n Verbessern und erweitern Sie Ihre FileMaker Lösung n MBS-Plugin zum Sonderpreis für Teilnehmer Termine: 3. März 2016 3. November 2016 9:30 – 17:30 Uhr Seminar-Gebühr: € 99 inkl. MwSt. Seminar-Ort: denkform GmbH in Hofheim www.monkeybreadsoftware.de/workshop