Xojo Conferences
XDCMay2019MiamiUSA
MBSOct2019CologneDE
Our Blog, Filemaker only, Xojo only, Archive (older)

Follow us on Twitter, Xing, LinkedIn or Facebook.

Use Apple Maps in your app


With Apple Maps support coming for MBS Xojo and FileMaker Plugin you can even get 3D flyover hybrid snapshots:



This example renders with MapType=HybridFlyover with a camera set to 40.7457172/-73.9941266 coordinate. The distance is set to 3000 meter, the pitch is set to 70 degree and heading is at 28 degree. Please try soon with next prerelease or next week with final release.

Smileys and UTF32


Here a few smileys:

😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛
😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷

Do you see all 56?
Well, in our plugins we have functions to encode text to HTML and it didn't work for those smileys. The reason is that those are outside the normal 16-bit unicode range. They need 2 characters to encode in UTF-16 format. Most functions in our plugins don't care for this details. Normally it doesn't matter as we pass through texts. But for encoding to HTML we need to process text in UTF-32 well. So plugin needs to decode 16bit character pairs to make sure they are encoded correctly.
After a couple of hours work on our plugin's text handling you can enjoy plugins doing it right!

See Text.EncodeToHTML function in MBS FileMaker Plugin and EncodingToHTMLMBS function in MBS Xojo Util Plugin.

FileMaker Server vs. MacOS Server


If you see an error message in FileMaker Server installer like this, you may need to remove or disable the built-in web server software to be able to install FileMaker Server.



So in order to disable it, you can dig into how to disable services in MacOS. But we found a simpler way. Just move the com.apple.serverd.plist out of the /Library/LaunchDaemons folder and restart the Mac.

We'd prefer to change the ports from either MacOS Server's web server or the FileMaker Server's web server, but both is not supported. As you may guess a lot of code simply expects https at port 443, so they don't even bother to offer you a way to enter a port number.

MBS FileMaker Plugin, version 9.0pr8


New in this prerelease of version 9.0 of the MBS FileMaker Plugin:
  • Added MapView functions to put map control on the layout for Mac and iOS.
  • Added MapView.Snapshot function to render map images.
  • Manually applied CURL fix: vauth/oauth2: Fix OAUTHBEARER token generation #3377 (for Mac)
  • Fixed bug with inline email text decoding and an extra space character sometimes.
  • Updated to DynaPDF to version 4.0.25.69.
  • Changed Printer.Print to prefer selecting exact match over beginning of text.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

CURL change for email download via IMAP


Last year there was a little change in the CURL library for handling email downloads via IMAP. We used to download the list of email, get the index in the email box and download the email by passing the index with UID parameter in the URL. The first email in the mailbox is 1. If you delete email with ID 1, than the second email moves down to become the new first email.

Now since CURL version 7.62.0 from October, the default fetch is using the IMAP UID command. That means the IMAP server gives every email in the mailbox an unique ID which counts up for every new email coming in. The UID does not change if emails are moved or deleted, so we can address emails on the server much better. Now the new parameter is named UID and the old UID parameter is renamed MAILINDEX.

As you may guess, the old and new UID are not the name values, so existing applications with newer plugin fail to load emails. You can fix your script by changing UID to MAILINDEX. MBS FileMaker Plugin in version 9.0 for FileMaker and MBS Xojo CURL Plugin version 19.0 for Xojo have a mitigation to switch to MAILINDEX if the query via UID failed.

For newer projects we recommend to do the lookup of the emails in the mailbox with UID FETCH and get the emails with unique IDs. Next we recommend to use BODY.PEEK instead of just BODY to avoid emails being marked as read automatically. When switching to BODY.PEEK you can remove workarounds which removed the seen flag. And you can include options like INTERNALDATE for the date of the email and/or RFC822.SIZE for the email size:

UID FETCH 1:* (FLAGS INTERNALDATE RFC822.SIZE BODY.PEEK[HEADER.FIELDS (Message-Id DATE FROM SUBJECT TO SENDER REPLY-TO CC BCC)])

