Our Blog, Filemaker only, Xojo only, Archive, Follow us on Twitter or Facebook.


MBS Xojo / Real Studio Plugins, version 14.3pr6

Tuesday 19 August 2014 at 7:33 pm
New in this prerelease of the 14.3 plugins:
  • Added XML parameter for WinSpeechMBS class, so text can embed xml commands to control voice.
  • Fixed a bug with PictureMBS, clipping and VM mapped files.
  • Added Audioformat parameter to SpeakFile method in WinSpeechMBS class.
  • Added SQLAnywherePreparedStatementMBS.kTypeNull and SQLPreparedStatementMBS.kTypeNull.
  • Changed SQL Plugin to raise UnsupportedOperationException if you call SQLDatabaseMBS TableSchema or FieldSchema functions.
  • Changed SQL Plugin to raise UnsupportedOperationException if you call update, edit, delete or deleteAll methods on a RecordSet.
  • Added FileListMBS class constructor parameters to filter items on Windows.
Download: macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.

MBS Filemaker Plugin, version 4.3pr6

Tuesday 19 August 2014 at 2:59 pm
New in this prerelease of the 4.3 plugins:
  • Changed QTMovie.OpenContainer and other functions to work with interactive containers containing M4V, MP3 and MOV files.
  • Added parameter for CURL functions which set text options. You can pass a text encoding as parameter. Default is UTF-8 as before.
  • Added FileDialog functions to set filters and limit dialog to specific file types.
  • Added PDFKit.SetCurrentFilter and PDFKit.GetCurrentFilter.
  • Added QuartzFilterManager.Filters, QuartzFilterManager.ShowPanel and QuartzFilterManager.HidePanel.
  • Added Files.FileInfo function.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Tip of the day: Windows Notifications

Sunday 17 August 2014 at 2:57 pm
In 2012 we added to our plugins a WinNotificationMBS class. This class was designed to send and receive broadcast messages on Windows between running apps. This way a helper app can send status updates easily to main app. Without the need to setup IPCSocket or other ways of communication.

Now Windows also sends a couple of messages to everyone about certain things. Like you can get a WM_DISPLAYCHANGE message whenever the display setup changed. Also the WM_DEVICECHANGE message informs about devices coming and going.

To use this, get a subclass of WinNotificationMBS and add the GotNotification event. Now listen for messages WM_DISPLAYCHANGE (&h7E) and WM_DEVICECHANGE (&h0219). The event will be called with those message codes so you can check state and update your app.

PS: On Mac you can also get similar events with NSWorkSpaceMBS and NSNotificationObserverMBS.

Xojo 2014r2.1

Wednesday 13 August 2014 at 8:17 pm
A few days ago Xojo 2014r2.1 was released. This is the final release to support Carbon as Cocoa will be the only option from 2014r3 on forward. So we are happy that the XmlDocument bugs have been fixed for Carbon target. Any other Carbon bug will probably never be fixed in the future.

For the Webkit support on Windows, Xojo went back from CEF3 to CEF1 version. The newer version had some side effects which made the older version a better choice. For our plugin, well the 14.2 plugins assume that 2014.2 uses CEF3. With 14.3 we put in an auto detect feature, so plugin can see what version of CEF is used and either use the CEF1 or the CEF3 API. So in case you use the Chromium classes from our plugins, be careful.

Database classes got some updates on MySQL, ODBC and SQLite. Like better full text search with unicode support for SQLite.

For Mac App Store the RegEx plugin was fixed, so you can submit again apps using it. See older blog post.

Please also check the blog post about the HandleSpecialURL change in this release.

For the last days, we have been using this version and it's quite stable for our projects here. So we can recommend the update.

MBS Filemaker Plugin, version 4.3pr5

Monday 11 August 2014 at 1:25 pm
New in this prerelease of the 4.3 plugins:
  • Please note that minimum Mac OS X version now is 10.6.
  • Rewrote CPUID detection.
  • Updated DynaPDF to version 3.0.33.97.
  • Made first changes for future Mac OS X version.
  • Fixed bug with DataMatrix encoding in barcode generation.
  • Updated zint library to current version.
  • Updated to OpenSSL 1.0.1i.
  • Reimplemented Icon.GetIcon on Mac to user newer APIs.
  • Fixed Files.FileKind for Windows.
  • Added options for SQL.SetConnectionOption to turn on SSL for MySQL via new options: MYSQL_SSL_KEY, MYSQL_SSL_CERT, MYSQL_SSL_CA, MYSQL_SSL_CAPATH and MYSQL_SSL_CIPHER. If those are set, we pass the strings to mysql_ssl_set function.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Xojo / Real Studio Plugins, version 14.3pr5

