FileMaker – the problem solver’s problem solver

 

At the FileMaker Developer Conference earlier this year there was a special session on the morning of day two that was live streamed via the Internet – the first time this has happened in DevCon history. The session featured speakers from the FileMaker Product Management and Product Development teams who introduced us to their new strategy around defining a new category for the FileMaker Platform as the world’s leading Workplace Innovation Platform.

Defining where FileMaker fits in the marketplace and how to position the FileMaker Platform has always been somewhat of a challenge given the unique position of the FileMaker Platform (custom business application vs appliance applications, low code vs no code etc) and that it is used in small businesses, government, and enterprise teams as well as having deployment options that cover Mac, Windows, iOS and the Web. The Workplace Innovation Platform is about solving business challenges (for example streamlining workflows and automating manual processes), whether that is for a small business or a team within a larger business.

FileMaker have a short Workplace Innovation Platform Overview animated video which you can view here:

https://www.filemaker.com/workplace-innovation

Richard Cox Braden, a lecturer at Stanford University also spoke about the Invention Cycle and the roles that Imagination, Creativity, Innovation and Entrepreneurship play in this process. The full session video can be found here:

https://www.filemaker.com/workplace-innovation/#fm-video-visionary-keynote

After the special session DevCon attendees could collect their conference shirt which had this on the front:

I like the concept of “the problem solver’s problem solver”, and FileMaker have recently followed up the launch of the Workplace Innovation Platform with a new film series “Innovation Without the Hype” focusing on helping everyday problem solvers escape the work rut. The first four films in the series have been released and the remaining two will be released over the coming weeks – we encourage you to check them out here (each film is only around 40 seconds):

https://www.filemaker.com/workplace-innovation/films/

FileMaker 17 Certified Developer

Databuzz is pleased to announce that Andrew Duncan recently passed the Developer Essentials for FileMaker 17 Certification Exam and is now FileMaker Certified in v8, 9, 10, 11, 12, 13, 14, 15, 16 and 17. FileMaker 17 Certification is the official credential offered by FileMaker, Inc.

FileMaker Certification is your validation that you are hiring an experienced FileMaker professional who has technical knowledge of the complete FileMaker product line and has passed the “Developer Essentials for FileMaker” certification exam. Being a certified developer demonstrates to clients, peers and management that you’ve achieved an essential level of knowledge, experience and skills in developing on the FileMaker Platform.

Automate Electronic Document Signing with FileMaker and DocuSign


For many years we’ve helped business both large and small with their workflow challenges, and one of the most common issues we see is managing the distribution and signing of standard business documents such as contracts, employee agreements, quotes and proposals. The solutions to these problems vary depending on a number of factors, including the type of document to be signed, the number of recipients, volume of documents and the location of recipients.

Over the past few years we’ve helped a number of customers integrate with DocuSign, one of the most popular electronic signature platforms. DocuSign helps organisations connect and automate how they prepare, sign, act-on, and manage agreements and allows users to sign electronically on practically any device, from almost anywhere, at any time.

With DocuSign you can create DocuSign Templates with merge fields that you sent to recipients for signing, or you can create a PDF on the fly and upload that at the time of sending the signing request. A common workflow solution integrating your custom FileMaker business app with DocuSign might look like this:

The process would typically work like this:

  • a FileMaker user is notified that a certain document needs to be sent to a customer for signing, such as a contract
  • the FileMaker user clicks a button that creates a custom PDF with any merged data for that customer with details on what actions the customer needs to take, such as signing on a particular page, entering their name or other details such as their date of birth
  • the FileMaker generated PDF is then sent to DocuSign with instructions to send this PDF to be signed to the specified customer, and DocuSign then sends a signing request email (you can customise the email subject and body)
  • the customer receives the email and electronically signs the document. DocuSign then notifies you that the document has been signed and you can then download the signed version of the document into a FileMaker container field

