You may know already that MBS Plugin enhances the script editor on Mac with line numbers, script step colors, calculation colors and if enabled variable declaration check.
Typo suggestions
Now with version 5.0 we have some more enhancements. If you have a typo in your function name, you get a message. So the call MBS("ersio") returns now "[MBS] Unknown function: ersio. Did you mean Version?". Our plugin simply scans internal function list to find a function name which matches best to the given function name. You can of course use similar best match search for your own solutions with the List.BestMatch and QuickList.BestMatch functions.
Notifications
Next you can get notifications for script errors. Run Trace.EnableErrorNotifications function once to enable this feature on your Mac. Whenever a script error happens, you'll see this notification showing the error message and the function name:
Be sure to disable it when going into production so your users don't see the notifications. You should check in your scripts for errors and handle them gracefully.
Trace
Please also use Trace functions. The Trace function will make sure that for every function call to the plugin, you get a log entry with parameters and result. For version 5.0 we added logging of script triggers. Trace can either log to a file or to the system debug log. So pass a native path, e.g. on Mac "/tmp/test.txt". Or simply use Console.app on Mac or install DebugView app on Windows. DebugView on Windows can be run as administrator and enabled to capture global Win32 in order to see log messages from FileMaker server. Below a sample script to decide how to log for various cases:
If [Get ( SystemPlatform ) = 3]
#iOS, no plugin
Exit Script []
End If
If [MBS("IsServer")]
If [MBS( "SystemInfo.isMacOSX" )]
If [Get ( SystemPlatform ) = 4]
#Server on Mac for WebDirect
Set Variable [$r; Value:MBS("Trace"; "/tmp/TraceFMServerWebDirect.txt")]
Else
#Server on Mac
Set Variable [$r; Value:MBS("Trace"; "/tmp/TraceFMServer.txt")]
End If
Else
#Server on Windows
Set Variable [$r; Value:MBS("Trace")]
#read via DebugView app running as admin with Global Win32 capture enabled
End If
Else
If [MBS( "SystemInfo.isMacOSX" )]
#Client on Mac
Set Variable [$r; Value:MBS("Trace")]
#read via Console.app
Else
#Client on Windows
Set Variable [$r; Value:MBS("Trace")]
#read via DebugView app
End If
End If
As you see we use two log files for Mac server, depending if the plugin is loaded for web direct or normal server.
Registration
A common problem we see with people is wrong registration. When you work with clients and servers, it can get confusing. While the plugin allows you to use a runtime or server license for one seat to develop, please don't use a server or runtime license regularly for clients. A registration script can go like this:
If [Get ( SystemPlatform ) = 3]
# iOS, no plugin to register
Exit Script []
End If
If [MBS("isRegistered")]
# already registered
Else
# register
If [MBS("IsServer")]
Set Variable [$r; Value:Evaluate("MBS(\"Register\"; " & MBSPlugin::LicenseKeyServer & ")")]
Else If [MBS("isRuntime")]
Set Variable [$r; Value:Evaluate("MBS(\"Register\"; " & MBSPlugin::LicenseKeyRuntime & ")")]
Else
Set Variable [$r; Value:Evaluate("MBS(\"Register\"; " & MBSPlugin::LicenseKeyClient & ")")]
End If
End If
So first we exit early for iOS as there is no plugin for iOS. Than we check if plugin is registered already and do nothing in that case. Else we check the platform and use the appropriated registration key. In our case with Evaluate as the registration key is in a text field.
Using isRegistered function is better than a global variable and certainly it is better to call such a script from various places where you need the plugin to make sure you are registered. With FileMaker Server the script engine may crash and restart. In that case the plugin is loaded again and registration needs to be applied again.
Or you use our StoreRegistration function and save the registration to preferences file (Mac) or registry (Windows).
Update: For FileMaker Server on Mac OS X you can see messages in /Library/FileMaker Server/Logs/stderr file.
Nickenich, Germany - (February 24th, 2015) -- MonkeyBread Software today is pleased to announce
MBS FileMaker Plugin 5.0 for Mac OS X or 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, Mac, 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 5.0 has been updated and now includes over 3000 different functions, and the versatile plugin has gained more new functions:
For our Mac users we have now
hot keys. You can define a key combination to launch a FileMaker script, even if FileMaker is not the active application. Our
MountNotification functions allow you to run a script when a drive mounts or unmounts.
The MBS Plugin now helps finding errors in scripts. If you call the MBS function with an unknown function name, the error message now includes a suggestion for the right function name. We hope this helps finding typos. If a script runs and a function returns an error, the plugin will show a notification. This way you don't miss an error in your scripts. Please enable this feature for development using
Trace.EnableErrorNotifications.
For
DynaPDF we have new functions to create, modify and delete annotations. You can now create much easier preview images for pages and render whole PDF files to a folder of images. New functions allow to
place text as watermark across a page.
Our functions for menus allow you to query the current
FileMaker menu. Using our plugin you can
execute menu commands from a script,
hide or
change the shortcut. For the menu command to create a
database design report, we got a function to create a report automatically from a script.
The
barcode functions can now calculate checksums for
EAN and
ISBN. The function
Files.DiskInfo queries the size of a drive and the free space. We improved the
TAPI functions for Windows to make and receive phone calls.
For
webviewer we got a few new functions to query selected text,
formatted text and the
favorite icon. You can control the scrollbars and manage cookies. Finally we got a new example showing how to use a SVG drawing tool in FileMaker.
We updated a couple of libraries: DynaPDF updated to version 3.0.38.112, LibXL to 3.6.1, CURL to 7.39.0, GraphicsMagick to 1.3.20, libJPEG to 9.1, libPNG to 1.6.14, OpenSSL to 1.0.1j and PCRE to 8.36.
For our Germans speaking users:
Wir haben die Artikel zum MBS Plugin aus dem FileMaker Magazin gesammelt hier online gestellt: FileMaker Magazin Artikel:
- FMM 201105 Bilder skalieren mit dem MBS FileMaker Plugin, So bleibt Ihre Datenbank schlank
- FMM 201203 Arbeiten mit Dateidialogen, Komfortablere Dateiexporte per MBS Plugin
- FMM 201303 Script-Träger übers Netzwerk, Scripts triggern übers Netzwerk
- FMM 201303 Syntax Coloring, Berechnungen und Scripts bekennen Farbe
- FMM 201306 Zip-Archive auslesen, Bilder aus OpenOffice-Dokumenten extrahieren
- FMM 201401 Kalendertermine und Erinnerungen, Wie man Ereignisse aus FileMaker anlegt
- FMM 201402 Variablen, Globalisierte Lösungen per Plugin
- FMM 201405 Vorbereiten von PDFs für den Versand, Verkleinern großer Dateien
- FMM 201405 E-Mail-Versand, Mehr Möglichkeiten mit dem MBS Plugin
- FMM 201501 QuickList, Schnelle Listen für FileMaker
- FMM 201503 Neue Datensätze ohne Layoutwechsel, Mit Hilfe von SQL-Befehlen und dem MBS-Plugin
- FMM 201504 Datensätze effizient kopieren, Mit etwas SQL und dem MBS-Plugin
- FMM 201505 Wünsche werden wahr, Neues im „MBS-Plugin“ bei der FMK 2015
- FMM 201506 Authentizität durch Signaturprüfung, Daten übertragen und Veränderungen bemerken
- FMM 201601 iOS App SDK, Eigene iOS-Apps auf Basis von FileMaker
Wir empfehlen allen FileMaker Anwender ein Abo vom Magazin und den Kauf der alten Ausgaben. Das FileMaker Magazin ist eine excellente Quelle von Informationen, Anleitungen und Profitips.
Just updated the archives for the
Dash application. Does the auto update work for you?
So here you can click to launch Dash and install our plugin help:
MBS Xojo Plugins and
MBS FileMaker Plugin
You find the docset links also on our reference websites where you can download archive manually if needed:
MBS FileMaker Plugin Documentation for Dash and
MBS Xojo Plugins Documentation for Dash
Feedback is welcome.
New in this prerelease of the 5.0 plugins:
- Fixed crash in Text.ReplaceNewline on Windows with empty text.
- Updated DynaPDF to version 3.0.38.112.
Download at
monkeybreadsoftware.de/filemaker/files/
New in this prerelease of the 5.0 plugins:
- Added support to SendMail functions for encoding attachment file names.
- Added MethodDraw SVG Editor example.
- Fixed test mode for DynaPDF works again. Use Starter, Lite or Pro to test if functions are okay with given license type.
- Fixed a possible problem with registration check.
- Added new PDF Kit functions: PDFKit.AddEmptyPage, PDFKit.AddImagePage, PDFKit.AddImagePage and PDFKit.NewPDFDocument.
- Optimized GraphicsMagick image loading in plugin to avoid trying several decoders.
- Fixed bug in GraphicsMagick reading jpeg 2000 images.
- Added GMImage.PurgeTemporaryFiles function.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
Method Draw is a fork of SVG Edit, a web based SVG editor. And we just got it working in FileMaker:
As you see we have script to initialize, load and save. So you can have a full featured drawing area in your FileMaker solution. Works fine here with FileMaker 11 on Mac, 13 on Mac and 13 on Windows. Other versions need to be tested.
Will be included as example with upcoming plugin release.
PS: We have also an example for Xojo to do similar.
A new issue of the German
FileMaker Magazine is published.
Das erwartet Sie in der neuen FileMaker Magazin Ausgabe:
20 Jahre FileMaker Magazin
- Damals beim FileMaker Magazin
Eine Verlagsgeschichte in Bildern | Klaus Kegebein
In eigener Sache
- FMM Titelwahl 2014
Spieglein, Spieglein an der Wand … | FMM Redaktion
Datenmodellierung
- Modulare Konzepte
FileMaker Module und neue Ansätze | Karsten Risseeuw
FileMaker Lieblinge
- Platzhalter auf Komfortkurs
Holger Darjus
Tipps & Tricks
- SQL im Einsatz
Tipps zur Funktion „SQLAusführen“ | Arnold Kegebein
Plugins
- QuickList
Schnelle Listen für FileMaker | Christian Schmitz
Gewusst wie
- Mengenabgleich
SQL-Abfragen mit IN SET-Syntax | Arnold Kegebein
FileMaker & Recht
- Forderungsmanagement
Inkasso leicht gemacht | Christoph Kluss
Gewusst wie
- Stoppuhr
Eine Eigene Funktion für die Zeitmessung | Arnold Kegebein
Neuigkeiten, Kleinanzeigen, aktuelle Versionen, Adressen, Stammtische
Did you notice we now have four blog domains?
If you visit the blog here regularly or read the RSS feed, you can now filter to FileMaker and/or Xojo topics.
mbsplugins.de - all blog entries
mbsplugins.de/filemake - all FileMaker blog entries
mbsplugins.de/xojo - all Xojo blog entries
Maybe that helps some of our clients which don't use Xojo or FileMaker to filter out the other development tool.
New in this prerelease of the 5.0 plugins:
- Added WebView.GetFormattedText for Mac and added formatted text parameter to WebView.SelectedText function.
- Fixed problem with QuickLook feature in Open dialogs not working due to MBS plugin's code for QLPreviewPanel functions.
- Fixed bug in Dialog buttons.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
10th February 2015 - Monkeybread Software develops for years the MBS FileMaker Plugin. The current development version 5.0pr10 includes now over 3000 functions, a new record!
Shortly we release our Version 5.0. New in this version are global hotkeys for Mac and a lot of improvements for TAPI, WebView, DynaPDF, Barcode, GraphicsMagick, Excel, ListDialog, Audit and SystemInfo functions. Our Menubar functions allow you to run FileMaker menu commands by script. Using FM.RunDataDesignReport function you can even automate generating a database design report. If you have a typing mismatch in a function name our plugin will now suggest a correction. And if some error happens in a script, the plugin can show a notification on OS X with the error message, so you notice script problems easier.
Many FileMaker developers trust the MBS Plugin. Normally new developers find the MBS Plugin due to an interesting function. Often while researching for a client if a possible feature can be added to a solution in FileMaker. Once the developer knows how powerful our plugins is, they enjoy using it and find new functions regularly.
The development of MBS Plugin startet 2006 with early versions. Soon in 2010 we had version 2.0 with over 400 functions. End of 2012 we published version 3.0 with already 1375 functions. Early 2014 with version 4.0 we got 2298 functions. In the last year alone we added over 700 functions for you. No wonder, as we have a constant stream of feature requests coming in from our plugin users.
Especially our free extras like the line numbers and syntax highlighting in script editor brought us a lot of new clients in the last two years.
First when you plan to use the XL functions, be aware that you will need the license for our MBS plugin. In addition you need licenses for the
LibXL library. Our plugin uses this library to actually perform the functions.
LibXL is sold separately for $199 per platform and you only buy one license for you as the developer, independent of the number of clients.
Initialize
Before using the XL functions, it is important to initialize the XL functions. Best practice is to check result of MBS("
XL.IsInitialized") function. If result is not 1, you need to initialize. For that you first need to locate the libxl files. Our examples include library files for Mac and Windows. We have libxl.dylib on Mac for 32 and 64 bit in one file. For Windows libxl.dll is the 32bit and libxl64.dll is the 64bit file. On Windows you can pass path to libxl.dll and if FileMaker is running as 64bit application, the plugin will add the 64 automatically and find the 64bit library. The example databases find the library in the same folder as the example database automatically. On a Server you normally copy the libxl files to the server and hard code the native path, e.g. "/Libary/FileMaker Server/libxl.dylib". So the initialization can look like this:
If [MBS("
XL.IsInitialized") ≠ 1]
Set Variable [$r; Value:MBS( "
XL.Initialize"; "/Library/FileMaker Server/libxl.dylib")]
End If
Create book
Next we have to create a new book. The plugin uses reference numbers to handle several books in memory at the same time. It is important you reference your book with a variable in the whole script and release it on the end. To create a workbook, please call
XL.NewBook function. Here you need to decide if you plan to save later as XML based or binary excel file. We pass 0 for the normal xls file format:
Set Variable [$book; Value:MBS( "
XL.NewBook"; 0 )]
After we got our book, we add a sheet labeled "Addresses". We get back the sheet reference number which is zero for first sheet:
Set Variable [$sheet; Value:MBS( "
XL.Book.AddSheet"; $book; "Addresses")]
Write data
Our main loop here loops over the records in our test table. Starting with first record we move one row at a time and one record a time. Inside the loop we set cell text for each cell in current row and fill them with values from the record. As you see we have to pass book reference number, sheet number, row number and column indexes. We define the columns ourself here.
Go to Record/Request/Page [First]
Loop
Set Variable [$r; Value:MBS( "
XL.Sheet.CellWriteText"; $book; $sheet; $row; 0; Export records::First Name)]
Set Variable [$r; Value:MBS( "
XL.Sheet.CellWriteText"; $book; $sheet; $row; 1; Export records::Last Name)]
Set Variable [$r; Value:MBS( "
XL.Sheet.CellWriteText"; $book; $sheet; $row; 2; Export records::Street)]
Set Variable [$r; Value:MBS( "
XL.Sheet.CellWriteText"; $book; $sheet; $row; 3; Export records::Zip)]
Set Variable [$r; Value:MBS( "
XL.Sheet.CellWriteText"; $book; $sheet; $row; 4; Export records::City)]
Set Variable [$r; Value:MBS( "
XL.Sheet.CellWriteText"; $book; $sheet; $row; 5; Export records::Country)]
Set Variable [$r; Value:MBS( "
XL.Sheet.CellWriteText"; $book; $sheet; $row; 6; Export records::Phone)]
Go to Record/Request/Page [Next; Exit after last]
Set Variable [$row; Value:$row + 1]
End Loop
Finish
On the end, we save to a container. For that we use the Set Field script step. the plugin function
XL.Book.Save returns the container value with the Excel file inside. We pass a file name for the container to give it a name which FileMaker uses to export the field content later.
Set Field [Export records::File; MBS("
XL.Book.Save"; $book; "test.xls")]
Finally we have to release memory and close book. So the
XL.Book.Release will clear memory:
Set Variable [$r; Value:MBS("
XL.Book.Release"; $book)]
More?
This is of course a very easy example. It does not create fonts or formats. Maybe you want to check other example databases coming with plugin if you like to learn how to create formats, fonts and add images to Excel files.
As all those social services (Facebook, Twitter, Google Plus) like to know where users surf. All the websites with like buttons create a log entry in their logs and include a reference to the profile, if you are logged in. This way they can track you surfing over the web.
One thing I do myself for a long time is to delete cookies automatically. With
Cookies app from Russell Gray. I have 20 cookies on my white list like the Xojo and FileMaker forums auto login. But all others cookies are automatically deleted when I close the browser. This way I'm a new client each time when I visit google web search or browse amazon.
Now I have several browsers: Safari, Firefox and Google Chrome. For my normal surfing I use Safari while the social networks reside in Chrome. They can set their cookies and I have auto login, but they don't monitor me when I use Safari to surf the web.
Finally I disabled plugins. No flash security problems if Flash is disabled. And as YouTube now uses HTML5 by default, that's not even a problem for normal surfing. And of course plugins are just a few clicks away if needed. But with new plugin per website control in modern browsers, you should have plugins disabled for all websites by default. Only enable them where you need. It is amazing how many websites want to use Flash only to track you!
Pro license is required for the following functions:
- BeginTransparencyGroup
- ConvertColors
- Create3DAnnot
- CreateSoftMask
- FlattenForm
- GetPageText
- ImportPage and ImportPageEx
- ParseContent
- RenderAnnotOrField
- RenderPage
- SetCMapDir
- SetExtColorSpace, SetExtFillColorSpace and SetExtStrokeColorSpace.
- SetUseGlobalImpFiles
Lite is required for:
- AddRenderingIntent and AddRenderingIntentEx
- CreateFormFields
- CloseFileEx
- ConvertEMFSpool
- CreateCollection
- CreateExtGState
- InsertMetafile and InsertMetafileEx
- OpenImportBuffer, OpenImportFile and OpenImportStream
- SetPDFVersion for PDF/A and PDF/X
And all functions relaying on those functions internally.
We just got notice about the upcoming dotfmp conference where you can meet me:
Berlin, Germany - 6 February 2015
We are pleased to announce the 3rd edition of THE pan-European Unconference for FileMaker Developer, .fmp[x]Berlin 2015.
Taking place from 4 − 6 June 2015 in the Hotel Upstalsboom Berlin, some of the finest brains of the European Software-Developer community will be meeting on a personal basis to exchange ideas and share knowledge.
This high-level content, all about the latest versions of the FileMaker Platform, will be accompanied by some special features that are not available elsewhere!
In terms of award-giving, unconference regulars will be pleased to know that the omnipresent 'dotfmp award for the longest journey’ will be better than ever. This not-to-be-taken-too-seriously event will continue to offer prizes and merriment. It will be joined by the "dotfmp Certification Exam for FileMaker Pro 2”, a nostalgic trip harking back to the beginning of software development. And, last but not least, the "Developer Passport” will honour the efforts of the most-dedicated developers in a very different way!
All this is framed by a very special supporting program. Starting on Wednesday 3rd, there will be the chance to hangout in one of the oldest beer gardens in Berlin. Delegates will be able to visit specialty restaurants on Friday 5th and to enjoy a Thuringian Barbecue on Saturday 6th. Closing, on Sunday, 7th is left free for sight-seeing to the many famous sights places and sights in Berlin.
.fmp[x]Berlin has been growing by 25% each year and has become an inherent part of the yearly schedule of the most important developers across the world. As such, this is the first time we have to limit the seats to a maximum of 80 attendees. In order to secure a place at this high-level event in one of the most exciting cities, register on the website now!
For more Information visit: www.dotfmp.com
New in this prerelease of the 5.0 plugins:
- Added functions for SerialPort to get/set parity and stop bits.
- Fixed bug in SerialPort.SetDataBits function.
- Added 40 new DynaPDF functions.
- More XL functions return proper error messages.
- Added XL.Date.DoubleToTimeStamp, XL.Date.TimeStampToDouble, XL.Sheet.CellReadDate and XL.Sheet.CellWriteDate functions.
- Updated DynaPDF to version 3.0.38.111.
- Added HotKey functions for Mac.
- GraphicsMagick functions taking color now also allows taking Random, RandomDark and RandomLight as parameter.
- Added GMImage.FindColorInRow and GMImage.FindColorInColumn.
- Added Files.DiskInfo function.
- Fixed drop area image, so you can set an image again with DragDrop.SetImage function.
- Fixed drop areas, so they don't move if you change window size.
- Added GMImage.MultiplyChannel function.
- Fixed problem with Text.TextToHTML not encoding all characters correctly.
- Fixed problem in DynaPDF.InsertImage and DynaPDF.InsertImageFile.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.
For our German users living near Koblenz, there came the announcement for the next meeting:
Ein herzliches Hallo an alle FileMaker Freunde,
es ist wieder soweit! Am Donnerstag, 5. Februar 2015, treffen wir uns zum Koblenzer Stammtisch ab 19:00 Uhr bei Thomas Jaeger.
Aktueller Ort:
Orthopädietechnik Jaeger
Hermsdorferstraße 3
56112 Lahnstein
Telefon: 0 26 21 / 6 23 40
Aktuelles Thema: Anbindung der Telefonanlage an das hausinterne FileMaker System
Eigene Ideen, Konzepte oder gar Lösungen beleben lockeren Erfahrungsaustausch und erquickendes Fachsimpeln. Genießen Sie den Abend und machen Sie mit! Bitte benutzen Sie den vorderen Eingang. Gerne kommt der Stammtisch auch zu Ihnen und Ihrer FileMaker Entwicklung :)
Fragen sowie Anregungen einfach an filemaker@interact.de senden. Freunde und Kollegen sind wie immer gern gesehen und werden auf Wunsch in den Verteiler aufgenommen.
New in this prerelease of the 5.0 plugins:
- Added Path.FileURLToFilePath and Path.FilePathToFileURL functions.
- Added parameters to DynaPDF.GeneratePreview to query image.
- Trace command now also logs Audit results. Also SQL/Evaluate errors while Audit are written to Console/DebugView.
- Updated DynaPDF to version 3.0.38.109.
- Added Webview.SelectedText function.
- Added Barcode.EANChecksum and Barcode.ISBNChecksum functions.
Download at
monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.