In this article we want to introduce you the new functions from the MBS FileMaker Plugin in version 15.5.
Schema Change
With the new SchemaChange functions, you can monitor changes to the schema on the server and, when changes occur, log them in a table, for example, or send an email notification. In order for things to be changed on the server, we must activate this monitoring once with SchemaChange.Enable. With SchemaChange.Changes, we can then query the changes, which are then delivered to us as JSON. You may have a scheduled script running on the server to react to changes. The SchemaChange.TimeStamp function, which provides the last change time, is helpful here. The SchemaChange.Counter function provides us with the current number of changes. With SchemaChange.Clear, we can clear the list of changes. If we want to stop logging, we use the SchemaChange.Disable function.

Phidgets
A new feature in the Phidgets section is the Phidget.WriteRFID function. This function allows you to write data to an RFID tag with your RFID Phidget, rather than just reading it. To write to a tag, it must be close to the device so that the data can be read. In the parameters of the Phidget.WriteRFID function, you can then set the text you want to write to the tag. In addition, you can lock the RFID tag against future rewriting if desired. You also have the option of selecting the communication protocol, which is PHIDGETS by default, but you may also choose EM4100, ISO11785 FDX B, HID GENERIC, or HID H10301. The chipset can also be set to T5577 or EM4305 FDX B.
RSA
In the RSA area, we have two new functions for signing and verifying RSA digital signatures with PSS padding. Feel free to use the RSA.SignPSS and RSA.VerifyPSS functions to use RSA with PSS padding.
UUID

In this release, we also have two new functions for the UUID area. With the new UUID.UUIDv7 function, you can create a new UUIDv7 and return it as a formatted string. UUIDv7 is a version of Universally Unique Identifier that combines a Unix timestamp with random bits, allowing for both uniqueness and sortability in high-load databases and distributed systems. It is designed to improve performance and reduce the likelihood of ID collisions compared to previous UUID versions. With this function, we can also choose whether we would like to have curly brackets around the UUID. If you would like to have them, enter a 1 in the parameter. With the UUID.TimeFromUUIDv7 function, you can then query the timestamp for such a UUIDv7. This allows you to sort the UUID by date and time.
Set Variable [ $UUID7 ; Value: MBS("UUID.UUIDv7"; 1) ]
Set Variable [ $UUID7Time ; Value: MBS( "UUID.TimeFromUUIDv7"; $UUID7) ]
Show Custom Dialog [ "UUID 7" ; $uuid7 & ¶ & $UUID7Time ]
CURL
We have also included new features for CURL in this release. With the CURL.NetworkChanged function, we inform CURL about a network change so it can discard connections or DNS cache entries. We have also added many new functions for querying data for multi-transfer. Please take a look at the functions CURL.GetMultiTransfersAdded, CURL.GetMultiTransfersCurrent, CURL.GetMultiTransfersDone, CURL.GetMultiTransfersPending, and CURL.GetMultiTransfersRunning.
Container
With the new Container.GetMimeType function, you can display the MIME type for a file in your container. This is very useful for displaying images in web pages.

FM
Since version 11.3, you can use the FM.ErrorMessage function to query error messages for their corresponding error codes. In this release, we introduce a function that allows you to create your own new error codes with corresponding messages. In the FM.AddErrorMessage function, you only need to specify the desired error code and error message in the parameters.

List
We have added a new function for the List and Quick List areas. With the functions List.DeleteColumn and QuickList.DeleteColumn, you can remove an entire column from a list. This can be seen in the following example:
Set Variable [ $List ; Value: Let([
list = MBS("QuickList.New"; "1-a-A¶2-b-B¶3-c-C"; ¶);
r = MBS("QuickList.DeleteColumn"; list; "-"; 1);
text = MBS("QuickList.GetList"; list);
r = MBS("QuickList.Release"; list) ];
text) ]
Show Custom Dialog [ $List ]
We create a list with three entries, each with three columns. We do not need the middle column for our output, so we can delete it. To do this, we first specify the list in the QuickList.DeleteColumn function, then the separator that separates the individual columns from each other, and finally we decide which column should be deleted.
Markdown
With the new MarkDown.HTMLDocument function, you can convert Markdown text directly into HTML-formatted text, which can then be displayed in Webview, for example.
Set Variable [ $r ; Value: MBS("MarkDown.Create"; "Text attributes *italic*, **bold**, `monospace`, ~~strikethrough~~ .") ]
Set Field [ Tabelle::html ; MBS("MarkDown.HTMLDocument"; $r) ]
Set Variable [ $r ; Value: MBS("MarkDown.Release"; $r ) ]
Set Web Viewer [ Object Name: "web" ; URL: "data:text/html," & Tabelle::html ]

We also have the option of converting Markdown into styled text. To do this, use the MarkDown.StyledText functions.