This type of tight integration between FileMaker and DocuSign has a number of benefits, including being able to manage the document signing process in one central place from start to finish. You don’t need to give your FileMaker users access to DocuSign as everything is managed from within FileMaker and you have access to the signed documents from FileMaker. You can even setup Webhooks to have FileMaker automatically notified by DocuSign when a document has been signed and have FileMaker download this automatically.

You will need to sign up for one of the DocuSign API Plans – (US, UK and Australian plans) which have a number of tiers depending on the number of documents you need to send each month and other additional features.

Here’s a short video demonstrating how a FileMaker DocuSign integration might work (YouTube link):

If you would like to discuss integrating DocuSign with your FileMaker solution please get in touch for a free initial consultation to discuss your requirements.

FileMaker, cURL and HTTP Response Codes

When FileMaker Inc. released the FileMaker 16 Platform last year they included a feature I had been requesting for over 15 years – native cURL support. cURL is a command line tool and library for transferring data with URLs – you’re probably familiar with the HTTP, HTTPS, FTP and SMTP protocols. cURL is important as it allows us to interact with external web services/APIs directly from FileMaker Pro, FileMaker Go, FileMaker WebDirect and FileMaker Server. For example we can use FileMaker to send an SMS, upload an Invoice to Xero or MYOB, or download Orders from eCommerce platforms like WooCommerce or Shopify.

