Introduction
FME can translate many data formats and perform lots of different transformations on that data, but after all those hundreds of readers, writers, and transformers, what if it still doesn’t support the functionality or application that you need out of the box? Not to worry, there are still many options available to you.
The guide below walks you through the considerations for planning an implementation and provides a list of resources to support your project.
A Note about our Plug-in SDK
The FME Form (formerly FME Desktop) installer lets you install the Software Development Kit (SDK). But with recent advancements to FME, we advise you to explore all available options before going down the development path with the SDK.
Please note that the SDK is provided as-is, and we do not provide detailed development support for your projects. When built with native FME functionality (e.g. A custom transformer built with FME Form) our team has much more experience to support your efforts. In fact, for many integrations, you can succeed without taking a programmatic approach at all.
Planning an Integration
The following will help guide you to the best approach. Remember, you may not need to write a single line of code to succeed!
Here is a list of components that you can develop for FME:
- New Data Formats (Readers and Writers)
- System Integrations (Connector-style Custom Transformers)*
- Data Transformations (Custom Transformers)
- FME Packages (FME Transformer Designer)
*For system integrations, note that you can integrate FME into your own applications and call its functionality, adding value to your own tools.
To help you decide the right path to take, let’s look at these options in more detail.
Data Formats
“I need FME to process data in a format that is currently not supported”
Options available to you:
- Data that is human-readable? Try text, JSON, or XML formats
- Databases may have a driver available to use with ODBC/JDBC format
- Is there a command-line tool? Try the SystemCaller transformer
- Can you read the data via a Python library? Use the PythonCaller transformer with the Python FME Objects API
- Build a graphical interface with the FME Transformer Designer
- FME Plug-in SDK
System Integrations
“I want to connect FME to my application and pull out the data” or “I want to call an FME Workflow from an external application”
Options available to you (Connecting to Applications):
- Connect to the application’s API using the HTTPCaller transformer, then wrap it in a custom transformer (e.g., Cityworks). Works well for pulling out data or application integration scenarios.
Options available to you (Connecting your Application to FME):
- Execute an FME workspace using the FME Flow REST API
- Build an FME Flow Automation utilizing a webhook
- If you can embed a web page, try using an FME Flow App
- Execute the FME workspace from your application using the IFMEWorkspaceRunner API (requires FME Form on the machine)
Data Transformations
“I need to manipulate data, and FME currently can’t do it”
Options available to you:
- Use a unique configuration of existing transformers to solve the problem (wrap with a custom transformer )
- Utilize the PythonCaller, RCaller, or SystemCaller transformers to extend functionality
- FME Transformer Designer (FME 2023.0+)
- Use the Plug-in SDK
Next Steps
If you are still unsure of the right direction for your project, connect with us to discuss your options.
We also recommend exploring the FME Hub to distribute and share your new functionality with the entire FME User base. The FME Hub is a community platform where users can access and share pre-built, customized FME tools like transformers, readers, writers, templates, and web connections.
Additionally, if developing the integration is out of your scope, you can submit an Idea to the FME Community or reach out to one of our Partners.
Migration Guides
As of FME 2022.0, FME supports only 64-bit Windows. If you have a plug-in that was built on 32-bit Windows, please see the following guides for more information on how to migrate to 64-bit:
- FME Objects and Plug-in Builder Porting Notes for FME 2023.0+
- FME SDK 1.1 (FME Objects and Plug-in Builder) Porting Notes for FME 2022.0+