As you see we include a few headers fields in this sample query.
The result looks like this:

* 1 FETCH (UID 103 FLAGS (\Seen $junk) INTERNALDATE "06-Apr-2018 19:42:11 +0200" RFC822.SIZE 2091 BODY[HEADER.FIELDS (MESSAGE-ID DATE FROM SUBJECT TO SENDER REPLY-TO CC BCC)] {214}
From: Christian Schmitz
Subject: Hello World
Message-Id: <6F3B718F-8427-4EFB-B291-106A8ABFC1AA@monkeybreadsoftware.de>
Date: Fri, 6 Apr 2018 19:42:05 +0200
To: test@macsw.de

)

Now you can parse that easily. But for our FileMaker plugin we made a new function CURL.GetResultAsEMailList to parse the list and return as JSON. The JSON looks like this:

[{
    "Index":   1,
    "UID":   103,
    "Size":   2091,
    "InternalDate":   "06-Apr-2018 19:42:11 +0200",
    "URL":   "imap://imap.macsw.de/INBOX;UID=103",
    "Flags":   ["Seen"],
    "Subject":   "Hello World",
    "Message-Id":   "<6F3B718F-8427-4EFB-B291-106A8ABFC1AA@monkeybreadsoftware.de>",
    "Addresses":   [{
        "Type":   "from",
        "Email":   "testing@monkeybreadsoftware.de",
        "Name":   "Christian Schmitz"
      }, {
        "Type":   "to",
        "Email":   "test@macsw.de",
        "Name":   ""
      }],
    "Date":   "06.04.2018 09:42:05"
  }]

This JSON contains all the parsed values. We convert the date to the timestamp for FileMaker into local time zone. The subject lines and names are decoded if needed. For each email we include the URL to the email for easier download. Please try the new functions for UID fetch and let us know how you like them.

MapKit Framework for Xojo


After weeks of work, the new MapKit plugin for MacOS is done. We have all the features included and got a few example projects for you. One example shows the MapKit control, one to search for local items and one to get directions.

The classes include support for
  • Showing map with standard, hybrid or satellite.
  • Adding annotations like pins or lines
  • Adding overlays like colored areas.
  • Using customized renderes for overlays
  • Get directions for routes
  • Calculate expected time of arrival.
  • Format distances as localized text
  • Do local search query for finding items
  • Show suggestions for auto complete for local search
  • Control camera for fly over
  • Render snapshots of maps
  • Show user location
(more)

FileMaker Conference dotfmp.berlin 2019


Did you sign up for FileMaker Conference dotfmp.berlin 2019?

This conference is organized by Egbert Friedrich and takes place from 6th to 8th June 2019 in Berlin, Germany.

As the conference is in english, this is your chance to meet people from around the world at a conference in Europe. And for a lot of people it's easier to get to Berlin than to cross the atlantic and deal with US immigration officers.

Who
dotfmp is an effort of various leading European FileMaker Developers. It is meant to bring all kinds of higher level developers together to share knowledge, educate and challenge each other.
When
dotfmp starts at the 5th June 2019 in the later afternoon with a relaxed "Beer and Sausages" in one of the most famous Berlin Beergarden. The session days itself last from 6th until 8th June with various socializing events in the evenings. Additionally we offer support on 10th June to see more from Berlin and its surroundings.
What
dotfmp is a 3 Day-Unconference, Meetup, Hangout or Barcamp. It is an informal and self-organized effort to meet on a personal base.
Where
dotfmp takes place in one of the most famous spots in Berlin. The GLS Campus is located in a vibrant area with a very short walking distance to all the famous restaurants.
Why
We feel there are far too few possibilities to talk to, learn from, and hangout with fellow developers in a relaxed and informal environment. And we'd like to share work and get feedback from people chewing on similar challenges.


If you like to join the conference and present something, please register soon.

FileMaker Stammtische im Januar


Im Januar gibt es mindestens noch die folgenden FileMaker Stammtische: Herzliche Einladung an alle FileMaker Entwickler bei einem Stammtisch vorbeizuschauen!