Monday 11 August 2014 at 12:02 pm
New in this prerelease of the 14.3 plugins:
  • Rewrote CPUID detection. Added new methods to CPUIDMBS class.
  • Updated DynaPDF to version 3.0.33.97.
  • Made first changes for future Mac OS X version.
  • Added AUPlayerMBS.Reset.
  • Fixed bug with DataMatrix encoding in barcode generation.
  • Updated zint library to current version.
  • Updated to Portaudio v19 20140130.
  • Updated to OpenSSL 1.0.1i.
  • Fixed problem with NSRunningApplicationMBS objects in dictionaries.
  • Added options for SQLConnectionMBS and SQLDatabase to turn on SSL for MySQL via new options: MYSQL_SSL_KEY, MYSQL_SSL_CERT, MYSQL_SSL_CA, MYSQL_SSL_CAPATH and MYSQL_SSL_CIPHER. If those are set, we pass the strings to mysql_ssl_set function.
  • Added ConnectionHandler event to SQLConnectionMBS and SQLDatabase classes.
  • Fixed GKTurnBasedParticipantMBS.matchOutcome property to be writable.
Download: macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.

MBS Xojo / Real Studio Plugins, version 14.3pr4

Monday 04 August 2014 at 2:05 pm
New in this prerelease of the 14.3 plugins:
  • Updated LCMS2 to latest 2.7beta0 from 3rd August 2014.
  • Updated LCMS2 used for GraphicsMagick to version 2.6.
  • Fixed issue with NSFileHandlerMBS object and NSNotificationMBS.
  • Improved NSPopupButtonMBS class with more properties.
  • Changed GMImageMBS.SetImageMask to turn set matte = true to make sure we have an alpha channel.
  • Fixed bug with internal NSObject to Variant conversion.
Download: macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.

MBS Filemaker Plugin, version 4.3pr4

Sunday 03 August 2014 at 9:07 pm
New in this prerelease of the 4.3 plugins:
  • Updated LCMS2 used for GraphicsMagick to version 2.6.
  • Added Files.ReadJPEG, Files.ReadPDF and Files.ReadPNG.
  • Added Barcode.SetOptions.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS Xojo Developer Conference

Friday 01 August 2014 at 3:37 pm
The early bird offer will end 11th August and that is also the end date for the hotel contingent. Please register quickly to make sure you get a room in the hotel.
Also we still have seats available for english and german training.

Hotel in Koblenz is reserved for 17th to 20th September 2014.

17th - training in German
18th and 19th - conference in English
20th - training in English

Arrived in Texas

Saturday 26 July 2014 at 6:51 pm
Yesterday I arrived here in San Antonio in the JW Mariott Hill Country Hotel for the FileMaker Developer Conference.

I already found my way through this huge resort and found the registration desk.
So if you are here nearby, we can of course meet for diner or a coffee and chat about FileMaker, Xojo or Plugins.

Translate PHP script with CURL to FileMaker Script

Thursday 24 July 2014 at 5:12 pm
Today we want to show you how to translate a PHP script with CURL commands step by step to a FileMaker script. Here is a PHP script:

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($params))
);
$result = curl_exec($ch);
curl_close($ch);

So lets go through the script line by line. First line is "$ch = curl_init();" which simply creates a new curl session in PHP. The result is the handle which is stored in $ch variable. This handle value (a number) is than used to to reference the CURL session later in the script. In FileMaker, the call to the MBS plugin is MBS("CURL.New"). This function starts a new session and we store it in a variable, exactly as in PHP.

Next calls set a couple of options. First for SSL, you should use a certificate to have the plugin verify the identity of the server. But in this example we simply disable verification. So we use the calls MBS("CURL.SetOptionSSLVerifyPeer"; $curl; 0) and MBS("CURL.SetOptionSSLVerifyHost"; $curl; 0). The option CURLOPT_RETURNTRANSFER in PHP is not needed by the plugin. The plugin automatically collects the data downloaded and your script can query the result later.

Next option sets the URL to use. This can be an URL for one of the supported protocols including FTP(S), HTTP(S) or SFTP. In the script we use MBS("CURL.SetOptionURL"; $curl; $URL) to pass the URL as text to the plugin. Than we can set other options like a 30 seconds timeout using MBS("CURL.SetOptionTimeout"; $curl; 30).

