Our Blog, FileMaker only, Xojo only, Archive (older)     Follow us on Twitter, Xing, LinkedIn or Facebook.

FileMaker Magazin Links


As you may know we publish a few articles in German FileMaker Magazin.
For our documentation we added links to relevant articles, so you can quickly find them.

e.g. if you scroll down on the page FM.ExecuteFileSQL, you find listed related functions, example databases, blog entries and new the list of pages in FileMaker Magazin referencing this function.

We hope this makes live easier for those using MBS Plugin and subscribing to the FileMaker Magazin. Even if your German is not perfect, you may want to read it as the Magazin is a big treasure with the back issues from 25 years.

We keep a few articles from the magazine here: FileMaker Magazin MBS Artikel

In total we reference the magazine from 356 functions with 630 relevant pages. Enjoy!

Ideas wanted for surprise MBS feature for Xojo.Connect


Last year we presented our DynaPDF graphics class integration, a feature we worked on a few weeks before the conference in secret (see presentation video here). Beside the normal support requests and preparing the session slides that was a bit of extra work each day. The presentation file, I submitted before the conference, did miss the new special slides and I added them just before the presentation to make sure I didn't leak the news myself.

For Xojo.Connect 2020 in Nashville this year we look for a new idea on what to present as a surprise. Not sure if we find a compelling idea. It should be something which is useful to a large portion of the user base and not a feature for a you alone or a handful of people. And it should be plugin feature, so not a wish for iOS extension or some grid with containers as that is better written in Xojo directly.
Do you have ideas? Please email us.

I would also encourage the Xojo team to take a week before XDC, look through feedback cases and maybe let every Xojo engineer pick an annoying bug, a little feature request or something they'd like to see or have and spend some time onto this. Especially as a lot of feedback cases never come to the top 100 list and never get attention of the management. The in the keynote Geoff could present that list and maybe demonstrate those improvements. Those items would be first hand news shared with the crowd. Finally for the last session, if something got fixed at the conference, present it there. I did this before at a conference where I had a short lightning talk on the end and could show a new feature I programmed at the conference.

One of the feature I would do as a developer on the compiler is to make sure it annotates the nil object checks and out of bounds exceptions as far as possible with details like line numbers or name of variable. Not for all cases of course, but the functions to raise this exceptions could be overloaded and when the LLVM frontend for Xojo parses the lines and adds the checks, it could include the parameter with line number if it knows them.

A font preference for FileMaker


Our work continues for custom font for FileMaker and some people like JetBrains Mono, but why not a different font and make it user choosable?
Not all fonts work, so we filter the font list and only include those with characters used in script workspace like brackets. So WingDings for example is not offered.



We'll see if this feature works well or causes trouble for some users.
This feature is coming for next MBS FileMaker Plugin version 10.1 one early March.

Xojo Web 2 Progress


As a Xojo developer, do you use Feedback application to report bugs and feature requests?
Did you notice in the recent section that a lot of feature requests got marked as implemented for Web 2.x?



Seems like there is a quite a bit of WebAPI 2.x progress and I am looking forward to Xojo.Connect conference to learn the details!

We expect a beta version to be ready either at the conference or shortly after it. At the conference for attendees would be great because if we all download and play with it there, we may report bugs and show them directly to Xojo staff so they could be fixed at the conference.

Preferences dialog for Windows


We got a new preferences dialog for our MBS FileMaker Plugin on Windows. It allows you to see the plugin version and allows to install a license key locally, which is saved to the registry as with StoreRegistration function:



As the dialog on MacOS, we may show the license state, e.g. demo with no license, trial license or purchased license.
Over the next release we may tweak the dialog a bit. Currently it makes trouble if you click on FileMaker window and the dialog moves to background.

Using a different font in FileMaker


In the last week JetBrains Mono font was released. It got some attention and a couple of people asked whether we can have that in FileMaker as font for the script workspace and/or calculation dialog. The font has a few nice features for developers including easy to distinguish 0 and O characters as well as 1, l and I all easy to recognize. A couple of ligatures help to make code easier readable with minus and greater than drawing more like an arrow for example. See yourself in a calculation:



Work is still in progress, but here is the script workspace with Jet Brains Mono:



We noticed that you need to restart FileMaker in case you change font, but I think we'll add a preferences for our preferences dialog to define that.
This feature is coming for next MBS Plugin version 10.1 one early March.

