Jump to content

MonkeybreadSoftware

Members
  • Content Count

    141
  • Joined

  • Last visited

  • Days Won

    4

MonkeybreadSoftware last won the day on April 21 2019

MonkeybreadSoftware had the most liked content!

Community Reputation

12 Good

1 Follower

About MonkeybreadSoftware

  • Rank
    member

Profile Information

  • Title
    CEO
  • Industry
    Software
  • Gender
    Male
  • Location
    Nickenich
  • Interests
    FileMaker, Xojo, Hiking, Traveling

Contact Methods

  • Website URL
    http://www.monkeybreadsoftware.de
  • Skype
    MonkeybreadSoftware

FileMaker Experience

  • Skill Level
    Expert
  • FM Application
    16 Advanced

Platform Environment

  • OS Platform
    Mac
  • OS Version
    10.12

FileMaker Partner

  • Certification
    Not Certified
  • Membership
    FileMaker TechNet
    FileMaker Business Alliance

Recent Profile Visitors

7,839 profile views
  1. Today a client asked how to automate login to the admin console when it is open in a web viewer within a FileMaker solution. You probably saw the video Automate web viewer already? The login here is a bit more difficult as you need a couple of JavaScript calls to login, but here is a script that works for us: As you see we define an utility function in JavaScript to trigger an event programmatically. This is required as the login form has event listeners in JavaScript which validate the fields and we need those to enable the Sign In button for us. we do the following steps for each field. We query the field by its ID, set the focus, enter the text and trigger input event to have the JavaScript recognize the changes and then blur it to remove focus. Finally on the end we trigger a click on the login button. Please note that for text in a formula FileMaker removes the line breaks, so for each comment we add a ¶ character to indicate we want a line break there. Also we do a replace all here to change line endings to unix line endings before we run it with the WebView.RunJavaScript function. If you have questions, please don't hesitate to contact us. The example will be included with next plugin version.
  2. In the newest version of the MBS FileMaker Plugin 10.0 we offer functions for the use of JavaScript without the use of a web viewer. See WebView.RunJavaScript and WebView.Evaluate to run or evaluate JavaScript in a web viewer. The new JavaScript functions increase your functionality in FileMaker enormously. You can write your own Javascript, use a JavaScript snipped that fix a problem or fast up a process of your solution. In this article I want to show you how to use JavaScript code in FileMaker: Setting values in the JavaScript with functions in FileMaker, add functions and run them. If you have a problem that you want to solve, you don't have to reinvent the wheel again and again. Perhaps someone has already found a solution to this problem and shared his solution on the Internet. So start a search engine and try your luck. Special thanks to André Rinas and his website andrerinas.de that supply very useful JavaScript snippets to everyone. This example is based on one of this JavaScript codes. In the example I show you a JavaScript that calculates the difference between two geo coordinates. We create a new FileMaker table with 5 fields. Two fields contains the longitude and latitude of the first coordinate, two other fields store the longitude and latitude of the other coordinate. The last field is a result field, that shows us the difference between the coordinates after we calculate it. Then we start with the JavaScript code. Javascript is a programming language that was develop as an extension of HTML and CSS on the Internet. But is finding its way into more and more domains. For the calculation we need the longitude and latitude in radiance and not in the unit of degree. Because of this we need a function that convert between this both units. The formula for the calculation is y = x * Pi / 180. A JavaScript function for that looks like this: function DegToRad( deg ) { return deg * Math.PI / 180; } We need the keyword “function” to say that we defined a function. Then we need a function name. Function names in Javascript are only one string and can contains numbers. In the brackets we defined the parameters that we need in this function. We set them in the function call. The calculation is surrounded by curly brackets. The keyword return defines that the value of this calculation is the result of the function and returns the value. Math.Pi is a function that defines Pi, so we use it here to do the math. Then we can write the function for the distance calculation: function distance( lat1, lon1, lat2, lon2 ) { var R = 6371; // The earth's radius in km lat1 = DegToRad(lat1); lat2 = DegToRad(lat2); lon1 = DegToRad(lon1); lon2 = DegToRad(lon2); var x = (lon2 - lon1) * Math.cos((lat1 + lat2) / 2); var y = (lat2 - lat1); var d = Math.sqrt(x * x + y * y) * R; return d; } We have a function with four input parameters. Thats are the latitudes and longitudes of the coordinates. For each of this values we call the converting function and save the returned value in the variable again. Because this variables are defined as parameters of the function, we don’t need to declare them again. All other variables x, y and d are declared with the keyword “var” in front of the variable name. The variable R defines the radius of the earth. Variables can assigned with calculated values similar to FileMaker. When using variables we must take care of the fact that JavaScript is a case-sensitive language. A and a would be two different variables! After we finish the script we want to look at the possibilities of using this in FileMaker. As we want to work with a JavaScript snippet, we create a new JavaScript environment with the "JS.New" function in the MBS Plugin. As result we get the reference number that we save in the variable $js. Then we want to evaluate our JavaScript snippet with the help of the “JS.EvaluateToString” function. In the parameters of the function we set $js and our JavaScript. Set Variable [ $r ; Value: MBS( "JS.EvaluateToString"; $JS; “function DegToRad( deg ) { return deg * Math.PI / 180; } function distance( lat1, lon1, lat2, lon2 ) { var R = 6371; // The earth's radius in km lat1 = DegToRad(lat1); lat2 = DegToRad(lat2); lon1 = DegToRad(lon1); lon2 = DegToRad(lon2); var x = (lon2 - lon1) * Math.cos((lat1+lat2) / 2); var y = (lat2 - lat1); var d = Math.sqrt(x*x + y*y) * R; return d; } distance( 50.73743, 7.0982068, 50.61, 7.2025 )" )] Then we have the result in the variable $r. The result is a string. If we want the result as a JSON object we call the “JS.Evaluate” function in place of the “JS.EvaluateToString” function with the same parameters. In the end we release the JavaScript environment. But it would be very annoying if we have to change the string of the JavaScript for each dataset to work with different values. We don't have to, because we can set and read variables in the JavaScript environment with the MBS Plugin functions. Before we call one of the evaluation functions we set the variables like that: Set Variable [ $r ; Value: MBS( "JS.SetGlobalPropertyValue"; $js; "lat1"; 50.73743 ) ] Set Variable [ $r ; Value: MBS( "JS.SetGlobalPropertyValue"; $js; "lon1"; 7.0982068 ) ] Set Variable [ $r ; Value: MBS( "JS.SetGlobalPropertyValue"; $js; "lat2"; 50.61 ) ] Set Variable [ $r ; Value: MBS( "JS.SetGlobalPropertyValue"; $js; "lon2"; 7.2025 ) ] Then we Change the last line of our Javascript to: distance( lat1, lon1, lat2, lon2 ) If we want to avoid to set this huge part of script in every evaluation function, we can add the DagToRad function and the distance function to the environment of the JavaScript. Because of this we only need to call the distance function with the right parameters. That is easier for debugging, too. Set Variable [ $js ; Value: MBS( "JS.New" ) ] Set Variable [ $r ; Value: MBS( "JS.AddFunction"; $js; "DegToRad"; "function( deg ) { return deg * Math.PI / 180; }" ) ] Set Variable [ $r ; Value: MBS( "JS.AddFunction"; $js; "distance"; "function( lat1, lon1, lat2, lon2 ) { lat1 = DegToRad(lat1); lat2 = DegToRad(lat2); lon1 = DegToRad(lon1); lon2 = DegToRad(lon2); var R = 6371; var x = (lon2-lon1) * Math.cos((lat1+lat2)/2); var y = (lat2-lat1); var d = Math.sqrt(x*x + y*y) * R; return d; }" ) ] Go to Record/Request/Page [ First ] Loop Set Variable [ $lat1 ; Value: MBS( "JSON.CreateNumber"; GetAsNumber(distance::lat1)) ] Set Variable [ $lon1 ; Value: MBS( "JSON.CreateNumber"; GetAsNumber(distance::lon1)) ] Set Variable [ $lat2 ; Value: MBS( "JSON.CreateNumber"; GetAsNumber(distance::lat2)) ] Set Variable [ $lon2 ; Value: MBS( "JSON.CreateNumber"; GetAsNumber(distance::lon2)) ] Set Variable [ $res ; Value: MBS( "JS.CallFunction"; $js; "distance"; $lat1; $lon1; $lat2; $lon2 ) ] Set Field [ distance::distance; $res ] Go to Record/Request/Page [ Next ; Exit after last: On ] End Loop Set Variable [ $r ; Value: MBS( "JS.Free"; $js ) ] I hope that you like our new JavaScript functions. I wish you lots of fun with it. If you have any questions, please do not hesitate to contact us. by Stefanie Juchmes Original blog entry: FileMaker and JavaScript - the perfect combination
  3. In the last weeks a few people asked about automating web viewer in FileMaker, so here a video to show a couple of features in MBS FileMaker Plugin: To automate a website, you may first want to inspect it. For that you can use our Form Utility application to show which form fields are available. The application suggests which commands to use to query or set fields. Then you can use WebView.SetFormButtonValue, WebView.SetFormInputChecked, WebView.SetFormInputValue, WebView.SetFormSelectValue, WebView.SetFormTextAreaValue and WebView.SetFormValue to change form fields. For MacOS and iOS in FileMaker 16 or newer you can use WebView.SetPreferences function to set preferences for developer extras and show the inspector in the web viewer. Use WebView.RunJavaScript or WebView.Evaluate to run JavaScript. This allows you to query individual pieces of information from the website, execute some JavaScript on the website or send events to fields like a click event. When you send a change event, the website may recognize your changes and validate the form. Finally send the form by clicking a button with WebView.ClickInput, submit the form with WebView.FormSubmit or run some JavaScript to start an action. from Automate web viewer in FileMaker or Watch on Youtube.
  4. Recently a client asked how to leverage JavaScript in FileMaker to do a specific calculation. For this blog post we replace the client's function with a CRC function to show you how to do it. Up until a few weeks ago we would have pointed to loading JavaScript in a web viewer and using WebView.RunJavaScript to run the JavaScript. But now we would point to WebView.Evaluate and just run it. See the example script in our documentation for this CRC function. With MBS FileMaker Plugin in version 10.0 we got our own JavaScript functions using the DukTape engine. We have an example in the documentation to run the CRC function right in a Let command and the JS.Evaluate command. But instead of initializing it each time in a Let statement, you may prefer to split this into three scripts, so you do the initialization only once. he following script initializes the JavaScript environment once and uses a call to JS.Evaluate to pass the JavaScript functions: If [ Length($$js) = 0 ] Set Variable [ $$js ; Value: MBS( "JS.New" ) ] Set Variable [ $r ; Value: MBS( "JS.Evaluate"; $$js; "function makeCRCTable(){ var c; var crcTable = []; for(var n =0; n < 256; n++){ c = n; for(var k =0; k < 8; k++){ c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); } crcTable[n] = c; } return crcTable; } function crc32(str) { var crcTable = crcTable || (crcTable = makeCRCTable()); var crc = 0 ^ (-1); for (var i = 0; i < str.length; i++ ) { crc = (crc >>> 😎 ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xFF]; } return (crc ^ (-1)) >>> 0; };") ] End If As you see we store the JavaScript environment in a global $$js variable, so we can refer to it everywhere in this file. Instead of letting JS.Evaluate define the functions, we could alternatively use JS.AddFunction if you prefer: If [ Length($$js) = 0 ] Set Variable [ $$js ; Value: MBS( "JS.New" ) ] Set Variable [ $r ; Value: MBS( "JS.AddFunction"; $$js; "makeCRCTable"; "function makeCRCTable(){ var c; var crcTable = []; for(var n =0; n < 256; n++){ c = n; for(var k =0; k < 8; k++){ c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); } crcTable[n] = c; } return crcTable; }") ] Set Variable [ $r ; Value: MBS( "JS.AddFunction"; $$js; "crc32"; "function crc32(str) { var crcTable = crcTable || (crcTable = makeCRCTable()); var crc = 0 ^ (-1); for (var i = 0; i < str.length; i++ ) { crc = (crc >>> 😎 ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xFF]; } return (crc ^ (-1)) >>> 0; }") ] End If Next we have a script to process data and use JS.CallFunction to run our function. This allows us to pass the argument as JSON data and avoid building JavaScript on the fly where wrong escaping could cause a JavaScript injection by an user: If [ Length($$js) > 0 ] Set Variable [ $p ; Value: MBS( "JSON.CreateString"; test::Input) ] Set Field [ test::Output ; MBS( "JS.CallFunction"; $$js; "crc32"; $p ) ] End If When the solution closes you can cleanup the JavaScript environment: If [ Length($$js) > 0 ] Set Variable [ $r ; Value: MBS( "JS.Free"; $$js ) ] Set Variable [ $$js ; Value: "" ] End If If you have questions, please do not hesitate to contact us. from CRC function in FileMaker using JavaScript
  5. As you may know the FileMaker Server Data API does not load plugins. If you need to run a script using plugins, you need to use a little trick. You query the application version of the script engine running the script. If you get back "FileMaker Data API Engine 18.0.1", you know the script is run via Data API. Now you can branch to the same script on the server scripting engine. That is a different process on the FileMaker Server which does load plugins. Then you return the result back to the calling script. Let us show you an example script: If [ Position ( Get(ApplicationVersion) ; "Data API" ; 1 ; 1 ) > 1 ] # forward call to Server Scripting Engine Perform Script on Server [ Specified: By name ; Get(ScriptName) ; Parameter: Get(ScriptParameter) ; Wait for completion: On ] Exit Script [ Text Result: Get(ScriptResult) ] End If Exit Script [ Text Result: "MBS: " & MBS("Version") & ", Server: " & Get(ApplicationVersion) ] As you see we forward parameter and get back the result. So without the trick with the if block, we get back from the script: "MBS: ?, Server: FileMaker Data API Engine 18.0.1" and with the if loop and our forward: "MBS: 10.0.0.9, Server: Server 18.0.1" And you can use MBS Plugin on the server via Data API. We recommend to check LastError via Get(LastError) function call after Perform Script on Server to see if you got "Hosts capacity exceeded" with error number 812. In that case it may be good idea to make a 10 second script pause and try again. PS: See also product idea: Support plugins in Data API from Run scripts via Data API with FileMaker Plugins
  6. In forum Product Ideas, sub forum the link for Official Product Ideas is broken.
  7. I would like to add that FM native, MBS and Base Elements all use the same built-in SQL engine from FileMaker. Speed should be no difference. And for writing file, you can use built-in script steps if a script is okay. The plugin can be used in custom function, scripts and any other calculation you may have.
  8. You need to proper sign your runtime and include entitlements for sending Apple Events.
  9. We recently got a query how to create the scripts to handle barcode creation everywhere with MBS Plugin. This includes passing the request to a FileMaker Server if no local plugin is installed: in FileMaker Pro with MBS Plugin to create barcode locally. in FileMaker Pro or Go without MBS Plugin and using the plugin installed on server in a scheduled script on FileMaker Server with MBS Plugin installed in WebDirect on FileMaker Server in FileMaker Data API on FileMaker Server, where we need to trigger script in server side scripting engine. in FileMaker iOS SDK with either local plugin or server side plugin The following script runs on the FileMaker Server and creates the barcode there if the MBS Plugin is installed. Pass JSON as script parameter with the barcode parameters. The script then returns a JSON object text with either error or barcode entry filled. But see yourself: # This script is run on server to provide barcode to clients without MBS Plugin Set Variable [ $JSON ; Value: Get(ScriptParameter) ] # Set Variable [ $result ; Value: "" ] If [ GetAsText(MBS("Version")) = "?" ] # no MBS Plugin Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; "No MBS Plugin on server installed."; JSONString ) ] Else # with MBS Plugin # # generate barcode based on JSON Set Variable [ $img ; Value: MBS("Barcode.GenerateJSON"; $JSON) ] If [ MBS("IsError") = 0 ] # Create PNG image file as container value Set Variable [ $Image ; Value: MBS( "GMImage.WriteToPNGContainer"; $img; "barcode.png") ] If [ MBS("IsError") = 0 ] # Return image base64 encoded Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "barcode" ; Base64Encode ( $Image ); JSONString ) ] Else # Pass back error Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; $Image; JSONString ) ] End If # free memory Set Variable [ $r ; Value: MBS( "GMImage.Destroy"; $img ) ] Else # Pass back error Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; $img; JSONString ) ] End If End If Exit Script [ Text Result: $result ] The script above is called with Perform Script on Server and below follows the script to run it. This script tests if MBS Plugin is installed locally and if the plugin is missing passes the request to the server. Otherwise it calls the above script directly to create barcode: # This script is run locally in FileMaker Pro or Go to create barcode via server Set Variable [ $JSON ; Value: Get(ScriptParameter) ] Set Variable [ $result ; Value: "" ] If [ GetAsText(MBS("Version")) = "?" ] # no MBS Plugin, so pass to server # Perform Script on Server [ Specified: From list ; “Create Barcode on Server” ; Parameter: $JSON ; Wait for completion: On ] Set Variable [ $errorCode ; Value: Get(LastError) ] If [ $errorCode ≠ 0 ] # report error back to caller Set Variable [ $error ; Value: "Failed to trigger script on server with error " & $errorCode ] Set Variable [ $result ; Value: JSONSetElement ( $JSON ; "error" ; $error; JSONString ) ] Else # pass result back to caller Set Variable [ $result ; Value: Get(ScriptResult) ] End If Else # with MBS Plugin # Perform Script [ Specified: From list ; “Create Barcode on Server” ; Parameter: $JSON ] Set Variable [ $result ; Value: Get(ScriptResult) ] End If Exit Script [ Text Result: $result ] Finally here the test script to generate the barcode and put it in the container field: # Build JSON to call // Set Variable [ $JSON ; Value: Barcode Generation JSON::JSON ] Set Variable [ $JSON ; Value: JSONSetElement ( "{}" ; "symbology" ; "QRCode"; JSONString ) ] Set Variable [ $JSON ; Value: JSONSetElement ( $JSON ; "Text" ; "Hello World"; JSONString ) ] Set Variable [ $JSON ; Value: JSONSetElement ( $JSON ; "Scale" ; "4"; JSONNumber ) ] # # run script to create barcode Perform Script [ Specified: From list ; “Create Barcode” ; Parameter: $JSON ] Set Variable [ $value ; Value: Get(ScriptResult) ] # # check result Set Variable [ $barcode ; Value: JSONGetElement ( $value ; "barcode" ) ] If [ Length ( $barcode ) > 0 ] Set Field [ Barcode Generation JSON::Image ; Base64Decode ( $barcode; "barcode.png" ) ] Else Set Variable [ $error ; Value: JSONGetElement ( $value ; "error" ) ] Show Custom Dialog [ "Failed to create barcode" ; $error ] End If As you see we either take the JSON from field or for a test here build it with JSONSetElement. Then it calls the script and if this is successful, shows the barcode in an image container. If the script failed it shows the error message to the user. By passing result back as JSON we can easily distinguish between error and success states. And as with most JSON scripts we write, we pass back the input JSON in the result, so you would see the parameters passed when you get the error message in the JSON. original blog article is here: Create Barcodes on Server from FileMaker Go
  10. We do have an example project to combine two PDF pages on one page. See Convert to 2 Pages.fmp12 example.
  11. Nickenich, Germany - (January 14th, 2020) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 10.0 for macOS, iOS, Linux and 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, macOS, iOS 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 10.0 has been updated and now includes over 6000 different functions, and the versatile plugin has gained more new functions: In this release we include with JavaScript functions our own JavaScript engine based on the DukTape opensource project. Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint. You can evaluate JavaScript snippets, get and set global properties and add custom functions written in JavaScript. Those JavaScript functions work on FileMaker Server for server side scripts including WebDirect and PSoS. For web viewer on Windows using Internet Explorer you can use WebView.Evaluate function to run JavaScript and get the result back. Call JavaScript function with WebView.CallFunction function and pass parameters and receive results. We convert between FileMaker data types and JavaScript, so numbers are passed as numbers and not converted to text. WebView.Evaluate is supported on MacOS, Windows and iOS. With MacOS Catalina and iOS 13 Apple includes new machine learning capabilities, which you can use in your applications to update a model on device with new training data. Improved SyntaxColoring.AddContextMenuCommand for MacOS to add separators and add hotkeys to menu entries. For Windows use WMFP functions to play video/audio independent of FileMakers's container field control. This includes playing audio in background. We added more parameters to Printer.SetPrinter function to set paper format, orientation and source. In your FileMaker iOS SDK application use DocumentCameraScan functions to scan documents via camera on iOS, rectify them and store them in container fields or files. Use ContinuityCamera functions to scan documents or take pictures on iOS and store them in your database on Mac. Use EIDSDK functions and Zetes Bluetooth card reader on iOS to scan Belgian ID cards. Use Window.PositionNextDialog function to position dialogs in FileMaker on MacOS and Windows. Check network statistics with SystemInfo.NetworkStatsfunction and copy multiple files parallel with Files.CopyFiles function. Added DynaPDF.CreateGoToAction and related to add links to tables in PDF. We improved XML.ToJSON, SmartCard.ReadFile and performance for EventMonitor functions on Windows and receiving data in CURL for POP3 and IMAP protocols. Finally we updated DynaPDF to version 4.0.37.101, CURL to 7.67.0, LibArchive to 3.4, SQLAPI to 5.0.3, zint to 2.7, LibXL to 3.8.8 and Xcode to version 11.3. See release notes for a complete list of changes. More details in the release notes. Please take the time to check our 500 example databases and check where you can use our plugin features in your solutions. System Requirements: * macOS 10.9 or later, including macOS 10.15 * Windows 7 and newer, including Windows 10 and Windows Server 2020 * FileMaker Cloud for AWS (64-bit Linux) * FileMaker Pro 7 to 18 * FileMaker iOS SDK 16 to 18 Pricing and Availability: MBS FileMaker Plugin is available directly from the MonkeyBread Software website with licenses starting at just $149 (USD). You can just download and try the plugin without a license or request a trail license. Not all functions are available in all platforms, please check specifications. Please join us on the next conferences and visit our booth. Monkeybread Software: https://www.monkeybreadsoftware.com/ MBS FileMaker Plugin Website: https://www.monkeybreadsoftware.com/filemaker/ Function Reference: https://www.mbsplugins.eu/ Download Free Trial: https://www.monkeybreadsoftware.com/filemaker/download.shtml Events and conferences: https://www.monkeybreadsoftware.com/filemaker/events/ Logo: https://www.monkeybreadsoftware.com/images/MBSLogo.jpg Release notes: https://www.monkeybreadsoftware.com/filemaker/releasenotes.shtml Located in beautiful Nickenich, Germany, MonkeyBread Software is a privately held company founded in 2000 by Christian Schmitz. MonkeyBread Software focuses on the Macintosh, Linux and Windows platforms. With over twenty years as a software developer, Christian's aim is developing unique and useful utilities, complemented by first-class customer support. Copyright 2000-2020 Christian Schmitz Software GmbH. MonkeyBread Software is a registered trademark of Christian Schmitz, Nickenich. All Rights Reserved. Apple, and the Apple logo are registered trademarks of Apple Computer in the U.S. and/or other countries. FileMaker Pro and FileMaker are trademarks of FileMaker, Inc. Other trademarks and registered trademarks may be the property of their respective owners. Greetings Christian Schmitz Monkeybread Software
  12. Nickenich, Germany - (November 12th, 2019) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 9.5 for macOS, iOS, Linux and 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, macOS, iOS 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 9.5 has been updated and now includes over 5900 different functions, and the versatile plugin has gained more new functions: Visiting conferences in October in Europe provides a lot of new ideas. This release comes with two enhancements to FileMaker itself (for MacOS), where the ideas came up at the conferences. First we now show you the cursor position above the text fields when entering expressions or custom functions. When you select text, we even show the selection length. Second, with SyntaxColoring.AddContextMenuCommand method you can define your own commands for the contextual menu in script workspace on MacOS. We provide a few examples in the documentation to edit script steps or insert new ones. As you can leverage the built-in MBS commands in the menu commands, you can use XML transformations, run SQL queries, Shell or AppleScript commands and read/write text files in your expressions. You can define expressions to check syntax and coding standards for scripts, insert common snippets or do search & replace within the script. We hope the FileMaker community will collect useful commands. The DynaPDF functions can now create XFA stream sections in the PDF document, read and write XFA data. With the DynaPDF.GetUserRights function you can query the permissions the user has on the imported document. We improved the library loading, so you can now just pass "" for the library path. If path is empty, we will use the platform specific default name. And if empty text or just a file name is provided, we look for the library files in the same folder as the plugin. For Apple maps on MacOS and iOS we have a couple of new properties to set for points including enabling drag with a custom drag image. Points can now change their image and define an extra selected image. Overlays can change colors and line width. Maps can be zoomed programmatically and with MapView.MouseCoordinate function you can query the coordinate below the mouse cursor. The web viewer on MacOS in FileMaker 16 or newer uses WebKit 2.x. For this version we added Webview.SetPrivateBrowsing function to enable private browsing mode. The Webview.AddUserScript function allows you to inject custom javascript in each website loaded. And Webview.AddScriptMessageHandler function now supports iOS, too. The list dialog now supports a third button, you can show on screen keyboard via Window.ShowKeyboard function and query whether dark mode is enabled on a Mac. Our preferences dialog now supports dark mode, SmartCard.ReadFilesupports more cards, GMImage.NewFromContainer can handle JPEG and PNG passed with wrong type and documentation includes now links to release notes and blog articles. This version includes a few important bug fixes for running the plugin on a sever. The background threading for CURL and SQL got improved to avoid crashes. Our Linux plugin for FileMaker Cloud for AWS got an important fix to avoid crashes with buffer overrun after several hours of running. Please update your servers to avoid running into those issues. Finally we updated DynaPDF library to version 4.0.33.95, LibSSH to 1.9.0, openssl to 1.1.1d, SQLAPI to 5.0.1, SQLite to 3.30.0 and zint library to 2.6.7 See release notes for a complete list of changes. More details in the release notes. Please take the time to check our 500 example databases and check where you can use our plugin features in your solutions. System Requirements: * macOS 10.9 or later, including macOS 10.15 * Windows 7 and newer, including Windows 10 and Windows Server 2019 * FileMaker Cloud for AWS (64-bit Linux) * FileMaker Pro 7 to 18 * FileMaker iOS SDK 16 to 18 Pricing and Availability: MBS FileMaker Plugin is available directly from the MonkeyBread Software website with licenses starting at just $149 (USD). You can just download and try the plugin without a license or request a trail license. Not all functions are available in all platforms, please check specifications. Please join us on the next conferences and visit our booth. Monkeybread Software: http://www.monkeybreadsoftware.com/ MBS FileMaker Plugin Website: http://www.monkeybreadsoftware.com/FileMaker/ Function Reference: http://www.mbsplugins.eu/ Download Free Trial: http://www.monkeybreadsoftware.com/FileMaker/download.shtml Events and conferences: http://www.monkeybreadsoftware.com/filemaker/events/ Logo: http://www.monkeybreadsoftware.com/images/MBSLogo.jpg Release notes: http://www.monkeybreadsoftware.com/filemaker/releasenotes.shtml Located in beautiful Nickenich, Germany, MonkeyBread Software is a privately held company founded in 2000 by Christian Schmitz. MonkeyBread Software focuses on the Macintosh, Linux and Windows platforms. With over twenty years as a software developer, Christian's aim is developing unique and useful utilities, complemented by first-class customer support. Copyright 2000-2019 Christian Schmitz Software GmbH. MonkeyBread Software is a registered trademark of Christian Schmitz, Nickenich. All Rights Reserved. Apple, and the Apple logo are registered trademarks of Apple Computer in the U.S. and/or other countries. FileMaker Pro and FileMaker are trademarks of FileMaker, Inc. Other trademarks and registered trademarks may be the property of their respective owners. Greetings Christian Schmitz Monkeybread Software
  13. You can try MBS FileMaker Plugin with it's PDF functions. For Mac and iOS, you can use PDFKit functions and for cross platform projects including Windows and Cloud, you can use our DynaPDF functions. e.g. with DynaPDF just open multiple PDFs with DynaPDF.OpenPDFFromContainer function and import the files with DynaPDF.ImportPDFFile. Later save new PDF.
  14. Please download again. 9.4.0.9 had bugs with compression, but 9.4.0.11 was released a few days later to fix them.
  15. Nickenich, Germany - (September 17th, 2019) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 9.4 for macOS, iOS, Linux and 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, macOS, iOS 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 9.4 has been updated and now includes over 5900 different functions, and the versatile plugin has gained more new functions: MacOS 10.15 Catalina is coming soon and we prepare for it. We notarize the uploads to avoid warning dialogs and updated a couple of functions to use newer APIs, so they work for the new MacOS version. Check the new Speech functions for MacOS catalina to recognize text in audio files. The Vision framework for MacOS and iOS provides functions to detect faces, face landmarks, recognize text, barcodes, humans and animals. We added a couple of functions to use some of the features in the framework. In our Barcode functions, we now support more Barcode types including the Ultra type. With our new Barcode.GenerateJSON, we can now generate barcode and provide more options like border and output options. For using Apple Maps with our MapView functions, we got new functions to add circles, points with custom pictures, lines and polygons to the map. The FM.ChooseDictionary function can automatically choose the dictionary to used for spelling in FileMaker. We improved CGImageSource functions to change properties like IPTC, EXIF and GPS values and write the image back to disk. The new Files.AudioTags function allows you to read audio file properties including metadata, e.g. ID3v2 tags. Use the Files.SetAudioTags function to write modified tags back to the audio file. For GraphicsMagick we got a new GMImage.Hash function, for CubeSQL we can connect with SSL and our new Text.ConvertToTextEncoding and Text.ConvertFromTextEncoding functions allow you to work with exotic text encodings. For iOS you can use UNNotification.SetNFCScript function for background scanning with URL trigger with a NFC card. Finally we updated CURL library to version 7.66.0, zint to 2.6.5, DynaPDF to 4.0.30.91 and Xcode to 10.3. See release notes for a complete list of changes. More details in the release notes. Please take the time to check our 500 example databases and check where you can use our plugin features in your solutions. System Requirements: * macOS 10.9 or later, including macOS 10.15 * Windows 7 and newer, including Windows 10 and Windows Server 2019 * FileMaker Cloud for AWS (64-bit Linux) * FileMaker Pro 7 to 18 * FileMaker iOS SDK 16 to 18 Pricing and Availability: MBS FileMaker Plugin is available directly from the MonkeyBread Software website with licenses starting at just $149 (USD). You can just download and try the plugin without a license or request a trail license. Not all functions are available in all platforms, please check specifications. Please join us on the next conferences and visit our booth. Monkeybread Software: http://www.monkeybreadsoftware.com/ MBS FileMaker Plugin Website: http://www.monkeybreadsoftware.com/FileMaker/ Function Reference: http://www.mbsplugins.eu/ Download Free Trial: http://www.monkeybreadsoftware.com/FileMaker/download.shtml Events and conferences: http://www.monkeybreadsoftware.com/filemaker/events/ Logo: http://www.monkeybreadsoftware.com/images/MBSLogo.jpg Release notes: http://www.monkeybreadsoftware.com/filemaker/releasenotes.shtml Located in beautiful Nickenich, Germany, MonkeyBread Software is a privately held company founded in 2000 by Christian Schmitz. MonkeyBread Software focuses on the Macintosh, Linux and Windows platforms. With over twenty years as a software developer, Christian's aim is developing unique and useful utilities, complemented by first-class customer support. Copyright 2000-2019 Christian Schmitz Software GmbH. MonkeyBread Software is a registered trademark of Christian Schmitz, Nickenich. All Rights Reserved. Apple, and the Apple logo are registered trademarks of Apple Computer in the U.S. and/or other countries. FileMaker Pro and FileMaker are trademarks of FileMaker, Inc. Other trademarks and registered trademarks may be the property of their respective owners. Greetings Christian Schmitz Monkeybread Software
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.