The bBox FileMaker plug-in is a toolbox of functions freely available to all developers. Use it with your Mac OS X-based FileMaker solutions to call programs, scripts, code libraries, and OS functions that are not available within FileMaker:
Offering dozens of powerful functions, bBox extends the reach of FileMaker’s existing commands. This makes it easier to get your projects done, and without the need for ugly workarounds to provide functionality that should be simple.
Some common uses are:
See the function documentation page for detailed usage information.
The functions are:
evaluate function may seem to be mainly about pulling data out of FileMaker into Python, but you can also push data out by setting FileMaker variables within the evaluate statement.
executesql can naturally work in both directions using a SELECT statement to pull data in, or an UPDATE or INSERT to push data out to FileMaker. Rows and columns are returned as a non-mutable Python list (tuple), so there is no need to specify characters to delimit these like you would with FileMaker’s ExecuteSQL function.
It is possible with re-entrant calls or with server-side scripts that two calls to a function (or set of related functions) could occur at the same time.
We will use the term “session safe” if multiple PSOS or server script schedules can use the same function. If a function can (for instance) be used re-entrantly, then we will say that it is “thread safe”.
Most functions are thread-safe, but there are some exceptions to be aware of:
bBox_LastError: result is session safe for most cases; for SQLite it is also thread safe
bBox_ShellExitStatus: Not session or thread safe; use bBox_LastError instead
bBox_Python: these functions are not thread safe (use mutex or consider creating your own threads in Python)
bBox_SQLite: SQLite functions are session and thread-safe
bBox_XPath: session safe
The bBox Plug-in Demo file has 185 examples of the various functions, and is included with the bBox disk image.
As of October 10, 2018 the current version is 0.92.
Version 0.93 planned for November 2018 release.