As this example transfer is a HTTP Post operation for sending form data, we have to turn on the post option. All the web services like SOAP normally use POST queries which use the request xml as the form data. So with the call MBS("CURL.SetOptionPost"; $curl; 1) we enable post operation. With the custom request option you can of course explicit also set POST, but here it is optional: MBS("CURL.SetOptionCustomRequest"; $curl; "POST"). Often we custom requests like DELETE with a REST API.

For the actual content of the transfer we have a couple of functions to set input data. So for the CURLOPT_POSTFIELDS we can use the plugin function MBS("CURL.SetOptionPostFields"; $curl; $params) with the right text in the variable. The plugin will copy the data for the transfer and also set internally the size for the transfer. So when setting the http headers (CURLOPT_POSTFIELDS), we don't need to include the Content-Length line with MBS Plugin. For the http headers we need to pass the content type to the plugin to inform our web server that we pass data as JSON here: MBS("CURL.SetOptionHTTPHeader"; $curl; "Content-Type: application/json").

To run the transfer, the PHP script calls curl_exec function. In the plugin we call MBS("CURL.Perform"; $curl) and get back an error code. This error code is zero on success. For a list of error codes, please check the plugin documentation. The PHP function returns the result directly. But with our plugin, we have the function CURL.GetResultAsText. Depending of the transfer, the result could be text, an image or some other data. To show text in a field in FileMaker, we also need to make sure the line endings match. FileMaker always uses Mac line endings, so we use the String.ReplaceNewline function. So we get the result with the calculation MBS("String.ReplaceNewline"; MBS("CURL.GetResultAsText"; $curl);1).

To know what reason a failure has, you can get debug messages. So before the perform call, we enable verbose debug messages with a call to MBS("CURL.SetOptionVerbose"; $curl; 1). To actually get the text for showing in a field, we query the messages as text with this call: MBS("String.ReplaceNewline"; MBS("CURL.GetDebugAsText"; $curl);1).

Finally we do some cleanup. In PHP the curl_close call and in FileMaker the MBS("CURL.Cleanup"; $curl) call. As you see the function calls are quite similar and you can easily translate PHP scripts using CURL for use in FileMaker.

The final script looks like this:

Set Variable [$curl; Value: MBS("CURL.New")]
Set Variable [$result; Value: MBS("CURL.SetOptionURL"; $curl; $URL)]
Set Variable [$result; Value: MBS("CURL.SetOptionSSLVerifyPeer"; $curl; 0)]
Set Variable [$result; Value: MBS("CURL.SetOptionSSLVerifyHost"; $curl; 0)]
Set Variable [$result; Value: MBS("CURL.SetOptionVerbose"; $curl; 1)]
Set Variable [$result; Value: MBS("CURL.SetOptionTimeout"; $curl; 30)]
Set Variable [$result; Value: MBS("CURL.SetOptionPost"; $curl; 1)]
Set Variable [$result; Value: MBS("CURL.SetOptionPostFields"; $curl; $params)]
Set Variable [$result; Value: MBS("CURL.SetOptionHTTPHeader"; $curl; "Content-Type: application/json")]
Set Field [Webservice::Error; MBS("CURL.Perform"; $curl)]
Set Field [Webservice::Input; $input]
Set Field [Webservice::Result; MBS("String.ReplaceNewline"; MBS("CURL.GetResultAsText"; $curl);1)]
Set Field [Webservice::DebugMessages; MBS("String.ReplaceNewline"; MBS("CURL.GetDebugAsText"; $curl);1)]
Set Variable [$result; Value: MBS("CURL.Cleanup"; $curl)]

MBS Xojo / Real Studio Plugins, version 14.3pr3

Tuesday 22 July 2014 at 3:14 pm
New in this prerelease of the 14.3 plugins:
  • Added EncodeEmailSubjectMBS function.
  • Added more parameters to AUPlayerMBS.LoadFile.
  • Added two VAT ID check examples for your convenience.
  • Updated LibXL to version 3.6.0.
Download: macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.

MBS Filemaker Plugin, version 4.3pr3

Tuesday 22 July 2014 at 1:06 pm
New in this prerelease of the 4.3 plugins:
  • Added QLPreviewPanel functions.
  • Added String.EncodeEmailSubject function.
  • Updated FileDialog.SelectFolderDialog to use newer API to get nicer dialog.
  • Added support for Windows for ListDialog functions.
  • Added String.DecodeFromXML and String.EncodeToXML.
  • Updated LibXL to version 3.6.0.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

