Shape the future of FME with your ideas
Open ideas have been reviewed by our Product Management and are open for commenting and voting.
It would be nice if the ChangeDetector match all attributes could exclude unexposed workspace level attributes like multi_reader_id, multi_reader_full_id, multi_reader_keyword, multi_reader_type.As it is, I need to either use match selected attributes and select them all (not possible in dynamic scenarios) or expose the multi_ attributes prior to the ChangeDetector so that match all except can be used.
This idea has come up in the 2016 thread (now released) about adding any output ports to FeatureWriter but the use case for Rejected features remains - e.g. some web-based format has a transient HTTP error, the failed features need to be retried after a wee delay, or a field overflows and can’t be written. @markatsafe @rylanatsafe you guys were on that thread. FeatureReader has a Rejected port, very handy for retry logic in a looping custom transformer, lets see it for FeatureWriter!There might need to be a Rejected port for each output port if you're going to loop it, or filter on feature type before looping to an input.
Sometimes you only realize after a while that you need some followup action after a writer. This results in deleting the writer and inserting all the necessary information into a new FeatureWriter.I think it would be helpful if you could convert a normal Reader or Writer to a FeatureReader/ FeatureWriter.
When using the WorkspaceRunner you often want to do something after that transformer with the results of the child processes that it spawned. Sometimes this involves launching another Workspace. At the moment there is no easy way to understand if all the child processes from that WorkspaceRunner have been fully completed.This is the crux of the problem, from the help:If the Wait for Job to Complete parameter is set to No, the initiating feature is output through this port if the request was successfully submitted, though whether or not the workspace completes is unknown in this case.One option might be a new port that releases a feature when the child processes have all been closed off, or some new parameter/mode. At the moment you need a workaround or you need to throttle the process and use 'Wait for job to complete'.
Currently the translation log window starts with a messageCommand-line to run this workspace: "C:Program FilesFME2016.1.1fme.exe" someWorkspace.fmw --Param1 "Value1" --Param2 "Value2"but this information is not reflected in the log file itself, and unless you have a ParameterFetcher+Logger, you cannot easily recreate the settings of a workspace with just the log file.I would like an option in the Translation Log Settings to write the (published) parameter settings to the log file. Perhaps as part of the FME Configuration Inform messages?
See https://knowledge.safe.com/questions/68957/get-the-last-index-of-an-array.htmlI now know how to access the last element in a list in a single statement thanks to @david_r's answer to this question. So I no longer have to count the list elements then subtract 1 from it before getting the value of the last element in the list. However, in the process of finding out how to do this, I discovered that the ListIndexer allows you to specify a negative number to start from the end of the list.I haven't yet had a scenario where I needed to get (for example) the 3rd element from the end of the list but these situations are bound to arise at some point! So I'd like to suggest that negative numbers be allowed e.g. _list{-3} to start from the end of the list rather than the start.
Add an additional option to the coordinate extractor to allow extraction of start and end coordinates/multiple specified coordinates
While trying out a workflow in the support site I encountered an attribute that was markdown text.There is no syntax highlighting option for markdown text in the data preview pane when inspecting the cache, so let’s add one! The behaviour should be like the other syntax highlighting options, when you select the syntax option the data renders accordingly.Here is my example:Markdown text in an attribute
I would like to be able to attach a role to an API token rather than having to rebuild all the permissions directly on the token.
Geometry Collections can be very difficult to intercept. They sometimes are nothing ore than a fairly simple polygon, where one of the segments is an arc for example. Trying to write these to quite a few formats usually results in problems, and some GIS applications like QGis can’t handle them properly.But there is no surefire way to catch these, since they are not always aggregates. There have been a few threads about this already, like this one: Geopackages and different polygon types in same layer ? | Community and this one: Aggregated surfaces written in wrong file format in SQL server | CommunityIt would be very helpful if the option ‘Collection’ was added to the GeometryFilter’s Simple definition list. It might already be possible using the Detailed mode, but that is not very obvious (I haven’t figured out how...).
It would great and highly beneficial to see the exact processing time for each individual transformer directly on the transformer. This feature would allow users to easily identify bottlenecks and optimize workspace efficiency without manual benchmarking in the log.
I happily jumped onto the MCP bandwagon in FME 2026.2. Then I found a small but nagging inconvenience.Unlike the HTTPCaller, I can not set the Connection Timeout on the MCP-Caller. It appears to have a timeout of 30 seconds.Although this should be enough in most cases, it is significantly shorter than the default job-timeout of 1 minute when creating a MCP server on Flow.This annoys me, and is also inconvenient while developing a MCP tool which might not be as optimal yet as it should be later in the development cycle. Thanks,Martin
When adding an Esri ArcGIS Feature Service reader the where clause text editor does not support access to the feature schema, but the schema is known so lets make it accessible.Compare this to (for example) geodatabase reading, a where clause may be constructed from the table schema.
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.
Did you know that log message filter settings are stored at the workspace level, not as part of the engine configuration?Here's what the relevant section of an FMW file looks like:Without debug:LOG_FILENAME "$(FME_MF_DIR)none2none.log"LOG_APPEND NOLOG_FILTER_MASK -1With debug enabled:LOG_FILENAME "$(FME_MF_DIR)none2none2.log"LOG_APPEND NOFME_DEBUG MAPPING_FILE BADNEWS UNGROUPED UNCORRELATED DUMP_SCHEMA XSD_VERBOSE HTTP_DEBUG FTP_DEBUG FME_DEBUG STASHLOG_FILTER_MASK -1This setup makes sense, especially when publishing workspaces to FME Flow and needing consistent logging behavior.However, in FME Workbench, this configuration is set under FME Options, which seems a bit out of place. It's not an engine or Workbench setting; it's specific to the workspace you're editing.In FME 2024.1, there was a review of this area. Could we take it a step further and move this setting to Workspace Parameters? That way, it's clear and directly tied to the workspace itself.
Currently you can filter Logs by severity level: Information/Warning/Error. I would love to have an additional filter that is user defined. For instance, I often use Loggers to write messages to the log that are used for debugging purposes, like “Token successfully fetched” or “45 Features written to DB”. Technically these messages should be categorized as “Information” but Information type log entries are hard to filter as most messages have this log type. On the other hand I don’t want to to use the Warning or Error type, as these messages should not be mixed with real errors. That’s why I propose a new Log Message type that could be called “User” or “Custom”. Like the other Log Types User Logs should be color coded and filterable on both Form and Flow.
I would like to have a selectable profile/configurable setting that is saved in the workspace to have the following: Set Feature Caching enabled in Development mode and off in Production mode instead of a general default setting for the Form product.
I am forever accidently closing the Data Inspector after I inspect some data. Please can you add an FME Option to bring up a “Are you sure you want to exit?” dialog box when you click the top right X close button. Thanks.
Hi,I noticed that the GeoTIFF and COG writers in FME do not expose a visible option to define the TIFF predictor (PREDICTOR), equivalent to the GDAL option:-co PREDICTOR=2or-co PREDICTOR=3This option is very useful when using compressions like LZW, DEFLATE, or ZSTD, since it can significantly improve compression efficiency, especially for continuous rasters or floating-point data.For example:PREDICTOR=2 for integer data PREDICTOR=3 for Float32/Float64 dataIt would be very useful to have this option directly available in the writer interface, similar to compression, tiling, or block size settings.I think this would be a valuable improvement to make GeoTIFF and COG optimization easier and more accessible in FME.Thanks.
Add .ods reader and writer (LibreOffice OR OpenOffice) !
The need might be for more niche cases, but I would be grateful if the CsmapReprojector transformer had a <Rejected> Output Port so that my translation will continue to flow – instead of, for example, ending with a fatal error. Note: This did not seem to be handled by "Add rejected port to all transformers" which is currently in 'Released' status as of 20170802.
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.