Starting with the introduction of the Insert From URL script step in FileMaker Pro v12 we’ve been able to interact with URLs with some limitations:

  • FileMaker Pro v12 introduced the Insert From URL script step which supported http, https, ftp, ftps, and file protocols. A field was required to download the result/response into and it didn’t support performing an HTTP/S POST request – only GET requests were supported (most APIs require a POST request to create/update records via the API). There was also no ability to customise the HTTP request, e.g. to set HTTP Headers which are often required for many APIs
  • FileMaker Pro v13 extended the Insert From URL script step to both HTTP GET and HTTP POST requests using the httppost and httpspost custom schemes that you specified when constructing the URL (e.g. “httppost://www.filemaker.com/path?fname=Bob&lname=Smith”). You still couldn’t specify HTTP Headers and still required a field for the result

Given these limitations I rarely used the Insert from URL script step until FileMaker Pro 16 was released. Since the FileMaker Pro v6 days I have been using a number of different plug-ins to perform HTTP requests – initially I had a custom plug-in developed, then switched to the Troi URL plug-in and then to the BaseElements plug-in. Databuzz sponsored the development of some specific functions that we needed and the BaseElements plug-in provided us with cURL support and a number of other related functions, such as JSON encoding and parsing and XPath for parsing XML data. The BaseElements plug-in has provided us with the functionality we needed that was missing in the FileMaker platform, but as a plug-in was required it did have a number of disadvantages:

  • FileMaker Go does not support plug-ins (you can now use the iOS SDK). You could use FileMaker Server script schedules and Perform Script on Server as a workaround but this required the FileMaker solution to be hosted by FileMaker Server so wouldn’t work for solutions running locally on the iPad or iPhone
  • running scripts under FileMaker Server required the plug-in to be installed on the server, which can be done easily as long as the appropriate permissions have been granted in the FileMaker Server Admin Console. Some hosting providers also disabled the option to install plug-ins on shared servers.

With the release of the FileMaker 16 platform came the ability to specify one or more supported cURL options as a calculation when using the Insert From URL script step, as well as the ability to specify a variable as the target (no more fields required!). This was a game changer as far as working with APIs was concerned – now the entire FileMaker Platform could natively make HTTP requests, set HTTP Headers, and encode JSON data and parse JSON. All of our integration solutions were using the BaseElements plug-in, so we started to work on adding native support for FileMaker Pro v16 users by switching from the BaseElements plug-in functions to using the native Insert From URL script step, cURL options and JSON functions.

One function for which there was no native equivalent was the BE_HTTP_Response_Code function which returns the HTTP response code value from the last request. HTTP Response Codes are issued by the server in response to a request and can be used to determine whether the HTTP request was successfully completed or if there were issues associated with the request. For example 200 is the standard response for a successful request and 401 means there was an authentication issue and the request failed. It’s important when working with APIs to check the HTTP Response Code to confirm that the request was processed successfully – the documentation for each API will usually specify what response code indicates a successful request (typically 200 or 201).

The HTTP Response Code is contained with the HTTP Response Headers which are returned by the server processing the request. You need to specify the following cURL option to get the response headers returned into a FileMaker variable:

" --dump-header $responseHeaders"

The $responseHeaders variable will then contain something like this after the Insert From URL script step has been performed:

HTTP/1.1 200 OK
Date: Wed, 13 Jun 2018 04:45:17 GMT
Server: Apache/2.4.26 (Red Hat)
X-Powered-By: PHP/5.6.35
Transfer-Encoding: chunked
Content-Type: application/json; charset=UTF-8

In the above example you can see the first line of the response headers contains the response code: “HTTP/1.1 200 OK”. Other common response codes that you might encounter include:

HTTP/1.1 100 Continue
HTTP/1.1 403 Forbidden
HTTP/1.1 201 Created
HTTP/1.1 302 Found
HTTP/1.1 301 Moved Permanently

You can use standard FileMaker functions to get the actual numerical response code from the first line of the response headers, e.g.:

Let ( [
t1 = GetValue ( $responseHeaders ; 1 ) ;
t2 = Substitute ( t1 ; " " ; "¶" ) ;
n1 = GetValue ( t2 ; 2 )
] ;

n1

) // Let

This all works fine as long as the Response Headers only contain a single response code, but sometimes the server will return multiple response codes. For example the response might include a redirect or a continue and look like this:

HTTP/1.1 100 Continue

HTTP/1.1 403 Forbidden
Server: nginx/1.14.0
Date: Wed, 13 Jun 2018 07:41:16 GMT
Connection: keep-alive

The response code we are after is the “403” value and not the “100” value, so our above calculation would return the wrong response code in this situation. We started working on a custom function that would look for the last “HTTP/1.1” string and then get the code following this, but that failed pretty quickly when working with a server that included the string “HTTP/1.1” elsewhere in the response headers.

We’ve settled on using this custom function which so far is returning the correct result, at least with the APIs and servers that we have tested it on so far. We would much rather have a native function for this which does the equivalent of what the BaseElements BE_HTTP_Response_Code function does without having to try to locate and find the last response code from the response headers. From researching this it appears that there is already a cURL option for this:

-w "%{http_code}"

but unfortunately the -w option is not one of the FileMaker supported cURL options, so for now you’ll need to parse out the response code until FileMaker add support for the -w option. We’ve added this to the FileMaker Product Ideas discussion area – if you would also like to see this feature in a future version of FileMaker platform you can vote up the idea here.

FileMaker Inc. releases FileMaker 17 Platform

FileMaker Inc. today released the FileMaker 17 Platform with new versions of FileMaker Pro Advanced, Server, FileMaker Go and FileMaker WebDirect. As with previous releases FileMaker 17 has a number of new features for both customers and developers alike. This releases marks the fourth annual release that started with v14 with all new versions shipping in May each year.

Updates in the FileMaker 17 Platform include:

Development:

  • Starter apps: Get started more quickly by choosing one of six new starter apps. Add more functionality to an app by connecting an add-on table.
  • Master-detail layouts: Leverage the new portal enhancements to create common design patterns like master-detail layouts.
  • Redesigned layout mode: Create custom apps more easily with layout tools that are more discoverable through convenient panes inside the document window.

Mobility:

  • Sensor support: Using a new calculation function, mobile apps can capture information from iOS sensors in iPad or iPhone devices.
  • Configure local notification: Display a local notification on an iPad or iPhone device when FileMaker Go is not running or is in the background.
  • Drag and drop:  Go faster with drag and drop of text, photos, and files between apps on iPad devices running iOS 11.2.

Administration and Integration:

  • FileMaker Server Admin Console: Redesigned to be more lightweight with a streamlined user interface.
  • FileMaker Admin API trial: Get REST API access to manage and administer FileMaker Server. Trial expires Sept. 27, 2019.
  • FileMaker Data API: This improved REST API includes support for FileMaker Server scripts, the ability to upload files to container fields, and a more standardized API format.

The release of the FileMaker 17 Platform also sees the end of FileMaker Pro as a standalone application, as it is now replaced by FileMaker Pro Advanced. FileMaker Pro and FileMaker Pro Advanced are no longer sold as separate products – you now enable the Advanced developer features such as the Script Debugger and Data Viewer when the Use advanced tools general preference is selected.

FileMaker Inc. also released a new FileMaker data migration tool that can significantly reduce the time it takes to migrate/import data from one version of a FileMaker solution to another (e.g. when moving data from a production version to the latest development version). The data migration process can now go from days to hours or hours to minutes when importing large data sets. This new time-saving command-line tool helps you update your deployed custom apps in no time. The data migration tool is available through the FileMaker Developer Subscription.

With the  launch of the FileMaker 17 Platform FileMaker Inc. have also announced new licensing programs that replace the previous programs – the primary new offering is called FileMaker User Licensing. FileMaker User Licensing is a simple, cost-effective way for teams to license the entire FileMaker Platform. FileMaker User Licensing is based on the number of unique users a company or organization has that need to use FileMaker software. The key components of the new FileMaker User Licensing Program are:

  1. Every license includes the entire FileMaker 17 Platform – FileMaker Server, FileMaker Go, FileMaker WebDirect, and FileMaker Pro Advanced – which replaces FileMaker Pro – to give everyone access to advanced development and customization features.
  2. Start at 5, add in increments of 1 – the initial minimum quantity is 5 users, and you can add users in increments of 1.
  3. New FileMaker Data API – each license comes with unlimited inbound data transfer and 2 GBs of outbound data transfer, per user, per month – shared and tracked annually.
  4. All new contracts are managed under one license key – and the license key will not change over time making renewals and additions much easier to manage.

We’re please to report that all Databuzz products are compatible with the FileMaker 17 Platform:

We’ll be publishing more articles over the coming months looking at some of the new features in the FileMaker 17 Platform in more depth – you can subscribe to our newsletter to be notified when they are released or follow us on Twitter or Facebook.

FileMaker 17 Platform Compatibility Update

The FileMaker 17 Platform was released today and we’re pleased to report that all Databuzz products are compatible with the FileMaker 17 Platform. We haven’t encountered any issues with the following products in our testing with the FileMaker 17 Platform:

fmSMS – we have sent messages from multiple SMS Gateways, checked Account balances and checked the status of sent Messages successfully.

fmAccounting Link (Xero Edition) – we have been able to authenticate, download from Xero to FileMaker and upload from FileMaker to Xero successfully

fmEcommerce Link (WooCommerce Edition) – we have been able to authenticate, download from WooCommerce to FileMaker and upload from FileMaker to WooCommerce successfully

fmEcommerce Link (Shopify Edition) – we have been able to authenticate, download from Shopify to FileMaker and upload from FileMaker to Shopify successfully

fmAccounting Link (MYOB AccountRight Edition) – we have been able to authenticate, download from AccountRight to FileMaker and upload from FileMaker to AccountRight successfully

fmAccounting Link (MYOB Essentials Edition) – we have been able to authenticate, download from MYOB Essentials to FileMaker and upload from FileMaker to MYOB Essentials successfully

If you encounter any issues with any of our products and FileMaker 17 Platform please let us know. We’ll be writing more articles about some of the new features in the FileMaker 17 Platform over the coming weeks – you can subscribe to our newsletter to be notified when they are released or follow us on Twitter or Facebook