LibXL version 3.6.0

Sunday 20 July 2014 at 9:01 pm
Version 3.6.0

* added autofit column width support (use -1 for width parameter in setCol method)
* added hyperlink support
* added direct access to merges
* added a possibility to create xltx and xlsm files
* added a possibility to read errors "#NULL!", "#DIV/0!", "#VALUE!", "#REF!", "#NAME?", "#NUM!", "#N/A" with readFormula method from xls files.
* added support Windows-1251 encoding in XML files
* added support RGB colors without alpha component in xlsx files
* added a cell range support in formula expressions (xls)
* improved performance of cellFormat() method (xls)
* optimized xls files reading
* fixed a bug with copying a sheet with pictures in addSheet() (xls)
* fixed a memory bug when used a second parameter in addSheet()
* fixed issue with nested quotes in formula expressions (xls)
* fixed bug with using a single quote in formula expressions (xls)
* fixed issue with loading some xlsx files which were created in Numbers on Mac ("Unknown exception")
* fixed bug with UTF-8 encoding in custom format strings (xlsx)
* fixed bug with reading some non-standard characters (xlsx)

New methods:

* Sheet MergeSize - Returns a number of merged cells in this worksheet.
* Sheet Merge - Gets the merged cells by index.
* Sheet DelMergeByIndex - Removes merged cells by index.
* Sheet HyperlinkSize - Returns the number of hyperlinks in the sheet.
* Sheet Hyperlink - Gets the hyperlink and its coordianates by index.
* Sheet DelHyperlink - Removes hyperlink by index.
* Sheet AddHyperlink - Adds the new hyperlink.
* Sheet SplitInfo - Gets the split information (position of frozen pane) in the sheet.

this will be included in next prerelease plugins in a few days.

Tip of Day: CURL with IMAP protocol

Sunday 20 July 2014 at 12:29 pm
With CURL plugin functions you can use the IMAP protocol for downloading emails. The plugin connects to the imap server, performs a query and returns result, e.g. a list of email, the content of an email or something else. As you probably want to use SSL, please use "imaps://" as prefix. Our examples are normally without SSL.

So for querying folders, you can simply query URL:
URL = "imap://server/"

This gives you back a result like "." and "INBOX" or other folder names.

To query list of emails, you run a custom request to fetch flags for all emails like this:
Same URL with /INBOX to specify folder and you use OptionCustomRequest with "FETCH 1:* FLAGS".

Than to query a single email, you use no custom request, but you add to URL the postfix "/INBOX/;UID=1". 1 is here the index of the email you want to query.

Now if you need to delete email, change flags or create folders, you can check the IMAP specifications and pass commands using CustomRequest option.
For next plugin version, we'll have examples showing this.

Xojo Consulting in German

Friday 18 July 2014 at 8:44 pm
In the last days I collected a list of German Xojo Developers available for consulting:

Alex von Siebenthal
bei Zürich
Christian Mézes cmezes software bei Schwäbisch Gmünd cmezes.com
Christian Schmitz Monkeybread Software bei Koblenz monkeybreadsoftware.de
Daniel Fritzsche varcess GmbH Siegen varcess.com
Heinz Wieczorek
bei Heilbronn
Karsten Deppermann Formalis EDV Beratung Bielefeld formalis.de
Martin Hänisch Systemlösungen Martin Hänisch Fürth martin-haenisch.de
Markus Minihold bei Wien
Maximilian Tyrtania Contact King Berlin contactking.de
Thomas Rottensteiner Rottensteiner EDV Salzburg rottensteiner-edv.at
Thomas Tempelmann
München tempel.org
Tobias Eichner Star Enterprise bei Bayreuth starenterprise.com
Tomas Jakobs jakobssystems limited zwischen Siegen und Gießen jakobssystems.net
Torsten Gaidies Neuss apps2focus.com
Walter Zeidler Z-Systems bei Frankfurt zsystems.de

If you like to be added, please email me with details.

FileMaker Developer Conference 2014

Thursday 17 July 2014 at 8:23 pm

Over 70 sessions at the biggest FileMaker event of the year!

Still time to register for the FileMaker Developer Conference!
There is still time to register for the FileMaker Developer Conference with over 70 sessions to choose from at the biggest FileMaker event of the year. Come to DevCon 2014 and discover how the FileMaker Platform can help you run your business without boundaries. Join over 1,200 developers in San Antonio, Texas from July 28-31, 2014 and take the first steps to achieving your business goals.

