MBS FileMaker Plugin, version 6.3pr4

Friday 24 June 2016 at 11:24 pm
New in this prerelease of the 6.3 plugins:
  • Added WebView.Passwords.Clear, WebView.Passwords.Install and WebView.Passwords.Set to provide passwords for web authentication in webviewer.
  • Updated to DynaPDF 4.0.1.3
  • Added ColorTolerance parameter for DynaPDF.ShowDifference.
  • Added JSON.IsValid function.
  • Changed SSH.Connect, SendCommand, ServerSocket.SendQuery and Socket.Connect to resolve domain name and work with IPv6.
  • We now convert line endings for SSH and RSA keys to LF to avoid errors reading keys with CR line endings.
  • Added CUPS.PrintDataEncoding function.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

MBS FileMaker iOS SDK Extension 0.2

Wednesday 22 June 2016 at 12:47 pm
Nickenich, Germany - (June 22nd, 2016) -- MonkeyBread Software today is pleased to announce MBS FileMaker iOS SDK Extension 0.2, the first extension available for FileMaker's iOS SDK used to create branded iOS apps based on FileMaker Go.

Currently we have no plugin SDK for FileMaker iOS SDK or FileMaker Go, so we can't port our MBS FileMaker Plugin with over 4000 functions to iOS. But we created a different way to add a few useful functions for iOS SDK. The result is this new library for you!

Version 0.2 adds 5 more commands for writing a file, deleting a file, doing activities to block display sleep and check network availability.

By installing our library into your iOS app, you can now use nine commands:

version: Shows version of the extension.
events.authorize: Asks iOS for permissions to access calendars.
events.newevent: Creates a new calendar event for the calendar on iOS.
events.newreminder: Creates a new reminder.
activity.begin: Start activity and disable display sleep.
activity.end: End activity.
Files.WriteTextFile: Write text file in UTF-8
Files.DeleteFile: Delete a file.
Network.Available: Check if we have Wifi, Cellular or no network available.

We may add more commands in the future based on feedback of users.
So far this works fine for creating events/reminders in our iOS SDK based solutions.

Download MBS FileMaker iOS SDK Extension.dmg

Please try and provide your feedback to use. If you need assistants, help of custom functions, we are available for hire. This extension is currently provided as-is without cost.

DynaPDF Invoice example

Monday 20 June 2016 at 6:21 pm
Have you seen the new Invoice example database including with our MBS Plugin?

It shows how to create a multi page invoice PDF from FileMaker using our DynaPDF functions. This includes page breaks if there are a lot of positions on the page. We use a template PDF for the background of the invoices. First page of the template defines the first page of the invoice which includes space for address and company information. Second page from template is used for other invoice pages. Finally we take all the other pages from our template PDF and add in the invoice. This allows us to include extra pages for Terms of Sales or other legal information.

The PDF creation can run on FileMaker Server if needed and the PDF is stored in a container and written as file to disk. Of course you can use the PDF file to email to a client right away.
To layout the invoice we use several text blocks for details like the company info and the address. We show the invoice number, a heading line and the date on the page. For all the items we walk over the records and add them to a layout table in DynaPDF. This table is than drawn over all the pages needed. For the intermediate sum on each page and the final sum with tax calculation we use two extra tables. Finally we loop over pages to add page numbers.

If needed you can use DynaPDF to sign the PDF with a digital signature or create a PDF/A version.
The example is included with 6.3pr3 plugins or newer.

MBS FileMaker Plugin, version 6.3pr3