Wir versuchen in Karlsruhe und Bonn vorbei zu schauen.

MBS FileMaker Plugin, version 9.0pr7


New in this prerelease of version 9.0 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Schedule Notifications with MBS Plugin in iOS


First you need to add MBS FileMaker Plugin for iOS to your FileMaker iOS SDK app project as you can watch in following video on our website: FileMaker iOS SDK and MBS Plugin

Next you need to copy MBSInit.framework to the Frameworks folder. In Xcode in the project settings, please add MBSInit.framework there to the list of libraries to link to. See the following screenshot with our two MBS files in the files list on the left and the MBSInit framework in the link list in the middle:



This makes sure the MBSInit framework is loaded at start of the application and initializes the notification system. Once your app runs, you'll see the following dialog asking for permissions:



If you click allow, UNNotification.AuthorizationGranted function will return 1 and UNNotification.AuthorizationError will be empty. If you like, query device token with UNNotification.RemoteNotificationsDeviceToken and than pass this token to the server for push notifications.

Please also check system settings for your application for whether notifications are allowed. Especially if you want more than just text, you may need to allow sound or badges:



Once you got the notification system initialized, you can show a local notification with a script. The following example script creates a new notification, sets title and body texts, a time interval and schedules the notification.

# Create a new notification
Set Variable [ $notification ; Value: MBS("UNNotification.New") ]
# Set Title and Body
Set Variable [ $r ; Value: MBS("UNNotification.SetTitle"; $notification; "Hello") ]
Set Variable [ $r ; Value: MBS("UNNotification.SetBody"; $notification; "Greetings from FileMaker") ]
# Set a time interval trigger
Set Variable [ $r ; Value: MBS("UNNotification.SetTimeIntervalTrigger"; $notification; 60; 0) ]
# and schedule
Set Variable [ $r ; Value: MBS("UNNotification.Schedule"; $notification; "test") ]

The notification shows while application is in background:



If you have questions, please do not hesitate to contact us.

FileMaker Magazin - MBS Artikel


Wir haben die Artikel zum MBS Plugin aus dem FileMaker Magazin gesammelt hier online gestellt: FileMaker Magazin Artikel.

Wir empfehlen allen FileMaker Anwender ein Abo vom Magazin und den Kauf der alten Ausgaben. Das FileMaker Magazin ist eine exzellente Quelle von Informationen, Anleitungen und Profitips.


MBS FileMaker Plugin, version 9.0pr6


New in this prerelease of version 9.0 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

FileMaker calculations with MBS Plugin help links


We got a new options in preferences for the MBS Plugin to make all function names clickable links within calculations:

Coming soon in next prerelease.

Merry Christmas


Frohe Weihnachten und ein gutes neues Jahr!

Merry Christmas & Happy New Year

Joyeux Noël et Bonne Année

Buon Natale e Felice Anno Nuovo


Franziska, Sebastian, Michael, Monika & Christian Schmitz

MBS FileMaker Plugin, version 8.6pr5


New in this prerelease of version 8.6 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

SQLite Manager and Doctor updated


Not sure if you noticed, but the SQLiteManager app and the SQLiteDoctor app have been updated recently by SQLabs.

For editing SQLite database manually, SQLiteManager is my favorite tool. Supports also CubeSQL database server and encrypted databases. And SQLiteDoctor has been very useful for us once to rebuild a broken SQLite database. We than exported with SQLiteManager the newer records created since the last backup.



Both are updated for 64-bit with a couple of bug fixes and enhancements, including HiDPI support for Windows.

FileMaker Konferenz 2019 in Hamburg


Vom 16. bis 19. Oktober 2019 findet die zehnte deutschsprachige FileMaker Konferenz in Hamburg, Deutschland statt. FileMaker Anwender und Entwickler können ihre Teilnahme ab März buchen. Anmeldungen bis zum 21. Juni 2018 erhalten einen Frühbucher-Rabatt auf die Konferenzpauschale.

Möchten Sie Sponsor oder Sprecher werden?
Aktuell sucht der FMK Verein Vorschläge für interessante Vorträge.