Two months till Xojo.Connect 2020 in Nashville


Just two months till the XOJO.CONNECT 2020 in Nashville, Tennessee, USA. Tickets are still available for $999 USD.



It will be held March 25-27, 2020 in Nashville, TN at the Sheraton Music City Hotel. This conferences is the best place to meet Xojo developers from around the world in real live, make contacts, present yourself as expert and learn what is new in Xojo. Tickets are available in the Xojo store and if you bring your partner, you can order an extra guest ticket for the dinner events.

Check out the conference highlights video if you want to see what it's like - or ask one of the many attendees from the forum!

Wether you are full or part time Xojo developer, this is your chance to learn all about the Web 2.0 framework, the Android progress and what's new in the Xojo world.

New in the MBS Xojo Plugins 20.0


Last week we introduce the MBS Xojo Plugin in version 20.0. Today I want to give you an overview about what’s new.

JavaScript Engine

Furthermore we offer functions for the use of JavaScript in Xojo solutions. If you have a problem that you want to solve, you don't have to reinvent the wheel again and again. Perhaps someone has already found a solution to this problem and shared his solution on the internet. If the code of the solution is in javascript, you can evaluate the code with the help of the MBS Plugin in your project. You can add and call functions, Set and Get global properties and execute JavaScript code. For example we want to write a function that add a numeric value to a global JavaScript variable the code can look like this. An example:

Dim js As New JavaScriptEngineMBS
Dim r As Integer
js.GlobalProperty("A") = 2
js.AddFunction "AddNumberToVariableA", "function (x) { return A+x; }"
r = js.CallFunction("AddNumberToVariableA", 3)
MsgBox Str(r)

You can use our JavaScriptEngineMBS class just like you would use XojoScript control to define your own scripting language.

Also new is the WKWebviewMBS class for macOS to better use WebKIt 2.x. We can have objects that displays interactive web content, such as for an in-app browser. You can load content and can navigate through it. In the web view you can even execute JavaScript code with the EvaluateJavaScript method. (more)

New in the MBS FileMaker Plugin 10.0


In this article I want to show you what’s new in the MBS FileMaker Plugin version 10.0. Year! We reach the 10 in front of the dot. With a new Year and a new plugin version we get a lot of new functionalities.

List and QuickList comprehension

At fist I want to show you the new functions to compare specified columns of lists and quick lists. The difference between a list and a quick list is, that a quick list is a reference to a list object managed by MBS Plugin instead of just a block of text passed around.

Now you can compare listen entries in a specified column from two lists. You can filter the list items that are in both lists (List.AndColumn), List items from the first list that don’t find a match on the second list (List.NotColumn), list elements of both lists where entries that occur in both lists are only mentioned once (List.OrColumn) or list elements that’s are only on one list (List.XOrColumn). The functions are similar for quick lists. Here is an example for the use of it. (more)

Xojo Workshop in UK


The Coding in the Cotswolds group regularly organizes Xojo meetings in the south west of the United Kingdom near Swindon. I plan to attend the next meeting on 5th March 2020. Seating is limited, so if you are interested, please contact Paula or Bill and get or the guess or waiting list.

Beside this workshop we could of course organize a Xojo developer meeting for dinner in the same week. Someone interested?

Create Barcodes on Server from FileMaker Go


We recently got a query how to create the scripts to handle barcode creation everywhere with MBS Plugin. This includes passing the request to a FileMaker Server if no local plugin is installed:

 

  • in FileMaker Pro with MBS Plugin to create barcode locally.
  • in FileMaker Pro or Go without MBS Plugin and using the plugin installed on server
  • in a scheduled script on FileMaker Server with MBS Plugin installed
  • in WebDirect on FileMaker Server
  • in FileMaker Data API on FileMaker Server, where we need to trigger script in server side scripting engine.
  • in FileMaker iOS SDK with either local plugin or server side plugin

The following script runs on the FileMaker Server and creates the barcode there if the MBS Plugin is installed. Pass JSON as script parameter with the barcode parameters. The script then returns a JSON object text with either error or barcode entry filled. But see yourself:

 

# This script is run on server to provide barcode to clients without MBS Plugin

Set Variable [ $JSON ; Value: Get(ScriptParameter) ] 

Set Variable [ $result ; Value: "" ] 

If [ GetAsText(MBS("Version")) = "?" ] 