Sunday 19 June 2016 at 2:11 pm
New in this prerelease of the 6.3 plugins:
  • Added FM.DataViewerContent function.
  • The SSH functions now should return better error messages.
  • Improved menu functions to work better in calculations, so you can show a menu with just one Let statement.
  • Added Menubar.IsMenuCommandChecked function.
  • Fixed bug with StoreRegistration function so it now works again.
  • Added MenuItem.GetSelectable and MenuItem.SetSelectable functions.
  • Improved internal item management. Now quicker to find object for item which you notice in menu building for example.
  • Added CURL.GetDebugWithProgress and CURL.SetDebugWithProgress functions.
  • The script search box is now hidden if you disable Syntax Highlighting.
  • Added SystemInfo.WinSystemMetrics function.
  • Improved speed of Menu.DefineQuickMenu a lot.
  • Added Window.GetCurrentTag, Window.GetTag, Window.SetCurrentTag and Window.SetTag.
  • Added SmartCard functions.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder. PS: 6.3pr3 will report version 6.3.0.2. But CompileDate should distinguish it from older version.

Tip of the day: Show debugger in FileMaker from within a script

Friday 17 June 2016 at 8:52 pm

As we discovered today, we can have a script open the debugger. We can check the menu in FileMaker and if the debugger is not visible, we show it: 

#The menu command as we got it from Menubar.ListMenuCommands

Set Variable [$DebuggerMenuID; Value:49260]

#Do we have a debugger?

If [MBS( "Menubar.HasMenuCommand"; $DebuggerMenuID ) = 1]

#Is it activate already?

If [MBS( "Menubar.IsMenuCommandChecked"; $DebuggerMenuID ) = 1]

#debugger already visible

Else

#show debugger

Set Variable [$r; Value:MBS( "Menubar.RunMenuCommand"; $DebuggerMenuID )]

Pause/Resume Script [Duration (seconds): ,1]

End If

End If

 

#now follows your script that should always run in debugger


The new command Menubar.IsMenuCommandChecked will be part of 6.3pr3 soon. If you like to try, please don't hesitate to contact us. 

Frühbucherrabatt endet heute für FileMaker Konferenz

Friday 17 June 2016 at 11:36 am
Heute endet der Frühbucherrabatt für die FileMaker Konferenz.
Am Tag vorher haben wir eine MBS Plugin Schulung in Salzburg:



Die Anmeldung für die FileMaker Konferenz 2016 läuft.
Vom 13. bis 15. Oktober 2016 treffen sich wieder ca. 200 Teilnehmer im Pitter in Salzburg.

Bitte bald anmelden um ein Ticket zu bekommen. Die Konferenztickets und die Zimmer im Hotel Crowne Plaza Salzburg waren in den vorherigen Jahren schon Wochen vor der Konferenz ausverkauft.

Dieses Jahr gibt es neben meinem MBS Vortrag auch einen zum iOS SDK. Mal sehen, was bis zur Konferenz noch alles kommt von FileMaker. iOS Extension könnte ein Thema sein.

MBS Plugin Schulung
Am Tag vor der Konferenz (12. Oktober) findet der MBS Plugin Workshop statt. Einen Tag mal Intensiv das MBS Plugin anschauen, durch die Beispiele gehen, einen Webservice implementieren und Funktionen ausprobieren. Limitierte Anzahl von Plätzen und gleiches Hotel wie Konferenz, also bald anmelden.
(Mindestteilnehmerzahl erreicht. Die Schulung findet definitiv statt.)

FileMaker Developer Meeting in Kopenhagen

Tuesday 14 June 2016 at 10:13 am
Yesterday we had a nice meeting with FileMaker developers in Kopenhagen:



Talking about WWDC news, MBS Plugin news, FileMaker 15 and upcoming developer conferences.
See you in Las Vegas!

4000 functions in 10 years

Saturday 11 June 2016 at 09:46 am
Did you notice we just passed the 4000 function mark with version 6.3pr2?

We know that this is just a number and we had to reach that eventually. But of course we are all proud of this achievement here. Especially we are happy to reach that number now as we already ordered posters for our DevCon booth with the number 4000 mentioned. You come to Las Vegas to visit our booth?

