Topics   All   MacOS (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Deprecated   Guides   Examples
New in version: 9.0   9.1   9.2   9.3   9.4   9.5   10.0   10.1   10.2   10.3    Statistic  


Initializes the XL library by loading it.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
XL 2.9 Yes Yes Yes Yes Yes
MBS( "XL.Initialize"; LibPath; LicenseName; LicenseKey )   More


Parameter Description Example value
LibPath Native path to the DLL on Windows or Dylib file on MacOS.
Can be empty for default file name with file in same folder as plugin.
LicenseName The name of your libXL license. ""
LicenseKey The license key of your libXL license. ""


Returns OK on success.


Initializes the XL library by loading it.
You can keep the library in a database field and export it at runtime to a known location and load it from there.
If you have no license yet, you can test this function by passing empty strings for name and key.

For getting a license key, please visit the libXL website:

Starting with version 4.4, you can pass just the filename of library and the plugin finds it in the Extensions folder or in FileMaker's application folder.

Windows error 193 means that 64-bit FileMaker tried to load 32-bit library or 32-bit FileMaker tried to load 64-bit library. The bit level must match between app and library. For Mac OS X the error message will tell you about wrong architecture.

Starting version 9.5, the plugin will look into the same folder for the DLL as the plugin resides. And we still look for 32/64 suffixes to DLL name. If no name is provided, we look for libxl.dll/dylib/so files.

If you get a crash here on MacOS, please check if crash report says Code Signature Invalid. Then you may need to code sign the dylib yourself to match the code signature of your runtime application. The dylib from MBS is normally code signed already and should work as is.

This function requires a native path. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required. If you like to have the user choose the path, you can use FileDialog functions.
For Server be aware that server has limited permissions and may not be able to access all files on a computer.


Initialize XL:

MBS( "XL.Initialize"; "/Library/FileMaker Server/Extensions/libxl.dylib"; "Test User"; "mac-43567890..." )

Initialize when needed:

#Initialize XL
If [MBS( "XL.IsInitialized" ) ≠ 1]
    If [Get ( SystemPlatform ) = -3]
        # iOS
        Exit Script []
    Else If [Get ( SystemPlatform ) = -2]
        # Windows
        Set Variable [$path; Value: "libxl.dll"]
        Set Variable [$key; Value: "win-32213..."]
        # Mac
        Set Variable [$path; Value: "libxl.dylib"]
        Set Variable [$key; Value: "mac-32213..."]
    End If
    Set Variable [$r; Value: MBS( "XL.Initialize"; $path; "test"; $key )]
    If [$r ≠ "OK"]
        Show Custom Dialog [ "LibXL failed to initialize"; $r]
    End If
End If

Initialize with license key on Windows with Server:

MBS( "XL.Initialize"; "C:\Program Files\FileMaker\FileMaker Server\Database Server\Extensions\libxl.dll"; "Test User"; "win-43567890..." )

Initialize automatically and look in same folder as plugin for the DLL/dylib/so file:

MBS("XL.Initialize"; ""; $LicenseName; $LicenseKey)

See also

Example Databases

Blog Entries

Release notes

  • Version 9.5
    • Changed DLL loading for DynaPDF.Initialize and XL.Initialize functions to look for given DLL path, try 32/64 DLLs. If only file name is given, we look into plugin folder, too. If no file name is given, we try default file name.
  • Version 8.0

Created 18th August 2014, last changed 29th November 2019

XL.Format.SetWrap   -   XL.IsInitialized

Feedback: Report problem or ask question.

MBS FileMaker blog