# no MBS Plugin

Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; "No MBS Plugin on server installed."; JSONString ) ] 

Else

# with MBS Plugin

# generate barcode based on JSON

Set Variable [ $img ; Value: MBS("Barcode.GenerateJSON"; $JSON) ] 

If [ MBS("IsError") = 0 ] 

# Create PNG image file as container value

Set Variable [ $Image ; Value: MBS( "GMImage.WriteToPNGContainer"; $img; "barcode.png") ] 

If [ MBS("IsError") = 0 ] 

# Return image base64 encoded

Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "barcode" ; Base64Encode ( $Image ); JSONString ) ] 

Else

# Pass back error

Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; $Image; JSONString ) ] 

End If

# free memory

Set Variable [ $r ; Value: MBS( "GMImage.Destroy"; $img ) ] 

Else

# Pass back error

Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; $img; JSONString ) ] 

End If

End If

Exit Script [ Text Result: $result ] 


(more)

Xojo developer meeting in New York City


The Xojo.Connect conference will take place March 25-27 in Nashville, TN. On our way to Nashville we stop in New York for a few days and we like to organize another Xojo developer meeting, this time in New York City.

Please vote on the day: Survey
Email us to make sure we have a matching email address for the attendee list, so we can keep you informed.

We meet in a nice restaurant somewhere central in New York City, so we can shop talk about Xojo and have dinner together. Time will probably be around 18 to 22 o'clock and you can of course come later or leave earlier. Suggestions for a restaurant with some separated space for our group is welcome.

If you are interested in private time for consulting, training or discussion MBS or Xojo topics, we can of course schedule a meeting. Please contact me directly interested.

5 Monate bis zur Deutschen FileMaker Konferenz 2020 in Malbun


Noch fünf Monate bis zur FileMaker Konferenz 2020 in Malbun (Liechtenstein) und zur MBS Plugin Schulung Schulung am Mittwoch vorher.

Vom 17. bis 20. Juni 2020 findet die elfte deutschsprachige FileMaker Konferenz in Malbun, Liechtenstein statt. Aktuell läuft die Frühbucherphase bis 20. Februar mit vergünstigten Tickets.

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

Für den Deutschsprachigen Raum ist diese Konferenz das Treffen des Jahres. Hier finden Sie vom Anfänger bis zum Profi Kontakte zu anderen Entwicklern. Lernen Sie was es neues gibt, nehmen Sie Impulse mit für die eigene Arbeit und erfahren Sie mehr zu FileMaker von deutschsprachigen Experten!

Die MBS Plugin Schulung vorher findet voraussichtlich am 17. Juni 2020 statt (im gleichen Hotel). Anmeldung

Bitte planen Sie wenigstens einen extra Tag ein für ihren Besuch in Liechtenstein, damit Sie die Natur in dem schönen Tal geniessen können. Den Aufstieg auf den Sareis können Sie bequem zu Fuß vom Hotel aus starten und die Turnastraße hinauf spazieren bis zum Restaurant am Gipfel. Oder alternativ die Seilbahn nehmen.



Interesse an mehr? Die Claris Engage Europe 2020 vom 26. bis 28. Oktober 2020 bietet deutlich mehr Vorträge, mehr internationale Teilnehmer und vor allem FileMaker Mitarbeiter aus den USA, die gerne mal einen Blick unter die Haube von FileMaker bieten.

Automate web viewer in FileMaker


In the last weeks a few people asked about automating web viewer in FileMaker, so here a video to show a couple of features in MBS FileMaker Plugin:



To automate a website, you may first want to inspect it. For that you can use our Form Utility application to show which form fields are available. The application suggests which commands to use to query or set fields. Then you can use WebView.SetFormButtonValue, WebView.SetFormInputChecked, WebView.SetFormInputValue, WebView.SetFormSelectValue, WebView.SetFormTextAreaValue and WebView.SetFormValue to change form fields.

For MacOS and iOS in FileMaker 16 or newer you can use WebView.SetPreferences function to set preferences for developer extras and show the inspector in the web viewer.

Use WebView.RunJavaScript or WebView.Evaluate to run JavaScript. This allows you to query individual pieces of information from the website, execute some JavaScript on the website or send events to fields like a click event. When you send a change event, the website may recognize your changes and validate the form.

