We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.
We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.
Shape the future of FME with your ideas
Exciting Updates to the Ideas Page! Learn more about the recent changes we’ve made to bring more transparency, ease of use, and a clearer view of how your ideas are progressing.
Open ideas have been reviewed by our Customer Success team and are open for commenting and voting.
FME Server has a good range of Rest api calls but they aren't all documented. For instance, named connections are avaliable by fmerest/v3/namedconnections/webservices, version control push by /fmerest/v3/versioncontrol/remote/push. It would be great if more of these calls could be documented
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!
Please add the possibility to populate the "choice type" parameter with a fme reader. The fme reader is loaded each time when the workspace run. With this feature, it's possbile to have the parameter list updated before every execution.
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.
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.
Proposal: Introduce FME AI Assist as a built-in assistant on the FME Community forum. This AI would provide instant, context-aware replies to forum questions, helping users get faster support and surfacing relevant documentation, tutorials, or workspace examples. Key Features: Auto-suggest answers based on existing Knowledge Center articles and forum history. Summarize long threads or highlight accepted solutions. Offer workspace-building tips or transformer suggestions. Learn from user feedback to improve over time. Avatar Suggestion: Let’s give it a friendly face! I propose using Zipster—the beloved FME mascot—as the avatar for FME AI Assist. Zipster already represents creativity and problem-solving, making it the perfect symbol for this helpful assistant.
It would be nice to be able to give each FME instance an individual name (and possible icon) to be able to distinguish different instances without checking the sometimes cryptic or long url. Handling different stages in the same browser sometimes leads to tab change after tab change to get the right instance. Different Instances of FME Flow It would be possible to directly chose the correct instance if the admin defined name could be shown instead of FME Flow as title and possibly a selected favicon - that is already possible to change going into the webapp but not documented and the path may vary between versions.
I would like to see SAML and Office365 authentication added to the HTTPCaller so that it can access information from more different online sources.
I’ve found that some LLM models are really good a looking over a codebase and putting together a readme for example. I’ve been experimenting with with workspaces and have also had pretty good results with copilot inside visual studio. would be great to have an AI Assist button inside the Help section in workbench for CustomTransfoemrs/Formats and workspaces. It would be excellent if the Help documentation followed the structure of the FME Help, e.g., Input Ports, Parameters etc etc. e.g.,
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.
Add a small field [250-500?] in all transformers for a description. Make it part of the summary annotation. One of the features I love about FME is the ability to label on the 'map'- workspace. I don't have to go to another document to read about the process. This would enhance that ability. Its not always ideal to describe everything 'on-screen' and a lot of annotations can make things messy. Another option could be to make annotations collapsible. This would help clear up some of the messy mapping but you could still have a 'large' description handy without taking up real estate. - I saw this was another suggestion.
Allow extending reader/transformer/writer name column in Quick Add dialog to be able to read full name. Expanding whole Quick Add dialog would be useful too.
This would significantly improve productivity and reduce error rates in (complex) workflows. For exaple; I am working on a large project with many Tester transformers that need to be consolidated into central TestFilter logic, reused in multiple places. Right now, I have to open and close each Tester one at a time just to transfer conditions. This is a repetitive and error prone process that interrupts focus and introduces copy paste mistakes. Side by side comparison simply is not possible withing just one workspace. Being able to open two or more parameter windows at once would make this deterministic and efficient. It would also help with verifying consistency across transformers, refactoring expressions, and migrating logic in large scale workspaces. These are not edge cases. Any user working with complex conditionals or multi stage filtering encounters this problem. Yes, I can open a second Workbench and load a copy of the workspace. But that is just a workaround, not a solution. It increases memory usage, risks of editing the wrong file, need to make a copy and introduces friction into something that should be trivial. I found this older idea: It was merged into: But that is a different use case. Batch editing is about applying the same change across multiple components. This request is about opening different transformers side by side for comparison, manual transfer, and accuracy. It is not about replication. It is about visibility, context and (quality) control. Other complex tools such as ETL platforms and IDEs already support multi dialog workflows. FME's single dialog model limits advanced users. This feature would benefit anyone working with layered logic, often copies settings/logic/stuff around and would reduce load caused by user errors from repeated manual operations. Something like this: If there are technical limitations, the second window could be read or copy only. That would still address the core problem: parallel access to parameters, logic, code and more within the same workspace. Ideally, two-way copy should be supported, but even limited access would help. Alternatively, allow the Parameter Editor panel and the double-click transformer dialog to show different transformers at the same time, so they can be used in parallel instead of always showing the same selection. Even if this feature were only available for a handful of transformers or limited to opening multiple instances of the same transformer group type, it would still be a meaningful improvement. Or allowing just two dialogs or a master follower model where the second window depends on the first so that closing the first (typically the one you intend to edit) also closes the second (used for reference) would already provide significant value.
Hi everyone, wouldn’t it be cool to have a list of favorite Transformers in the Transformer Gallery? Say, one has a number of Transformers that one uses for most of their workspaces. Instead of typing them in to Quick Add each time, it might be more convenient to have a list in the Transformer Gallery for those few Transfomers. It might also be the case that one does not remember the name of a often used Transformer. With a “list of favorites” it might be easier to add often-used Transfomers to Workspaces. But that would mean that there needs to be the possibility to mark a Transformer as a “favorite”. [Edit: Doesn’t have to be in the Transformer Gallery, a selection of favorite Transformers could also be useful after clicking on “Transformer”] Let me see your feedback on the topic. Is it something others would like too or is it just me? Cheers :)
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.
In large and complex FME workspaces, memory usage can become a major performance bottleneck, especially when feature caching is enabled for debugging or when large feature streams are processed sequentially. It would be incredibly useful to have a dedicated transformer (e.g., DropFeatureCache, ClearMemory, or similar) that can be placed mid-flow to explicitly clear cached data, or release memory from earlier processing paths. This would be especially helpful in long chains of transformations, loops, or branching logic where intermediate data is no longer needed but still retained in memory.
Has FME ever thought about going into the business of creating web or desktop applications? This might be out of the FME comfort zone, but I thought I’d ask the question. Thanks!
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
The 2017.1 Beta has the ability to read attachments from an ArcGIS online feature service, but it does not have the ability to write attachments. It would be nice to have that functionality.
In FME Flow 2025.1 you can filter automations by state or tags: and you can filter Schedules by Source, Tag and Owner: I think they should both have the ability to filter by any column that is present in the table. Thanks, Marc
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
Sorry, we're still checking this file's contents to make sure it's safe to download. Please try again in a few minutes.
OKSorry, our virus scanner detected that this file isn't safe to download.
OK