ACF Source Development Environment – New Developer Tool Application

Develop, test, and run ACF functions both locally and on the server — all in one tool.

While FileMaker’s built-in Custom Functions have their own editor, ACF takes a different approach since it’s a plugin, not part of FileMaker’s core system.


How to Install ACF Functions in Your FileMaker Solution

Using the plugin’s functions, you can easily compile and install ACF source files:

  • ACF_CompileText or ACF_CompileFile compiles the source and automatically installs the resulting binary into plugin memory.
  • If you’ve saved the compiled binary as Base64 text, you can load it back using ACF_InstallBase64Text (from a field) or ACF_InstallFile ($path).

To make your solution independent of OS file paths (since users may not have access to those folders), we recommend storing Base64 binaries in a database text field instead.

For source editing, Sublime Text is our preferred editor. We provide syntax highlighting and a standalone command-line compiler that integrates with Sublime’s Build (Cmd +B) system. If your files use the .acf extension, Sublime Text can automatically open and compile them.


The New Developer Tool

This new developer tool acts as a bridge between the plugin and your ACF package development workflow. It’s a compact FileMaker solution (one table, one layout) that can either be:

  • Connected as an external database, or
  • Integrated directly into your own FileMaker solution.

Each record represents one ACF package, storing its source path, ACF text, compiled Base64 binary, and test fields. An InitACF script loops through all packages at startup and loads them into the plugin. Each package may contain multiple ACF functions, and you can maintain as many packages as needed.

This tool builds upon our earlier New-ACFDevTool.fmp12 and introduces several improvements:

  • Central root path management: The path to your ACF folder is stored in a single record in the new ACF_Preferences table. Each package then uses a relative path, so you can move your ACF folder freely without re-pointing every package.
  • Server testing via PSOS: A new Test Server (PSOS) tab lets you test functions running on FileMaker Server, using Perform Script On Server. This mirrors local testing, but executes on the server plugin.

The Layout

A left-hand navigation portal lists your packages. The main layout includes seven tabs:

  1. Info – Package name, description, namespace, and source path
  2. Source – Displays source code with buttons for editing, compiling, and reloading
  3. Console – Shows messages and print output from the plugin
  4. ACF_Binary – Displays the compiled Base64 binary
  5. Prototypes – References for FileMaker function calls
  6. Test Local – Run and debug functions locally
    • Supports up to four parameters plus containers
    • Includes “Recompile + Load” button and compile status icons
    • “Next Error” button scrolls console directly to error messages
  7. Test Server (PSOS) – Same interface, but tests and compiles on the server

Development Workflow

  1. Create a new package record Enter the package name and description, then click Create Package. A Save-As dialog lets you choose a filename for the .acf file — the tool generates a boilerplate header automatically.
  2. Edit the source Click Edit Source to open the file in Sublime Text (via Open URL). Write your functions and press Cmd +B to compile. Any syntax errors are reported immediately in Sublime.
  3. Compile and load into FileMaker When compilation succeeds, return to the dev tool, click Load Source, and then Compile Text to compile and install the binary.
  4. Test your functions Use the Test Local tab to run the function with up to four parameters. Modify, save, and recompile from Sublime at any time — just reload and retest. If the plugin is installed on FileMaker Server, repeat the same process under the Test Server (PSOS) tab.

Integration into a Target Solution

You can integrate the developer tool in two ways:

  • External connection: Add the ACF_Packages table from the dev tool file as an external data source, and copy the script InitACF_TargetSolutionVersion to your solution. This script loads all packages and their namespaces at startup.
  • Full integration: Import the dev environment directly: two tables, a few value lists, supporting scripts, and the main layout. Add a menu item or button to open it within your solution.

Whichever approach you choose, remember to manage namespaces carefully. Each package defines a Namespace and a Shared (Y/N) flag on the Info tab — these determine how your target solutions locate ACF functions. For multiple solutions, you can use shared packages, or assign the target file’s base name (without .fmp12) as the namespace.


Running the App for the First Time

Download the Developer Tool application from our Download Area (or use the link below).

NamePlatformDescriptionDownloadDocsMore
ACF-Devtool Client and ServerMac/Win/Linux

Filemaker app to Bridge ACF plugin and developer workflow

Download-

Then download the ACF-Plugin 1.7.8.5 for your platform. If you plan to test on the server, also download the plugin for your server’s platform: macOS, Windows, Linux Ubuntu 22.04 (Intel/ARM), or Ubuntu 24.04 (Intel/ARM). Find the plugins on our download page.

Install the plugin both on your developer machine and on the FileMaker Server.


Preparing Your Environment

  1. Install Sublime Text and the ACF Compiler, then add the ACF preferences file to Sublime’s configuration folder.
  2. Associate .acf files with Sublime Text: Right-click any .acf file in your ACF folder and set Sublime Text as the default editor.
  3. Copy your ACF source folder (containing all .acf files) to your preferred location for source files.
  4. For server testing:
    • Upload the Developer Tool file to your FileMaker Server using File → Share.
    • If prompted, set a password for the Admin account under File → Manage → Security before uploading.
    • Make sure the ACF plugin is installed and activated on the server.

First-Time Setup

  1. Start the Developer Tool application.
  2. Go to Preferences and select the ACF folder you copied earlier.
  3. Go to the Test Local tab.
  4. In the Test Function field, enter:AutomatedTests
  5. Click Test 0 Par. You should see a result like this:
Running Automated tests
OK: Math test, elapsed: 0.099 ms
OK: Strings+Locale+Markdown tests, elapsed: 7.784 ms
OK: Hash/Encryption/Decryption+File read/write functions tests, elapsed: 7.421 ms
OK: API/Math_II/JSON tests - nominatim.openstreetmap.org, elapsed: 1523.074 ms
- All tests passed

Example: Testing a Function

Try another function: Enter DisplayCityDistance as the Test Function, set Par1 = Oslo and Par2 = Hamburg, then click Test 2 Par.

Example output:

The distance between Oslo and Hamburg is 709.0 km, (440.5 miles)
(2363.191242 µs at lightspeed)

Testing on Server

To verify server execution, repeat the same tests on the Test Server (PSOS) tab. You should see identical results, confirming that the plugin runs correctly on FileMaker Server.

Round-Up

Then you are ready to make your own ACF function, or you can copy from the ACF-Library, modify and test. Have fun.

Dont hesitate to contact me if you have any questions.

You may also like...