Finally send the form by clicking a button with WebView.ClickInput, submit the form with WebView.FormSubmit or run some JavaScript to start an action.

Transactions in MBS Xojo SQL Plugin


Our MBS Xojo SQL Plugin supports the use of transactions. Two settings define the behavior, first the transaction mode and second the isolation level.

Please set transaction mode and isolation level after connecting to the database before running commands. (more)

Run scripts via Data API with FileMaker Plugins


As you may know the FileMaker Server Data API does not load plugins. If you need to run a script using plugins, you need to use a little trick. You query the application version of the script engine running the script. If you get back "FileMaker Data API Engine 18.0.1", you know the script is run via Data API. Now you can branch to the same script on the server scripting engine. That is a different process on the FileMaker Server which does load plugins. Then you return the result back to the calling script. Let us show you an example script:

If [ Position ( Get(ApplicationVersion) ; "Data API" ; 1 ; 1 ) > 1 ]
    # forward call to Server Scripting Engine
    Perform Script on Server [ Specified: By name ; Get(ScriptName) ; Parameter: Get(ScriptParameter) ; Wait for completion: On ]
    Exit Script [ Text Result: Get(ScriptResult) ]
End If

Exit Script [ Text Result: "MBS: " & MBS("Version") & ", Server: " & Get(ApplicationVersion) ]

As you see we forward parameter and get back the result. So without the trick with the if block, we get back from the script:

"MBS: ?, Server: FileMaker Data API Engine 18.0.1"

and with the if loop and our forward:

"MBS: 10.0.0.9, Server: Server 18.0.1"

And you can use MBS Plugin on the server via Data API.

We recommend to check LastError via Get(LastError) function call after Perform Script on Server to see if you got "Hosts capacity exceeded" with error number 812. In that case it may be good idea to make a 10 second script pause and try again.

PS: See also product idea: Support plugins in Data API

Xojo Meeting in Berlin


We are coming back to Berlin in June, so we plan a Xojo developer meeting for 2nd June 2020.

Topics may be the last and upcoming Xojo conferences, what's new in recent Xojo and MBS Plugin releases and your experiences in development.

Interested? Please contact us soon to be added to the attendee list, so we reserve enough space.
We may have a few give aways, as usual.

CRC function in FileMaker using JavaScript


Recently a client asked how to leverage JavaScript in FileMaker to do a specific calculation. For this blog post we replace the client's function with a CRC function to show you how to do it.

 

Up until a few weeks ago we would have pointed to loading JavaScript in a web viewer and using WebView.RunJavaScript to run the JavaScript. But now we would point to WebView.Evaluate and just run it. See the example script in our documentation for this CRC function.

 

With MBS FileMaker Plugin in version 10.0 we got our own JavaScript functions using the DukTape engine. We have an example in the documentation to run the CRC function right in a Let command and the JS.Evaluate command. But instead of initializing it each time in a Let statement, you may prefer to split this into three scripts, so you do the initialization only once.


(more)

MBS FileMaker Plugin 10.0 - More than 6000 Functions In One Plugin


Nickenich, Germany - (January 14th, 2020) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 10.0 for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, macOS, iOS and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 10.0 has been updated and now includes over 6000 different functions, and the versatile plugin has gained more new functions:

In this release we include with JavaScript functions our own JavaScript engine based on the DukTape opensource project. Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. You can evaluate JavaScript snippets, get and set global properties and add custom functions written in JavaScript. Those JavaScript functions work on FileMaker Server for server side scripts including WebDirect and PSoS.

For web viewer on Windows using Internet Explorer you can use WebView.Evaluate function to run JavaScript and get the result back. Call JavaScript function with WebView.CallFunction function and pass parameters and receive results. We convert between FileMaker data types and JavaScript, so numbers are passed as numbers and not converted to text. WebView.Evaluate is supported on MacOS, Windows and iOS.

With MacOS Catalina and iOS 13 Apple includes new machine learning capabilities, which you can use in your applications to update a model on device with new training data. Improved SyntaxColoring.AddContextMenuCommand for MacOS to add separators and add hotkeys to menu entries.

For Windows use WMFP functions to play video/audio independent of FileMakers's container field control. This includes playing audio in background. We added more parameters to Printer.SetPrinter function to set paper format, orientation and source.