Nobody expected that our plugin would get that big when a few clients (using our REALbasic plugin) asked to port a few (!) functions to FileMaker. And thanks to Todd Geist who asked in 2006 for an AppleScript execute function and finally convinced me to start writing a FileMaker plugin. So we started with AppleScript, added Window and Screenshot functions and released version 1.0 in September 2006. In October we released version 1.1 with already 50 functions.

One of the early decisions was to make it just one plugin file for easy installation. Another one of the decisions early in 1.0 development was to use one MBS function instead of filling the calculation dialog with 20+ functions as an one of the development versions did.

We did license individual parts at that time. With just a few parts (AppleScript, WindowsScript, Window, Screenshot, etc.) this was easy. But today with 114 parts it would be difficult to track who has a license for which part. So a few years later we lowered prices and gave a Complete license to everyone instead of just the part they ordered. Today you still buy the complete pack for the first function you need and the rest is included for free.

Which functions people use? Well, that is difficult as we can't analyze your databases. At least we know everyone probably uses the Register function. And probably the Version function and IsRegistered or Trace. From feedback with users I know a lot use CURL for web services, menu functions to show popup menus and various window functions. Also popular should be showing progress dialogs, image scaling, file management and barcodes. But only you know what you code and your users know what they click.

Thanks to all the people who supported us the last years. Thanks for talking about our plugin, for referring it to clients and friends and of course for purchasing licenses. Also thanks for endless hours of beta testing and good feature wishes. Your ideas make our plugin better. And thanks for all the fun at the conferences and meetings!

4 month till German FileMaker Conference in Salzburg, Austria

Friday 10 June 2016 at 9:25 pm
Nur noch vier Monate bis zur FileMaker Konferenz und zur MBS Plugin Schulung in Salzburg:



Die Anmeldung für die FileMaker Konferenz 2016 läuft.
Vom 13. bis 15. Oktober 2016 treffen sich wieder ca. 200 Teilnehmer im Pitter in Salzburg.

Bitte bald anmelden um ein Ticket zu bekommen. Die Konferenztickets und die Zimmer im Hotel Crowne Plaza Salzburg waren in den vorherigen Jahren schon Wochen vor der Konferenz ausverkauft.

Dieses Jahr gibt es neben meinem MBS Vortrag auch einen zum iOS SDK. Mal sehen, was bis zur Konferenz noch alles kommt von FileMaker. iOS Extension könnte ein Thema sein.

MBS Plugin Schulung
Am Tag vor der Konferenz (12. Oktober) findet der MBS Plugin Workshop statt. Einen Tag mal Intensiv das MBS Plugin anschauen, durch die Beispiele gehen, einen Webservice implementieren und Funktionen ausprobieren. Limitierte Anzahl von Plätzen und gleiches Hotel wie Konferenz, also bald anmelden.
(Mindestteilnehmerzahl erreicht. Die Schulung findet definitiv statt.)

MBS FileMaker Plugin, version 6.3pr2

Friday 10 June 2016 at 12:43 pm
New in this prerelease of the 6.3 plugins:
  • Updated to DynaPDF 4.0.1.2
  • Added GMImage.GetXMP and GMImage.SetXMP.
  • Added Files.CreateHardLink and Files.CreateSymbolicLink.
  • Added EmailParser.ParseContainer function.
  • Added SyntaxColoring.GetRelationGraphSearchBoxPreferredSize and SyntaxColoring.SetRelationGraphSearchBoxPreferredSize.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

The power of global variables

Thursday 09 June 2016 at 10:06 am
As you may know we have global variables via plugin functions available in FileMaker.
While normal $ variables expire at the end of the script and $$ variables are tight to the current file, the plugin offers true global variables for all files (or when none is open). There is actually a feature request for $$$ variables: $$$Variable. So you can put a value in a variable and later pick it, even after a file changed. Some developers use this for login. The user starts the solution with one database file which performs some setup things and sets a few global variables, e.g. with the current user name and some permission settings. For example whether user is admin or debugging is enabled. Now in other files, they can check the variables and do things depending on the values.

