Shape the future of FME with your ideas
New and Open ideas are awaiting review or have been reviewed by our Product Management team, and are open for commenting and voting.
It would be great to have an option to add one more input port to this transformer.In some scenarios, it's useful to differentiate between two input datasets—so that the transformer can overlay one dataset against the other, without comparing a dataset against itself.
Would more users like to see an option or prefer if the feature information window sorted exposed attributes in alphabetical order? Currently, the attributes are sorted by table order.
FME Workbench does not always prompt the user when an embedded transformer was updated in its fmx file. It would be useful to have an option to update embedded transformers manually. Maybe in a similar fashion as default transformers can be upgraded. How about right-click -> update to latest version -> bring up a dialogue to select the fmx file? I am aware that this is not required for linked transformers but in some cases it is more practical to use embedded transformers. Also see here.
In my experience, web service credentials and the base url for a web service go hand in hand. For example, if I have credentials for a sandbox instance of a service, that would go along with a sandbox base url (ex. https://sandbox.servicename/api/v2 or https://servicename/sandbox/api/v2 )But I have found that the pre-built web services do not prompt for a base url.I realize that I can add a prompt by creating my own Web Service, but how would I access my Base Url parameter within the Request URL in the HTTPCaller?My idea is:Prompt for endpoint base url by default in all Web Services (to be entered while creating a new Web Connection). In the HttpCaller transform, rename the “Use Authentication” checkbox to “Use Authentication / Web Connection” In HttpCaller, move Request Url below the checkbox If there is a non-empty endpoint base url defined in the selected Web Connection, Add a “« base url” marker into the Request Url textbox The user can then complete the endpoint (i.e. /employees )The benefit of this feature is that I can have multiple workspaces all using the same Web Connection, and if either the URL or the credentials change, I can modify this once in FME Flow without having to alter any workspaces in FME Form.
Hi there,I would like to be able to right click on my web connections in the navigator and reauthenticate, rather than having to go into the FME Option menu.E.g.
I would like the version of a custom transformer to be available as a parameter in FME so that it could be logged out for debugging purposes.This is helpful in the case there are many versions of a custom transformer.
It would be very nice to extract the DWG properties (the equivalent of the DWGPROPS command in AutoCAD) into FME. These are drawing properties and not feature properties.
Make it easier and faster to convert raster images to vector polygons.Improve performance of RasterToPolygonCoercer and add more options for customizing the transformation.FMEers, we are interested in knowing how important raster-to-vector conversion is to you. Please upvote if this is an operation you require, and comment to let us know what specifically you'd like to see. Any details you can provide on your use cases would be helpful.
Just having a Trigger that gets a notification when a Workspace App is run.I know perfectly this is possible through an FMEFlowNotifier and a Topic trigger or alternatively an HTTPCaller and a Webhook trigger, I just don’t find it intuitive enough. I recently got a couple of users asking me this very same question and I think this could be done much easier. Besides, right now you have to maintain your notification system in 3 different places: the workspace, the topic and the automation.There’s already some questions in the community about this, which I think it shows it’s not that easy:And no, an Automation App is not the same because it can’t be used together with a data streaming or data download service.
Hi!It would be great when publishing a published parameter of the list of values type that it is not fixed in an import but rather dynamic from a query or a database table.Very useful especially in FME Flow when an FME app is going to query a database. This would avoid having to republish the workbench with the parameter list as soon as the data evolves in the database!
Currently when writing raster data to the AutoCAD formats, images are written as .png to the same directory as the output .dwg, with the same name as the output .dwg.It is also not currently possible to create points with an external reference to an image using the autocad_xref_path format attribute. (Otherwise you could add a separate image writer and use this).It would be useful to be able to chose the format, name and write location of images alongside .dwg output.
The OData Reader currently fails with the error “The version '4.01' is not valid.” when you try to retrieve data from an OData Version 4.01 Endpoint. Full Log:Creating reader for format: ODataTrying to find a PYTHON plugin for reader named `ODATA'The workspace does not contain user Python. FME will attempt to use a Python 3.13+ interpreterUsing Python interpreter from `C:\Program Files\FME\fmepython313\python313.dll' with PYTHONHOME `C:\Program Files\FME\fmepython313'Python version 3.13 loaded successfullyLoaded Python module `odata' from file `C:\Program Files\FME\python\fme-plugins-py313.zip\odata\__init__.pyc'DEBUG: Configured logging for ODataReaderDEBUG: ODataCommon __init__()DEBUG: Inspecting mapping fileDEBUG: Feature Geometry Priority: 'none'DEBUG: Feature Type(s): 'ProductDescription,Product'OData Reader: Performing client-side pagination with 1000 features per requestDEBUG: DEF line: ODATA_2_DEF ProductDescription odata_type odata_none FILTER_QUERY Language eq 'DE' ORDER_BY_QUERY EXPAND_QUERY fme_attribute_reading defined Product string ProductDescription stringDEBUG: Attributes: Product ProductDescriptionDEBUG: Options: odata_type FILTER_QUERY ORDER_BY_QUERY EXPAND_QUERY fme_attribute_readingDEBUG: DEF line: ODATA_2_DEF Product odata_type odata_none FILTER_QUERY ProductGroup eq 'ZS03' and IsMarkedForDeletion eq false ORDER_BY_QUERY EXPAND_QUERY fme_attribute_reading defined Product stringDEBUG: Attributes: ProductDEBUG: Options: odata_type FILTER_QUERY ORDER_BY_QUERY EXPAND_QUERY fme_attribute_readingRetrieving connection 'SAP S4 Test'Retrieving connection 'SAP S4 Test'Retrieving web service 'HTTP Authentication'ODATA reader: Creating bulk features from individual featuresUsing MultiWriter with keyword `PRIMARY_DEST' to output data (ID_ATTRIBUTE is `multi_writer_id')Writer output will be ordered by value of multi_writer_idLoaded module 'LogCount_func' from file 'C:\Program Files\FME\plugins\LogCount_func.dll'FME API version of module 'LogCount_func' matches current internal version (4.0 20240722)DEBUG: urllib3.connectionpool Starting new HTTPS connection (1): my123486.s4hana.cloud.sap:443DEBUG: http.client send: b'GET /sap/opu/odata4/sap/api_product/srvd_a2x/sap/product/0002/ HTTP/1.1\r\nHost: my123486.s4hana.cloud.sap\r\nUser-Agent: FME/2025.7.52.25241 python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: application/xml,application/json\r\nConnection: keep-alive\r\nOData-MaxVersion: 4.0\r\nAuthorization: Basic XXX\r\n\r\n'DEBUG: http.client reply: 'HTTP/1.1 200 OK\r\n'DEBUG: http.client header: set-cookie: sap-usercontext=sap-client=100; path=/DEBUG: http.client header: set-cookie: SAP_SESSIONID_Z5R_100=XXX%3d; path=/; secure; HttpOnlyDEBUG: http.client header: content-type: application/json;odata.metadata=minimal;charset=utf-8DEBUG: http.client header: content-length: 488DEBUG: http.client header: sap-authenticated: trueDEBUG: http.client header: odata-version: 4.0DEBUG: http.client header: cache-control: max-age=0DEBUG: http.client header: sap-server: trueDEBUG: http.client header: sap-perf-fesrec: 59482.000000DEBUG: http.client header: content-encoding: gzipDEBUG: http.client header: x-content-type-options: nosniffDEBUG: http.client header: strict-transport-security: max-age=31536000; includeSubDomainsDEBUG: http.client header: x-xss-protection: 1; mode=blockDEBUG: http.client header: sap-passport-component: noneDEBUG: urllib3.connectionpool https://my123486.s4hana.cloud.sap:443 "GET /sap/opu/odata4/sap/api_product/srvd_a2x/sap/product/0002/ HTTP/1.1" 200 488DEBUG: URL with appended params: https://my123486.s4hana.cloud.sap/sap/opu/odata4/sap/api_product/srvd_a2x/sap/product/0002/DEBUG: http.client send: b'GET /sap/opu/odata4/sap/api_product/srvd_a2x/sap/product/0002/$metadata HTTP/1.1\r\nHost: my123486.s4hana.cloud.sap\r\nUser-Agent: FME/2025.7.52.25241 python-requests/2.32.3\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\nOData-MaxVersion: 4.0\r\nCookie: sap-usercontext=sap-client=100; SAP_SESSIONID_Z5R_100=XXX%3d\r\nAuthorization: Basic XXX\r\n\r\n'DEBUG: http.client reply: 'HTTP/1.1 400 Bad Request\r\n'DEBUG: http.client header: content-type: application/json;odata.metadata=minimal;charset=utf-8DEBUG: http.client header: content-length: 775DEBUG: http.client header: sap-authenticated: trueDEBUG: http.client header: odata-version: 4.0DEBUG: http.client header: etag: W/"20250720003254"DEBUG: http.client header: cache-control: max-age=0DEBUG: http.client header: content-language: enDEBUG: http.client header: sap-server: trueDEBUG: http.client header: sap-perf-fesrec: 198967.000000DEBUG: http.client header: x-content-type-options: nosniffDEBUG: http.client header: strict-transport-security: max-age=31536000; includeSubDomainsDEBUG: http.client header: x-xss-protection: 1; mode=blockDEBUG: http.client header: sap-passport-component: noneDEBUG: urllib3.connectionpool https://my123486.s4hana.cloud.sap:443 "GET /sap/opu/odata4/sap/api_product/srvd_a2x/sap/product/0002/$metadata HTTP/1.1" 400 775DEBUG: URL with appended params: https://my123486.s4hana.cloud.sap/sap/opu/odata4/sap/api_product/srvd_a2x/sap/product/0002/$metadataOData Reader: Client error was received: '400'. The error message was: 'The version '4.01' is not valid.'(D:\code\fme\source\engine\plugins\python\fme-odata\src\odata\ODataCommon.py:77) doRequest(C:\Program Files\FME\python\requests\models.py:1024) raise_for_status raise HTTPError(http_error_msg, response=self)(D:\code\fme\source\engine\plugins\python\fme-odata\src\odata\ODataReader.py:534) read(D:\code\fme\source\engine\plugins\python\fme-odata\src\odata\ODataReader.py:541) _readFeatureGenerator(D:\code\fme\source\engine\plugins\python\fme-odata\src\odata\ODataReader.py:361) _fetchMetadataForSchema(D:\code\fme\source\engine\plugins\python\fme-odata\src\odata\ODataCommon.py:129) doRequestPython Exception <ODataReaderException>: FMEException: 929906: OData Reader: Client error was received: '400'. The error message was: 'The version '4.01' is not valid.'An error has occurred. Check the logfile above for details(D:\code\fme\source\engine\core\engine\readrimp.cpp:1102) class StatusInfo __cdecl STFReaderImp::getNextFeaturesFromReader(bool)(D:\code\fme\source\engine\core\engine\readrimp.cpp:1034) class StatusInfo __cdecl STFReaderImp::getTaggedFeature(class STFFeature *&)(D:\code\fme\source\engine\core\engine\readrimp.cpp:1116) class StatusInfo __cdecl STFReaderImp::getNextFeaturesFromReader(bool)(D:\code\fme\source\engine\core\engine\readrimp.cpp:1034) class StatusInfo __cdecl STFReaderImp::getTaggedFeature(class STFFeature *&)(D:\code\fme\source\engine\core\kernel\simptran.cpp:664) class StatusInfo __cdecl STFSimpleTranslator::convert(void)(D:\code\fme\source\engine\core\engine\stftrans.cpp:128) class StatusInfo __cdecl STFTranslator::translate(void)Translation FAILED with 2 error(s) and 59 warning(s) (0 feature(s) output)FME Session Duration: 1.5 seconds. (CPU: 0.6s user, 0.4s system)END - ProcessID: 27860, peak process memory usage: 90180 kB, current process memory usage: 72884 kBERROR : An error has occurred. Check the logfile above for detailsERROR : (D:\code\fme\source\engine\core\engine\readrimp.cpp:1102) class StatusInfo __cdecl STFReaderImp::getNextFeaturesFromReader(bool)ERROR : (D:\code\fme\source\engine\core\engine\readrimp.cpp:1034) class StatusInfo __cdecl STFReaderImp::getTaggedFeature(class STFFeature *&)ERROR : (D:\code\fme\source\engine\core\engine\readrimp.cpp:1116) class StatusInfo __cdecl STFReaderImp::getNextFeaturesFromReader(bool)ERROR : (D:\code\fme\source\engine\core\engine\readrimp.cpp:1034) class StatusInfo __cdecl STFReaderImp::getTaggedFeature(class STFFeature *&)ERROR : (D:\code\fme\source\engine\core\kernel\simptran.cpp:664) class StatusInfo __cdecl STFSimpleTranslator::convert(void)ERROR : (D:\code\fme\source\engine\core\engine\stftrans.cpp:128) class StatusInfo __cdecl STFTranslator::translate(void)ERROR : (D:\code\fme\source\engine\core\kernel\fmetran.cpp:934) class StatusInfo __cdecl FMETranslator::translate(class stk::ex::UStringArray<0>,bool &,bool,const class std::function<bool __cdecl(class ObsoleteString &)> &,bool) It would be great, if the OData Reader would add support for OData 4.01 in the future.
Migration Note: Idea originally posted on 2015-10-29
It would be cool to have an item in the ArcGIS Marketplace to easily add workflows to Experience Builder apps through widgets that would be configured to hit FME Flow endpoints. So you could have one that would download data or one that could upload data.Example integration is how VertiGIS integrated their workflows into widgets that can be called from Web App Builder hosted on AGOL.
Currently in the FME Server 2019 beta, when users create automations they will be required to enter the full configurations for the action and trigger. For the likes of sending an email, this will involve the host, ports, security, from emails etc. It would be great in existing triggers/actions could be templated or shared?
Hello,I came across this warning:“ 2024-10-08 15:14:19| 14.7| 0.0|WARN |Microsoft SQL Server Non-Spatial Writer: Failed to parse `Date' from attribute value ` 19810101' for column `InstallDate'2024-10-08 15:14:19| 14.7| 0.0|WARN |Microsoft SQL Server Non-Spatial Writer: Failed to parse ' 19810101' as a datetime value. For FME datetime syntax, please see http://docs.safe.com/fme/html/FME_Desktop_Documentation/FME_Workbench/! “ As you can see, FME is trying to write to a SQL database, but is failing due to syntax error. This results in all of the items that have this syntax error NOT BEING WRITTEN to the database, and those which do match the syntax being written. In my specific case this resulted in 25 features out of 20,000 not being written, as this was a warning rather than an error this was missed for several months, causing quite a few issues. Can we get an option to cancel transactions or throw an actual error in the case data is not being written in its full extent?Thanks
In automations, for the action “Run a workspace”, there’s a ‘Skip if Job In Progress’ option, I think a ‘Skip if Automation In Progress’ on the level of the automation itself would be very useful! The purpose of this option would be to prevent the same automation from being initiated again if a workspace from that automation is currently still running or queued. This could help prevent unnecessary duplication of processes and especially potential conflicts. We have some complex automations we really want to avoid to be run in parallel, but at this moment we don’t have an easy or nice solution for that...
It happens often that writing a multi-page 2D pdf requires some pages with a 3D-data box, especially when it comes to report generation of various data types. Merging these two types of .pdfs outside FME environment is a relatively task, however, when it comes to customized and automated assignments, it is absolutely crucial to export one .pdf file that can support multidimensional data.Thank you!
We often wanted to create an PDF document with multiple pages, or multiple PDF documents, all using the same page layout template. Currently the PDFPageFormatter only works with one page at a time, requiring complicated workflow change to create multi-page or multiple PDF document creation. It would be great to have a Group By parameter in this transformer, so that creating PDF pages or files with the same layout template becomes simpler.Would be nice to be able to:Create page numbers dynamically for each groupUse only the features within each group to populate the pageUse only the features within each group to determine the extend of the data
I would like to see a built-in option in the HTTPCaller transformer to format the response body for development purposes. I know that the HTTPCaller in 2024.2 has the “HTTP Test Request Preview” that shows the response body formatted, but it would also be nice to have the attribute “_response_body” formatted instead of having to use an additional transformers “JSONFormatter” or “XMLFormatter”. Example of HTTP Test Request Preview There could possibly be a toggle to format the response body, or to keep it in raw form. Instead of using the JSONFormatter or XMLFormatter, I would like to have the response body formatted directly in the HTTPCaller.
ProblemFME is case-sensitive with attribute names. When users upload files (CSV, Excel, etc.) with inconsistent casing (Name, name, NAME), it causes: Schema mapping failures (e.g., in SchemaMapper or Joiner). Unexpected behavior when casing isn’t controlled. Extra complexity requiring custom Python for basic cleanup. Why It Matters Real-world data often has inconsistent field name casing. Makes reusable workflows brittle and error-prone. Slows down schema inspection and integration with metadata or APIs. Suggested Solution Add a reader or transformer option to treat attributes case-insensitively. Let users define a canonical case format (e.g., lowercase or PascalCase). Add case-insensitive matching toggles in SchemaMapper and AttributeRenamer. Impact Simplifies file ingestion, mapping, and validation. Reduces Python scripting for common cleanup tasks. Makes FME workflows more robust and user-friendly.
FME FLOW Version Control could become an awesome feature for FME but currently it has some basic issues that urgently need to be addressed. Few of our biggest challenges are, The ability to establish integration with GIT via FME Flow should be straightforward. Currently we are struggling with even this basic connectivity. The basic Fetch and Push to GIT features are not working. Not even one example works even though manual Command line GIT Connectivity is successful from our end. a. Detailed documentation on FME Flow-GIT hub connectivity with videos/examples along with troubleshooting and whitelisting on Networking including Zscaler should be available. b. Main branch has to be renamed to Master. Such hardcoding should be removed and process should be more flexible. 2. Inability to create branching or work with branches via Version Control. Can only connect to Main branch. Multiple branches cannot connect or integrate. CI/CD cannot be completed without this. How will developers promote and get reviewed on their individual work without this feature? Note - Ideally FME Flow Version Control is more preferred than REST API as Version Control is an integral part of FME Flow and users like to use this integral feature more often than others. FME should try to focus and enhance this integral/inbuilt feature over other difficult time-consuming solutions.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.