In your FileMaker iOS SDK application use DocumentCameraScan functions to scan documents via camera on iOS, rectify them and store them in container fields or files. Use ContinuityCamera functions to scan documents or take pictures on iOS and store them in your database on Mac. Use EIDSDK functions and Zetes Bluetooth card reader on iOS to scan Belgian ID cards.

Use Window.PositionNextDialog function to position dialogs in FileMaker on MacOS and Windows. Check network statistics with SystemInfo.NetworkStats function and copy multiple files parallel with Files.CopyFiles function. Added DynaPDF.CreateGoToAction and related to add links to tables in PDF. We improved XML.ToJSON, SmartCard.ReadFile and performance for EventMonitor functions on Windows and receiving data in CURL for POP3 and IMAP protocols.

Finally we updated DynaPDF to version 4.0.37.101, CURL to 7.67.0, LibArchive to 3.4, SQLAPI to 5.0.3, zint to 2.7, LibXL to 3.8.8 and Xcode to version 11.3.

See release notes for a complete list of changes.

MonkeyBread Software Releases the MBS Xojo Plugins in version 20.0


Nickenich, Germany - (January 14th, 2020) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 20.0 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins have been updated and now includes over 2600 classes and 67,000 documented features, and the versatile plugins have gained more new functions:

In this release we include with JavaScriptEngineMBS class our own JavaScript engine based on the DukTape opensource project. Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. You can evaluate JavaScript snippets, get and set global properties and add custom functions written in Xojo or JavaScript.

For HTMLViewer on Windows using Internet Explorer as engine, we got new classes like IEDocumentMBS to offer many more features. We deprecated the older IE methods on HTMLViewer to declutter auto complete. And our new class brings you an Evaluate function to run JavaScript and get back the result as variant. You can call JavaScript functions and pass Xojo variants for parameters, so we pass numbers as numbers and not convert them to text. Use SetInternetExplorerVersion function to request a newer Internet Explorer version for HTMLViewer.

With MacOS Catalina Apple includes new machine learning capabilities, which you can use in your applications to update a model on device with new training data. Enjoy new events in WKWebViewControlMBS control to decide policy for navigation and load HTML files easier. Use the WKBackForwardListMBS class to navigate the history.

Enjoy ImageMagick in version 7 and use it with 8 to 64-bit color depth per pixel component and optionally HDRI support. For LCMS2TransformMBS class you can now use multi threading to run transformation in parallel.

For Windows use MFPMediaPlayerMBS to play video/audio independent of Xojo's MoviePlayer control. If you use WindowsPlayerMBS class to play mp3 files, you can now choose the audio device.

Use LMFitMBS and related classes for Levenberg-Marquardt least squares fitting algorithm. Solve boolean satisfiability problem with LGLMBS class. When using iTunesLibraryMBS class to read iTunes library content, you can now do initialization in a thread to not block user interface.

Finally we updated DynaPDF to version 4.0.37.101, CURL to 7.67.0, LibArchive to 3.4, SQLAPI to 5.0.3, zint to 2.7, LibXL to 3.8.8 and Xcode to version 11.3.

See release notes for a complete list of changes.

Older blog entries:

2020-01-14 Neues MBS FileMaker Plugin 10.0
2020-01-13 Different colors for variables in FileMaker
2020-01-13 Xojo Developer Conference 2020
2020-01-13 Speakers wanted for Claris Engage 2020
2020-01-13 Individual licenses for MBS Xojo Plugins
2020-01-11 MBS Xojo Plugins, version 20.0r8
2020-01-11 MBS FileMaker Plugin, version 10.0pr8
2020-01-08 MBS FileMaker Plugin, version 10.0pr7
2020-01-08 MBS Xojo Plugins, version 20.0r7
2020-01-08 Document Camera Scan functions for FileMaker iOS SDK
2020-01-07 MBS Workshop in Malbun bei der FileMaker Konferenz
2020-01-06 MBS FileMaker Plugin, version 10.0pr6
2020-01-06 MBS Xojo Plugins, version 20.0r6
2020-01-05 Evaluate JavaScript for web viewer in Windows
2020-01-04 Array size allocation in Xojo
2020-01-04 Whether to order updates or not
2020-01-03 MBS Meeting in Netherlands
2020-01-03 xDev 18.1 Issue
2020-01-02 MBS FileMaker Plugin, version 10.0pr5
2020-01-02 MBS Xojo Plugins, version 20.0r5

Archives

Jan 2020
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
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