To set a global variable, you call FM.VariableSet. To query it later you can use FM.VariableGet. If you like to know if a variable exists, you can query FM.VariableExists or check the list returned by FM.VariableList. To clear a variable you can cal FM.VariableClear.

On a server the global variables are in memory for all scripts run on server. So if one script sets a value, another script can read it. And that works even for different users. This way you can pass values from one client to other by performing scripts on server.

As you may know we store native values in those variables and our dictionary functions. This allows to store container or date values without converting them to text in-between.

Our dictionary functions allow you to have assoziative arrays in memory where you can lookup values based on a key value. Typically the keys are numbers or text and the value can be anything. For example you can load zip codes into a dictionary and later look them up quickly. The lookup is by using a hash table, so it's quicker than a database lookup.

FileMaker developer meeting in Kopenhagen

Tuesday 07 June 2016 at 8:12 pm
We meet with FileMaker developers in Kopenhagen:

If you like to join, please contact me soon:

13rd June 2016, Kopenhagen
We meet with a couple developers in downtown Kopenhagen.
Topics will include the WWDC keynote from Apple, recent plugin changes and what's new in FileMaker world.

We meet at 18 o'clock, but of course you can come later.
Joining is free of cost except for your own traveling, food and beverages. Register

FileMaker License Guide

Saturday 04 June 2016 at 5:31 pm
The licensing for FileMaker got more complicated over the years.
How easy was it 10 years ago when you got a few boxes from shop for Pro and Server and just used the license keys inside. Well, that time passed and now you have to ask questions:

How many employers has the company?
Because with site licensing you buy FileMaker for the total headcount of the company, not just for those using FileMaker.
And a few companies got audited and are in trouble. Maybe only the accountants use a FileMaker based solution, but still they need to license it for all in the company, even the sales people who never use FileMaker. This volume licensing is great if maybe 90% of the people in the company use FileMaker regularly. Some even considered moving all FileMaker users into a subsidiary to reduce the head count to a more realistic number.

How many users has the company?
Because FLT would go by users, even if they share devices. That means everyone using FileMaker solution is counted, even if they just use FileMaker for a little thing every few weeks like printing a report. On the other side some companies use FileMaker heavily and save now licenses as FLT for 100 people is cheaper than regular FM Pro licenses for 100 people.

How many people work at the same time?
Because connection based licenses go by concurrent users.
With a front office desk used 24h/day with 3 people on different shifts, you would need one FM Pro, one connection or three FLT users.
Same if you have 1000 workers who need to report something every few days, so only maybe 10 report at the same time.

How many servers do you need?
A solution running lonely on one iPad could go without a license or a server.
Or a solution with one to five FM Pro installations could live without server and share data.

Do you want to update to latest version regularly?
If the solution is installed and you do not plan to move to newer FM versions when they are released, it may be cheaper to buy perpetual licenses and update those only if needed (or buy newer ones). As subscription usually costs 1/3 per year of normal price, you get a cheaper licensing if you keep software unchanged for over three years.

How do you plan to license in a few years?
As FMI announced changes in the connection prices, it may be worth staying with connections till 2020 with current pricing and than decide if you move to FLT or pay the higher prices announced now. Especially as FMI may change the licensing again till 2020.

Now what to buy?
The answer is we don't know. There are a lot of variables included and trying to make a calculator or a decision graph is nearly impossible for all the special cases. For some cases it doesn't matter as FileMaker aligned their pricing. So either 5 pack FLT including server or 5 times FM Pro plus server for annual licensing costs both the same $888. Another thing to consider are the buy one, get two offers from FileMaker which can lower the cost for some packages. And finally if you resell the licenses to clients, it could happen that FileMaker tries to directly sell licenses or updates to your clients.