Die Veranstalter vom Verein FM Konferenz erwarten auch 2019 rund 180 Entwickler, Anwender, IT-Fachleute und Entscheidungsträger aus Wirtschaft, Bildung und Verwaltung. Rund um über 25 Fachvorträge und Workshops wird es viel Zeit zum Vernetzen in den gemeinsamen Pausen und beim Abendprogramm geben.

Eventuell gibt es auch 2019 wieder eine MBS Plugin Schulung bzw. Workshop. Hat da jemand Interesse?

MBS Booth at FileMaker Developer Conference 2019


We just signed contract for the booth, a vendor session and our own tickets at the FileMaker DevCon 2019 in Orlando next year. Please come and visit the booth 5th to 8th August 2019.



Registration will probably open early next year. Be sure to sign up early for lowest tickets price and reserve a room early so you get one. The hotel could once again run out of hotel rooms.

MBS FileMaker Plugin, version 8.6pr4


New in this prerelease of version 8.6 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Use of TAPI functions in MBS FileMaker Plugin


Last week a client had to implement MBS FileMaker Plugin functions for TAPI (Windows Telephone API) and got some instructions for us:

How to connect a phone system (Mitel MiVoice400) with MBS Plugin to call a phone number with an Astra phone in Windows. With free phoner app, we can list all devices for TAPI including their address name. In the follow picture, you see that "Hanspeter (MiVoice5370)" is the required one.



In your FileMaker script you call MBS( "TAPI.Initialize" ) first to initialize the TAPI functions on startup of your solution. Later you call MBS( "TAPI.AddressCount" ) to query the number of addresses for the computer. For the client's PC, we get back 6 as the count. That is the same as in phoner app above. Now you can step over the connections from 0 to 5 to query name for each. With the call MBS( "TAPI.AddressValue"; 5 ; "AddressName" ) we get back the address name "Hanspeter (MiVoice5370)".

Next we create a call and for this we need two commands:

$call = MBS( "TAPI.CreateCall"; $AddressName ; "0“ & $PhoneNumber ; 1 ; 8).
MBS( "TAPI.Connect"; $call ; 1 )

As the phone system needs prefix 0 for calling outside, we add a "0" as prefix to the phone number. Media type for an audio call is 8 and 1 is passed for address type to be an phone number. For the connect call to actually start the call, we pass 1 for synchronous mode, which seems to work well for this phone system.

In general the TAPI functions work well for all customers and getting the address name and right ID configured can be a challenge.

For Xojo, you can use our MBS Xojo Win Plugin and the TAPIMBS class.

Older blog entries:

2018-12-15 ROWID in FileMaker SQL Commands
2018-12-13 Ask for permissions to control applications with AppleScript in FileMaker
2018-12-13 Three weeks till year's end
2018-12-12 FileMaker based iOS App to the App Store
2018-12-12 MBS FileMaker Plugin, version 8.6pr3
2018-12-11 FileMaker Go 17.0.4 now available
2018-12-05 FileMaker updates with support for macOS Mojave
2018-12-05 MBS FileMaker Plugin, version 8.6pr2
2018-12-01 MBS FileMaker Plugin, version 8.6pr1
2018-12-01 Birthday of our video page
2018-11-30 Links from documentation to blog entries
2018-11-27 MBS FileMaker Plugin 8.5 - More than 5500 Functions In One Plugin
2018-11-27 Neues MBS FileMaker Plugin 8.5 - Über 5500 Funktionen in einem Plugin
2018-11-26 MBS Workshop @ Denkform
2018-11-24 MBS FileMaker Plugin, version 8.5pr9
2018-11-22 MBS FileMaker Plugin, version 8.5pr8
2018-11-19 Windows on ARM in 64-bit
2018-11-18 FMnext Experience II in Meilen, Schweiz und MBS Plugin Schulung
2018-11-16 FileMaker Roadmap for 2019
2018-11-14 MBS FileMaker Plugin, version 8.5pr7

Archives

Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008
XML: RSS Feed XML: Atom Feed