Take a look at this year's DevCon Exhibitors. The FileMaker community is rich with smart, creative developers that are creating add-ons, plug-ins, and ready-made solutions to use with the FileMaker Platform. They also offer services that will make using FileMaker even more delightful and customized to your needs. If you’re looking to solve a business problem, come to DevCon and see how others can help make your job easier.

Other FileMaker conferences:

MBS Xojo Developer Conference

Wednesday 16 July 2014 at 9:59 pm
Over the summer the conference is coming closer quickly. Just about 2 month left and our hotel contingent will end soon. So if you want to come and you have not yet a hotel room, please reserve one soon.

Hotel in Koblenz is reserved for 17th to 20th September 2014.

17th - training in German
18th and 19th - conference in English
20th - training in English

Registration is open and we are looking for speakers. If you are interested in coming, you can already email me to put you on the list.

MBS Xojo / Real Studio Plugins, version 14.3pr2

Tuesday 15 July 2014 at 4:57 pm
New in this prerelease of the 14.3 plugins:
  • Fixed a problem with Carbon apps if they create a new picture in plugin. Plugin now calls SetGWorld to make sure there is a valid gworld.
  • Fixed plugin bug in DynaPDFMBS.GetTextHeightExAnsi and others.
  • Updated to OpenSSL 1.0.1h.
  • Changed NSOpenPanelMBS/NSSavePanelMBS to keep reference of itself while sheet is open to avoid trouble with objects being destroyed to early.
  • Added IKCameraDeviceViewControlMBS, IKDeviceBrowserViewControlMBS and IKScannerDeviceViewControlMBS controls.
  • Added events for ICDeviceBrowserMBS, IKCameraDeviceViewMBS, IKDeviceBrowserViewMBS and IKScannerDeviceViewMBS classes.
  • Fixed an issue where automatic conversion to variant did return a CFObjectMBS instead of a NSFontMBS.
Download: macsw.de/plugin/Prerelease. Or ask us to be added to our shared Dropbox folder.

MBS Filemaker Plugin, version 4.3pr2

Tuesday 15 July 2014 at 12:48 pm
New in this prerelease of the 4.3 plugins:
  • The functions Time.UnixTimeStamp, ZipFile.CreateFile and SQL.SetParamAsDateTime now report an error if the timestamp parameter is not a time, date or timestamp value. So please don't simply pass text there.
  • Added NetworkInterfaces functions.
  • Fixed a problem with reading file data from container.
  • The plugin can now read compressed container data.
  • Added DialogModifications functions.
  • Added Barcode.WriteFile function.
  • Added functions to query special folders.
  • Updated to OpenSSL 1.0.1h.
  • Added DragDrop.CreateWithControl parameters to define an offset relative to container.
  • WebViewer field setter/getter functions can now find field by name if form name is empty and find fields in all forms.
  • Changed CGImageSource.ImageAtIndex and CGImageSource.ThumbnailAtIndex to convert image to RGB color space if necessary.
  • For DynaPDF PDF import we now automatically enable duplicate check and normalize by default.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Older blog entries:

2014-07-15 Customer Distribution
2014-07-11 Xojo dropping Carbon support on Mac!
2014-07-09 Mac App Store submission and RegEx Plugin
2014-07-08 Tip of the day: DynaPDF duplicate check
2014-07-06 Upcoming change of VAT rules in European Union
2014-07-04 xDev Magazine Issue 12.4
2014-07-02 FileMaker Stammtisch Hamburg 3rd July
2014-07-02 MBS Xojo / Real Studio Plugins, version 14.3pr1
2014-07-02 MBS Filemaker Plugin, version 4.3pr1
2014-07-01 Tip of the day: Connect to MS SQL Server from Mac without ODBC setup
2014-06-29 A trip with the cable car in Koblenz
2014-06-29 When to initialize plugin libraries
2014-06-29 New RTF functions coming for Windows
2014-06-28 One month until FileMaker DevCon 2014
2014-06-27 ActiveX Control crashing trouble today
2014-06-26 FileMaker Stammtisch Hamburg
2014-06-25 xDev Magazine Celebrates the World Cup with a Sale!
2014-06-24 MBS FileMaker Plugin 4.2 for OS X/Windows - More than 2500 Functions In One Plugin
2014-06-24 MBS Xojo / Real Studio plug-ins in version 14.2
2014-06-22 FMP URL protocol infographic

Archives

Aug 2014
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