« XDC Developer Retreat… | Home | News from the MBS Xoj… »

MBS FileMaker Plugin 12.3

In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 12.3.

MongoDB

The coolest feature in new release is the new Mongo DB topic. You can now use FileMaker to access MongoDB databases, read, write and delete data. The special thing about Mongo DB is that it is not a relational database that is limited by relationships and tables, but is based on a JSON-like structure that also allows unusual queries. For example, you can formulate searches to see who has been in your company longer, the carpet in the warehouse or your employee. In relational databases, your carpet wouldn't normally appear in the same table as your employee. So you would have to design a separate table to be able to make this query. In Mongo DB, the records, here called documents, can coexist in a collection and a simple query can be made. If you would like to try Mongo DB, please check out our examples.

TOTP

You need time based one time passwords? Then the new component TOTP is just right for you. Create these passwords with the TOTP.Calculate function by specifying a key, the Current Time, the Start Time, the validity of the code and the number of digits. For the current time we also provide the TOTP.CurrentTime function which returns us the time in Unix Time. This means we get back the number of seconds that have passed since January 1, 1970, 00:00.

New developer features for the Mac

For Mac developers there are from time to time new features that should make your life as a developer easier. Also in this release we may introduce a new one to you. You can now specify web pages in your comments and can open this page directly in your browser from the script workspace with one click. The web page you specify becomes a link. At the end of the comment line there will be an arrow with a globe. When you click on it, your browser opens and the web page is displayed. This functionality works for http://, https://, mailto: and fmp:// links.

System Info

Do you want parts of your code to run only on the new macOS 13 Ventura? Then use the SystemInfo.isVentura function now to test if it is the latest operating system.

DynaPDF

We also have three new functions in the DynaPDF section. You can use the new DynaPDF.SetTemplBBox function to change the dimensions of your bounding box for your template. By using a template (a page loaded from a document), you can place the same content several times into a new document, e.g. 4 pages on one.

With the DynaPDF.SetDateTimeFormat function we can set in a specific box how the date format should be there. For example you can choose the American MM_DD_YY. Format or the format that is better for date sorting YY_MM_DD. The function restricts the allowed value of a text field to a date time format and applies this format if the value was valid.

If you want to have the size of the currently set font you can now use the DynaPDF.GetFontSize to get the font size.

Audit

Our audit section, which contains functions that can detect and log every change in a record, gets with the function Audit.SetDateAndTimeAsNumbers a function with which you can decide whether times should be stored as number or text. This avoids extra audit log entries if users with different locales use the database. In addition to this function we also provide a function that can read the status of this function (Audit.GetDateAndTimeAsNumbers).

Error Log

You may remember the last release where we introduced our ClearErrors and HadErrors functions that count the errors that occur when using plugin functions. Now it becomes even more comfortably for the developers, because we collect now the errors in an error log and give them out collected as JSON for you. For this we have now the new functions ErrorLog. Such a JSON that you get back from the ErrorLog function can look like this:

[
	{
		"function":	"test",
		"result":	"[MBS] Unknown function: test",
		"parameter":	["test", 1, "Hello"],
		"fileName":	"Kontakte",
		"scriptName":	"test Errors",
		"currentTimeStamp":	"23.06.2022 09:28:34"
	}, 
	{
		"function":	"DynaPDF.Print",
		"result":	"[MBS] DynaPDF.Print is only supported for Windows. Please use PDFKit.Print on Mac.",
		"parameter":	[
			"DynaPDF.Print", 
			1, 
			"Hello"
		],
		"fileName":	"Kontakte",
		"scriptName":	"test Errors",
		"currentTimeStamp":	"23.06.2022 09:28:34"
	}
]

If you want to add an individualized entry to this error log, for example if you got an error with Get(LastError), you can do this with the AddToErrorLog function.

CURL

In the CURL topic there are two new functions. With CURL.GetCAInfo we get the default CAInfo value. With CURL.GetCAPath we get the default CAPath.

FM Variable

Also new is the FM.VariableLookup function. It retrieves the value of named variable that was declared using FM.VariableSet. This lookup function returns the default value (or empty) if the variable doesn't exist. Unlike the variables in FileMaker these variables are not limited to the File or Script. In other words they can be retrieved from any file in the system regardless of where they were declared.

Shared Memory

MBS FileMaker Plugin provides SharedMemory functions to store UTF-8 text in shared memory, so one process can set it and other can read it, e.g. two versions of FileMaker Pro or two server processes. If we don't have a SharedMemory earlier there was an error when reading it out. With the SharedMemory.LookupValue function you now return the default value instead of an error.

We hope you will also find some interesting new features. We wish you a lot of fun with MBS FileMaker Plugin Version 12.3. If you need a license or have any questions, please contact us.

by Stefanie Juchmes

19 07 22 - 15:13