Shape the future of FME with your ideas
Open ideas have been reviewed by our Product Management and are open for commenting and voting.
I work with time series data a lot, and to keep some slack with regards to “race conditions” across my own flows and other upstream jobs, I tend to use rather generous time windows and “full rerun at the end of the day” configurations to ensure I don’t leave any time gaps in the data destination. That means a lot of the features being inserted at the end will have already been inserted by a previous run and will raise a conflict error if there’s some sort of primary key constraint (or create duplicate entries if these constraints are not enforced).This sort of scenario is what UPSERT is for, but UPSERT causes existing rows to be updated by design. The problem is that several databases, such as Postgres and Snowflake don’t handle large amounts of rows being updated frequently very well, since the “updated row” is actually just a duplicate of the old row with its fields updated, while the “replaced row” is just hidden and actually deleted later by a separate process.Given I know any rows already present in the DB would be identical to the ones I’m inserting, I would much rather skip inserting any conflicting rows instead of causing unneeded churn by “updating” them with the same data. Standard SQL handles this with MERGE INTO … WHEN NOT MATCHED THEN INSERT, but there are also non-standard ways like Postgres’ INSERT INTO … ON CONFLICT DO NOTHING. The only workaround I have at this time is inserting all my features into a temporary table and using an SQLExecutor to write that data to its final destination (something not helped by not being able to use actual temporary tables in FME). Being able to set the FeatureWriter to write new features and ignore conflicts from the get go would be a lot more conveinient for me.Related question/community post:
Supports the latest 3dtiles 1.1, supports both single-sided and double-sided models, supports with and without lighting, supports scaling of small models, supports models not deforming when coordinates are large, and supports adding texture images to models in PythonCaller,
Hi,As pointed at in : Please add a writer for on-disk mode.Thanks!
Its not obvious but it would be nice to make it easier to see.Without clicking on the value cell, it looks like a single value parameter. When I click on the cell, I see both the drop down and the ellipsis menu. Since there is a default value for MIME_TYPE, user would just populate the drop down and can easily ignore the mime-type. A further enhancement to this would be to make mime_type configured to an Attribute Value choice similar to “value”. If this is available, then I can add a MimeTypeFinder transformer in my workflow to populate the Mime-type parameter of the Multipart Upload.The use case for this would be when using the AddAttachments REST API and a feature with multiple attachments of different mime types supported by the destination format, eg, AGOL and Portal format writers.
Make the Snapper snap in 3D.
Hi Will FME FORM is getting an object detection functionality.Can FME Users will be able to train a machine to recognise objects of interest within images supplied to it. We see great potential for this machine learning capability in areas of asset management and surveying and train a model by labeling . Thanks
Hi FME InnovatorsI was wondering do we have any ideas/thoughts in future to implement/release any FME transformers and tools in AI Era, Object Detection is evolving alot and Instead of using External API , FME Owned transformer and Labelling.The Era of AI is evolving, I have kept few notes of Object detection for which i was exploring towards it and I was thinking of FME will have its own API , tools and methods in labelling(Training a model within FME) rather than depending on external Api connectors.What is Object Detection?Object Detection is a method in computer vision that detects and identifies objects in an image or video. While image classification predicts a single label for an entire image, object detection finds several objects in a single image, giving each of them a bounding box and a class label.Object detection takes care of two main functions:Localisation Localization - Where is the object? Classification - What is the object? Traditional Machine Learning for Object DetectionBefore the emergence of deep learning, the traditional approach to object detection was handcrafted features and classical ML algorithms. Traditional object detection techniques require you to do manual feature extraction and suffer from problems with too much variation, such as lighting changes, scale changes, and background changes. Haar Cascades Introduced by Viola and Jones (2001). Utilised for initial face detection (e.g. OpenCV’s face detector). Based on Haar-like features and a cascade of classifiers. Histogram of Oriented Gradients (HOG) + SVM Detect objects by utilising gradient orientations. Popularised by Dalal and Triggs for pedestrian detection. More compact and robust than Haar, but computationally expensive. Selective search + SVM Provides region proposals, which are classified. Helped bridge the gap between traditional machine learning and deep learning. While these machine learning methods set the groundwork, they simply could not outpace both the accuracy and scale of the now deep learning models.Deep Learning for Object DetectionDeep learning has transformed object detection by automating feature extraction via Convolutional Neural Networks (CNNs). Deep learning models automatically learn progressively abstract features from the data, improving speed and accuracy.Two-Stage DetectorsTwo-stage detectors separate the region proposal from classification. R-CNN (Regions with CNN Features) Uses Selective Search to propose region proposals. Uses a CNN to extract features from each proposed region and classify each region. Very accurate, but slow (each region is processed independently). Fast R-CNN This model shared convolutional computation across the image plane. It adds an ROI pooling layer to extract features using shared feature maps. Faster than R-CNN, but still not real-time, close to real-time. Faster R-CNN Introduces a Region Proposal Network for end-to-end training and prediction. Achieves accuracies very close to real-time performance. Single-Stage DetectorsSingle-stage detectors eliminate the need for region proposal and are capable of predicting bounding boxes and class labels directly. YOLO (You Only Look Once) This system is targeted for real-time detection. YOLO divides images into a grid and makes predictions about bounding boxes for each cell in the grid. The versions began with YOLOv3, then to YOLOv4, YOLOv5, and continue to the latest - YOLOv8 (the most recent versions now leverage Transformer-based modifications). SSD (Single Shot MultiBox Detector) SSD uses feature maps from multiple convolutional layers to perform detection. SSD offers a good tradeoff between speed and accuracy. RetinaNet RetinaNet introduced 'Focal Loss', or re-weighted losses, to aid in addressing the issue of class imbalance during training. RetinaNet shows good results across a range of benchmarks.Innovative Architectures and Trends (2025)Modern architectures combine CNNs, Transformers, and self-supervised learning techniques for better generalisation. DETR (Detection Transformer) An end-to-end object detection pipeline that employs Transformers. Negates the need for anchor boxes and Non-Max Suppression (NMS). Very accurate but less computationally efficient than YOLO. Vision Transformers (ViT) Attention mechanism (global feature extraction). Used with a hybrid CNN backbone for efficiency. Self-supervised learning (SSL) Models that are pretrained on unlabeled data (MAE, SimCLR) will transfer better with limited labelled datasets. Tools and FrameworksHere are some popular frameworks for implementing object detection: TensorFlow Object Detection API PyTorch + TorchVision Ultralytics YOLOv8 Detectron2 (by Meta AI) MMDetection Thanks
Often, I’m dealing with large datasets and I want to do a quick comparison of the schemas. I only want one record from each. I appreciate that you can set Schema Scanner or Sampler to only sample one record, but it still processes the remaining features to an output port, which is wasting resource in many cases. How about a setting in both made available, that just takes the first (specified) number of features and then stops reading from the source?
When a workspace is stopped by clicking the "Stop" button, no feature caches are preserved. It would be great to have an option to preserve these partially built feature caches if a workspace is manually stopped.Usage scenario: I'm running a workspace that takes a long time to run and I notice an issue (error or warning) that I'd like to investigate but don't want to have to wait for the workspace run to complete just to take a look at the problem.
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 FlowIt 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.
Lots of organisations have several FME Flow Instances, Dev, Test, Prod for example.It would be helpful to have the ability to select different colour pallets for each environment to quickly differentiate between each env.For example, you would be able to change the sidebar colour to blue for dev, green for test and red for prod
ESRI only makes arcSDE connections available via a ‘sde file’ which is a propierity file stored on disk, sometimes C drive, other times on network storage. Often we struggle with access to these files, as some are open and read only access, others have higher privileges to write to the SDE geodatabase.So its confusing to me having *.sde files as “Database Connections”In 2025, we now have the option to store database connection in FME Flow. We can change the dataset path from local to the Shared Resources on FME, either the Engine or the Data folder.Flow database connection with SDE typeThis enables further re-use of the connection within Flow… however the problem then becomes how can FME authors manage the connection in Form?FME Flow connection storage is great, but not necessarily for SDE file database connectionsIn practice, you go to re-use the flow connection for SDE and despite the path being to Resouces (engine and shared to roles) the error is repeatable Error’s connecting to feature types in ArcSDE geodb encountered in 2025.1The workaround for now is to follow Option 2 in article https://support.safe.com/hc/en-us/articles/30212601575693-How-to-Create-and-Manage-Esri-Geodatabase-ArcSDE-Connections-in-FME storing a single SDE file in a network share location that is accessible to both Form and Flow Can Safe software please add an enhancement to help find a better solution surrounding SDE connections and FME?Maybe ESRI have ideas or community wishes to move away from only have *.sde files as the single means to connect to Spatial Database Engine. What's needed is another means/protocol to properly “direct connect” to the DBMS and to include the sde registry.Connect to the DBMS registered for SDE, add a new option to get license and work as SDEA requirement for FME Flow instance is to have ArcServer installed for the licensing of SDE/FGDB. Perhaps this opens up something new.
In the older Transformer Guides, we sadly lost FME Lizard… but it had an overview, components of a simple workspace, basic transformer placement, basic running tips and inspectionIn the latest Transformer Guide we have the new transformers being added but only the transformer description textI’m asking for the graphics for each transformer to be returned. They still exist in the Help documentation, but the latest transformer guide, it lacks that nice visual, simple guide to what a transformer handles:Please rewrite the PDF to include the graphic/illustrations. Surely an FME workspace can transform the help from the web into a PDF and I believe 2025.1 has a nice PDF styler transformer to assist
Please add support for colors / appearances to the I3S writer. Currently, colors which are set within the feature in ArcSDE are lost, and all features within the published scene become white.
I’d like to request a more prominent notification flag for when FME packages need updates rather than the manual review process now. Unless a person manually checks you are only made aware of an issue when the workspace generates an error. Thanks!
It would be very helpful if the number of neighbors found were returned as an additional attribute (e.g. _count). This would save the effort of creating a list and subsequently using a ListElementCounter.
It would be nice to be able on one click to open the folder in which the workbench is stored. This is very simple but could be very useful.Actually the shortest way that I find to do that is :CTRL + SHIFT + SCopy paste the suggested pathWindows + EPaste the path and EnterThe path is visible in the header but not queryableThis is very linked to https://community.safe.com/s/idea/0874Q000000TlPhQAK/detailBut in a more general way (not only log oriented)
How the Bookmark Name is currently labeled into the bookmark title/handle section at a fixed left placement means often the label is not visible.I think placing the name into the visible/rendered section of the bookmark would be useful as the label would be visible more often when working on sections within bookmarks.So long as the 'jumping around' of text during navigation of a workbench doesn't feel too distracting in testing.
Esri has been adding more options for handling dates. In geodatabases, they now offer new data types for “Date Only” “Time Only” and “Datetime with timezeone offset” for data in geodatabases.On feature services in ArcGIS Online and ArcGIS Enterprise, publishers can now define the timezone of the data underlying the service, and the timezone for display to clients. This allows service publishers to define how they prefer dates from the service should be displayed, and how dates in data being written to the service should be translated for storage in the underlying dataset. However, from my rough testing, the Rest services are still sending dates and UNIX values, so the timezone definition on the service is just there so clients (like ArcGIS Pro, ArcGIS Enterprise, etc) know what to do with the unix values on the client side before displaying or writing back. Plus from what I saw at the 2025 user conference, they are adding more datetime configuration options to Pro in future releases.It would be helpful if the new feature service reader could tap into these settings and control how data from date attributes gets pulled into the workspace initially. It’s just one less thing to have to translate as data comes into the workspace when the creator of the service already defined how they would prefer users to interact with the dates in that service. On the reader, I could see this as a parameter that has options likeDateTime Output FormatUnix: Values from Date columns are brought in as the UNIX values from Esri. FME UTC: Values from date columns are brought in with FME Datetime format and timezones not translatedFME with Timezone from Service: Values from date columns are brought in with FME Datetime format but with the timezone added. On the writer, I could see a parameter to control how FME date attributes can be translated on writing to the service so they honor the “Time zone of the data” setting.I personally just started looking at migrating from the old ArcGIS Portal reader to the new ArcGIS Feature Service reader. With the old reader, date info was automatically translated into FME datetime format. With the new reader, date columns initially load in Unix format. That means I’ve now got to do a datetime conversion on data from any reader if I want to work with them on the FME workbench. But maybe I’m missing something on how best to work with this kind of data in the workbench. I haven’t found anything yet about this change in any of the documentation or blog articles. I only found out about it after submitting a ticket. So if anyone has more detail on whether the change is intentional, or how do deal with it now that it’s in the new version, please let me know.
Currently, in FME Flow, when a user edits and saves an existing schedule, the scheduled job appears to run under the username of the last person who saved it, even though the ownership of the schedule has not changed. This behavior can cause issues when the last editor does not have the necessary permissions to access specific data sources or resources, leading to unexpected job failures.We request that schedules retain the original owner's execution context, regardless of who last modified or saved the schedule settings. Saving or editing a schedule should not modify the account under which the schedule executes unless the schedule's ownership is explicitly changed.
It would be helpful if the List option could include basic file properties, such as the last modified date, name of the person who modified it, etc.Additionally, it would be helpful if the Download option could also include attributes showing the original name, URL, URN, last modified date, name of the person who modified the file, etc.
In AutoCAD you can choose if it should display your MText with or without text frame and with or without text background color. Wouldn't it be nice if the dwg writer would offer/accept such format attributes like i.e. autocad_text_frame <yes/no> or autocad_text_background <color> to define the MText appearance?Even better, when the dwg styler can set these attributes.
I love feature caching. It makes for a smooth and flexible development process.However, there’s one quite painful stone in this shoe.Whenever I have a workspace reading files from a ZIP, the embedded files are copied to a temporary location, to be read/used from this location.The problem is that FME always deletes these files as soon as it stops running, also after a partial run, rendering use of feature caching impossible in this case. One always have to start from the beginning.How about keeping and NOT deleting the created temporary files, until either a new complete run is performed or the workspace/FME is closed ?It does use a little more resources, but will facilitate the feature caching approach.Still works as described in 2025.2 beta.
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.