As you see the licensing options got complicated with individual licenses, annual licensing, site licensing and now FLT. I hope FileMaker will find something better. FLT is not the answer as it doesn't help for small solutions using less than 5 people or without server. Also it does not work for occasional users. We'll see what is announced at DevCon.

Xojo License guide

Saturday 04 June 2016 at 09:58 am
The Xojo licensing is quite easy compared to other tools. You start with downloading and installing Xojo and develop your apps without a license. Later when you need to build something, you can order the license you need: Desktop, Web, iOS or Pro.

If you work in a team, you certainly want to use the some kind of version control, so you need the Xojo text based project format. This requires a valid license of Xojo, so with a company you buy your license keys earlier for that feature. And this feature makes sure you buy a license for every developer.

For the team one can have a team account and add the other accounts for your employees. Than you can buy licenses for everyone and assign them. This way all the license payments go through one person (Accountant or CEO of company) and individual developers don't notice changes. The IDE will automatically find the new key when updating the next time.

On the other side a typical school installation can go without a license. Or maybe just one for one computer which does all the builds. That makes Xojo an excellent tool for learning programming.

A new license currently is $699 for Pro. The others are cheaper, but on the long run most professional developers get the Pro as they use several targets. And with Pro you get the benefit of joining the beta program, so you can test newer version before release. At least you should open your projects in a beta and try if things still work. Would be bad if a new release breaks your project only because you did not report a problem in beta cycle.

Purchasing Xojo usually goes through their website. In the past Xojo was/is also available through various resellers or local distributors. And they participated in some bundle offers in the past.

From time to time Xojo does sales like on programmers day (256th day of the year) or Black Friday. You can find old announcements for those sales and try to predict future sales. With a typical discount of 20 or 30%, you can just buy a new license if your existing one expires within 2 months and you still save money.

You can have your license auto renew. We normally turn this off and see what we do when we come closer to the renewal day. If there is a sale for updates, you can add a year or two to your license plan. Or if your license expires, you can skip a few months and continue with old license before you buy a new license. You save more than the 10% for auto renew if you skip 2 month before buying a new license. Clever planning can save money!

I also keep an eye here for licensing and post regular about sales. If you look for a discount, feel free to email me, so I can remind you when something is available. For conferences or local meetings we had in the past discount coupons to raffle away.

PS: And if you like to support Xojo Inc. even more, you can of course just buy a second license. My account has currently 3 licenses listed. Or you join XDC to meet Xojo Inc. employers in person.

Please don't deactivate plugins

Friday 03 June 2016 at 8:43 pm
Today we had once again had a FileMaker developer complaining about more or less random crashes in FileMaker since yesterday. The problem went away once we moved a deactivated plugin out of the Extensions folder.

If you deactivate any plugin on Mac, this can result in crashes in FileMaker. Especially in low level cocoa runtime methods.

e.g. in method_setImplementation or in +[ initialize].

The cocoa class accessed is in the deactivate plugin. FileMaker loaded the plugin, the class was registered, the plugin unloaded. The class registration entry in the global data structures now points to memory which has been freed when the plugin was unloaded.
So please never deactivate plugins on Mac. Remove them from the extension folder if necessary. (more)

MBS FileMaker Plugin, version 6.3pr1

Wednesday 01 June 2016 at 8:44 pm
New in this prerelease of the 6.3 plugins:
  • Added Text.Speak function.
  • Added EventMonitor.GetEnabled and EventMonitor.SetEnabled.
  • Changed Files.RevealFile, so you can pass a list of paths on Mac
  • Added SSH functions.
  • The events functions now look for events ±4 years in the database if we don't find them by ID.
  • Added FM.MouseWheelScriptTrigger function.
  • Updated to DynaPDF 4.0.1.1
  • Fixed for GraphicsMagick to change resolution to DPI and not just return cm resolution as DPI.
Download at monkeybreadsoftware.de/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Archives

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