FileMaker Plugin Debugging and Code Fix

Job ID: 39295550

Budget: $30 – $250 AUD

I'm experiencing only one C++ issue with my FileMaker plugin that needs your expert assistance. In a file called FMPluginWrapper.cpp, there is located within a function called RegisterFunction() that is designed to send information about the plugin ID, function name and other details for registering a plugin function with the FileMaker plugin engine the following:

// Register the external function using dynamic_identifier
const fmx::errcode error = fmx::ExprEnv::RegisterExternalFunctionEx(
*PluginID(),
g_next_function,
*name,
*function_prototype,
*function_description,
required_parameters,
required_parameters + optional_parameters,
function_flags,
function);

The plugin is suppose to send the exact function names and other parameters shown above in order for FileMaker Pro to register the function and display the full function name, such as:

System_ExecuteCommand (....)

In an older plugin of the same name and ID called System.plugin, the registration process does not recognise the parameters passed as identical in order to show the function name. Instead, it shows:

<Missing Function> (...)

I can change the above line to the correct function name, and works perfectly fine, but if I use the new plugin it shows the dreaded <Missing Function>(). Update it and switch over the plugins, the missing function problem appears.

I am seeking a solution to this, which is likely to involve some debugging on your part to see the values being passed into RegisterExternalFunctionEx() and to determine whether the information is identical. If so, the above issue should not exist, but I suspect there is a difference somewhere in the values passed.

Your task is to track down and fix the offending difference in the information being passed (unless you know of another solution) so that I can save myself hours of work re-writing the correct function name in FileMaker scripts for the new plugin.

You will receive a "fully clean and build successfully" plugin called System.plugin that works. All functions behave as expected and performs the tasks as intended.

I can supply the old and new plugins and the C++ source code for comparison purposes, and also a test FileMaker database that uses the plugins. The latter contains two lines in the script that uses the exact same System_ExecuteCommand(), except one was created with an older plugin, and the other with the newer plugin. And you will see there is a difference in how the function names are presented by FileMaker Pro.

As a confident and experienced C++ programmer, your task is to find a solution to getting the FileMaker's function registration process to see the same function names in a script as the same.

That is the only issue regarding this plugin. There is no need to make substantive changes or remove dependencies to C++ libraries or anything else. This new plugin is designed to be the world's simplest FileMaker plugin template (simplified from the original FileMaker plugin SDK) with example. This new template will be used in my other available plugins.

IMPORTANT: If you wish to bid on this project, only bid if you can do the work (i.e., no students learning on the job). Whatever bid you make will be seen as final. So decide carefully when you send a bidding amount for this project.

Thanks, and happy bidding.
Related categories: C++ Programming FileMaker Debugging Plugin Apple Xcode