Using transformers to modify data.
Recently active
Hello, We have recently upgraded our FME Form to 2026.2.0.0 and I have been updating my workbenches that used the old Cityworks Inspection/Work Order Creators that have since been deprecated to the TrimbleUnityConnector. However, I am running into an issue of being unable to add assets to the inspection./work order which I did previously with an HTTP Caller. Is there a native way using the TrimbleUnityConnector to add assets?
I have successfully created a Asana app for connecting to FME (giving me a Client ID and secret) and then established the connection as a web connection in FME Form, but when I try to use the AsanaTaskQuerier transformer and input the required parameters (Web Connection, Asana Project ID, and Query Type) the Asana Project ID gives me an error, “Arithmetic expression invalid”. I followed the help documentation for the custom transformer and it seems straight forward enough, but no matter which Project ID link I copy and paste into the field, it gives the same error and won't let me click OK to run the transformer. I have successfully tested the connection and know that works, the issue seems to be in the Asana Project ID, possibly because it seems to have to be an Arithmetic field? The FME Help documentation for this says to input the Asana Project ID as follows, which I have done so in the same format. Does anyone have a solution to what the issue is or if you have come across this iss
Hi everyone!Today I’d like to share a new approach to building reports in FME, along with an entire family of custom transformers I’ve created to support it. Why I built BRGI’m a long-time fan of the HTMLReportGenerator. It lets me craft reports quickly, and I love the versatility of HTML compared with, say, PDF. I even demo it in every Intro to FME course as a great example of “let FME handle the code.”But as much as I love it, I’ve always hit three pain points:1. Plain styling – it could really use a dash of CSS/Bootstrap.2. Hard-coded content types – adding a new chart or HTML element isn’t trivial.3. Cumbersome feature ordering – managing Sorters and AttributeCreators just to control layout can get messy.Earlier this year I had to build a highly procedural report with lots of HTMLLayouters, AttributeCreators, and Sorters, and the workspace quickly turned into spaghetti. That’s when I thought: I already improved SystemCaller with BetterSystemCaller… why not do the same for report ge
We're using the TrimbleUnityConnector in FME Workbench 2026.2 and have noticed that when creating a new activity, the connector displays template options for items such as inspections. However, no Work Order Template options are available.As a workaround, we've been passing the Work Order Template ID as an attribute, which works, but we'd expected the templates to be selectable in the connector like the other activity types.Has anyone else experienced this behavior, or is there additional configuration required to expose the Work Order Template options?Here is inspections for comparison
In a process that deals with GPS messages that are received every 15 minutes, I have two User Parameters that set a Start- and an End date, in order to prevent having to process a couple of million rows from the database every time. These are configured as DateTime parameters, with the Datetime Format set to Date only.The GPS Fix time is copied to a new attribute while converting to a Date, using a DateTimeConvertor. Format selected is FME date (%Y%m%d). If I then use a Tester to check whether the GPS fix time falls between the start- and end date (with Comparison Mode set to Date/Time), they all fail, because the parameters value is 2026-01-01, while the attributes value is 20260101. So the Tester’s comparisonDate >= $(StartDate)(where Date is the by DateTimeConvertor created attribute) does not work anymore, since our upgrade to 2026.1.2. Before (when we used 2025.0.3) this was working without a problem. Upgrading the DateTimeConvertor and the Tester (this is an older workspace) d
Hi team,In my workbench, I'm snapping line endpoints to the device X,Y.To do this, I stored the point's X,Y in the line's attributes and used the VertexCreator transformer with "Replace point at vertex" set to −1 (the end point), passing in the device's X,Y.This moves the line's end point to the device's X,Y as expected, but it also changes the line's start point to what was previously the line's end point.To avoid this, I tried using VertexRemover to remove the end point, then VertexCreator with "Add point at vertex" set to −1, again passing in the device's X,Y. With this approach, the line's start and end points end up swapped.I need the start and end point order preserved as-is, since that order is used for terminal assignments in the Utility Network. Someone please suggest a solution for this? @redgeographics @radek.cervenka @hkingsbury
I’m using FME Form 2026.2. I have date and time strings that I need to convert into a date field in ArcGIS Online. It seems like this should be easy, but I can’t get it to work. What format does ArcGIS require to create a date field.I create a new datetime attribute then write it to a AGOL Feature Service. The field is created in AGOL, but the value are null.@ParseDateTime(@Value(LocationDate) @Value(LocationTime), %m/%d/%Y %H:%M,repair) In ArcGIS Online all values are null. I attached an FME workspace and CSV file to reproduce the issue. I searched for documentation and forum posts. I think that I’m missing something simple.I must have a date field in AGOL because I’m creating a dashboard and need to filter dates.
Since a few days two of my FME hub transformers return the error below. I think it mentions that it is not possible to create a folder any more using the TempPathnameCreator. This might be resolved by updating the transformer to the latest version, but this also means that the transformers on FME hub cannot be used on old(er) versions any more. In another recent ticket in contact with Safe, I experienced something similar. Because of the security-changes for Flow several workspaces do not work any more. So I'm pretty sure many people will have similar issues. How can this be fixed without having to update all transformers to the latest version (and making it impossible to use them with older versions)?2026-07-15 13:08:16| 0.0| 0.0|ERROR |@Tcl2 -- failed to evaluate expression `set sampleTempFile [FME_TempFilename]; set ourTempDir {}; append ourTempDir $sampleTempFile {_d}; file mkdir $ourTempDir; set env(InlineGeoJSON_TempPathnameCreator_6e0c2906_d797_4636_928a_fa984000ecc45_dir) $o
Hi all, When sending a test request with a HTTPCaller, the Test Response Preview shows the response. When you close this window and reopen it later after closing and re-opening the workspace (even on another date) this response is still there (cached?). Depending on the URL used, this can lead to an unreasonably large workspace file. Is this an intended feature, or an oversight that can slow down workspace performance if a user isn’t aware of this?If there is a benefit to being able to revisit this test response at a later date, maybe it’s a good idea to be able to enable/disable this feature entirely. Or at least be able to ‘clear’ this Test Response Preview. Kind regards, Rob de Groot An example URL that leads to a +20MB size increase of your workspace if a test response preview is opened:https://services1.arcgis.com/ug8NBKcLHVNmdmdt/arcgis/rest/services/Peilvakken/FeatureServer/0/query?where=1%3D1&outFields=*&outSR=4326&f=jsonIf you do this for multiple HTTPCallers it ca
Good Evening! I have a problem i would like to share with this amazing community and i hope ill get an answer that solves it. I am writing data to an Microsoft Excel file. I use the feature writer to dynamically write 3 datasets to Excel. The normal Microsoft Excel writer does this without a problem. Now i want to do it with an Feature Writer set to Microsoft Excel, but when i run the feature writer with, i believe, the same settings as the Excel writer, it results in a fatal error, where it states FME daemon is shutting down. Can anyone help me? That would be greatly appreciated. Thanks!Error log TranslationOther settings are default.Interesting here: number 164. I dont know why of what.
I am trying to make a workspace that generates information reports, but the featureReader give me unexpected output. Sometimes it works, but sometimes it gives me "stale caches”, where it should work. I am trying to let the user choose which attributes to expose by using a UserParameter, so they can choose what information attributes they want to use or not, but it gives me weird results. If i run it, it might do it and give me the required information, but if i run it another time, with other attributes selected to expose, it gives me the result that was asked before. Or, if i run it again with the same configuration it gives me the "stale or incomplete cached data”. since Users can select multiple layers out of the 500 we have, i think i have to use the generic port, and let the users choose what attributes they want, because they dont need everything and their needs change from time to time. How do i change this process so that it will be reliable? That my users can get any attribu
I'm constantly getting an error in FME 2026.2 whenever I use the 'Conditional Value' option in CoordinateSystemSetter transformer, regardless of the input values. Could this be a bug?
FME Desktop 2022.1 crashes when trying to read Esri File Geodatabase - Reader works fine with any other format including Arc SDEs but crashes when setting format to File Geodatabase and trying to browse local drive
I have a workspace where FeatureMerger_2 and 1/3 connection is disabled, but when I trigger a Partial Run from the upstream reader BODENBEDECKUNG_A, I get the "Caches required to run translation are missing or stale" prompt, listing all the transformers that feed into that disabled FeatureMerger (See attached screenshot)Since the FeatureMerger itself won't execute, I'd expect its exclusive upstream feeders to be treated as dead and excluded from the run, but apparently they are still requiredIf I instead disable each incoming connection to the FeatureMerger, the feeders correctly drop out of the run and I don't get the prompt, even when Feature Merger is enabled.Can someone explain the logic here? Why does disabling a transformer and the relevant connections (the one coming from the reader where the Translation is started) not back-propagate to exclude its upstream feeders, while disabling the connections does?
hi,I'm trying to load data from a WFS service into a database.The WFS service contains 25 feature types (tables) with a total of more than 153,000 features.Here is my FME workspace:CreatorHttpCaller (retrieves the list of layers)PythonCaller (extracts the 25 FeatureType layer names)HttpCaller (GetFeature request using typeNames=<layer>)PythonCaller (retrieves the numberMatched and numberReturned values for each layer)Tester (numberMatched == numberReturned)PythonCaller (retrieves the features, transforms the geometry, etc.)CounterAttributeManager (adds a unique ID using the counter)SchemaScanner (collects the 25 schemas with their attributes, along with the 153,000 features)FeatureWriterThe issue is that the FeatureWriter doesn't correctly associate each schema with its corresponding features.If I insert a Sorter transformer before the FeatureWriter, the workspace runs successfully, but all attributes end up being written to every table instead of only the attributes that belong
Just recognized, after migration of a workspace from 2024.2 to 2025.0 a BulkAttributeRenamer shows strange results: The transformer is set to change attribute names to lowercase (mode rename) for a selected set of attributes. This works as expected. However the remaining attributes (not selected for any change) got almost completely removed. ‘Almost completely’ means from the >5000 records only 4 have the attribute after the transformer while all other records show the attributes as <missing>.@safe - although it’s easy to mitigate it might be worth to dig into it.note: in mode ‘keep original attributes’ results are as expected.Klaus
Has anyone else noticed when creating a list using the AttributeExploder it truncates the last two characters of the list name, resulting in complications when using a ListExploder downstream because the list doesn’t exist.Using the default settings:Default List Settings in the AttributeExploder Transfomer The resulting list:List Name Is Truncated In Feature Information This broke a workspace that was previously working. It was a niggly one to catch as the only thing that had changed was the FME version.As a workaround, we created a user parameter which had the default value “_attr_li{}” and used that in the ListExploder which worked. FME Form version:FME(R) 2024.1.1.0 (20240729 - Build 24619 - WIN64)
Hi All,I'm experiencing a bug in the Excel writer in the new FME 2024.0. I've made a script that outputs multiple data categories I need to process in a particular order to ensure my calculations are fed as desired. The bug causes the attribute names to not be written in the first row in Excel; it just starts with the data in the second row. Whenever I open the exact same script in FME 2023.2, the writer does write the field row names, without me changing anything in the writer settings.For now, my solution is to not use FME 2024, but since my customer does use 2024, it's not desirable. Does anyone have any ideas?Here is a preview of Excel. I can't scroll up to the first row, the data is not hidden, and the navigator also won't allow me to go to row 1.
Currently I have 23 CoG’s in an Azure Blob container and I want to retrieve only the area of those CoG’s covered by a rectangle that I use as the initiator for a FeatureReader.Unfortunately, the FeatureReader is reading first all the CoG’s in before making the decision where the bounding box is within, and then it returns the entire CoG, where I was rather expecting it would return the part the bounding box is covering.The CoG’s originate from the Copernicus DEM coverage GLO-30, contain overviews, etc…It takes almost 3 minutes for the FeatureReader to process the request. The bounding box is within a single CoG.When looking at the parameters for the COG reader, then I can see there is actually the possibility to set a search envelope. I could feed the bounding box to the envelope, which sadly is missing in the FeatureReader. Is there a way to speed things up? I only want to have the parts of the COG’s covered by the bounding box used as initiator, basically performing a range request.
I have a single dataset containing a set of polygons. Some of these polygons are touching each other. I would like to dissolve polygons which are touching (of orverlapping) into one large polygon. However, I would also like the new large polygon to take over the attributes from a specific feature. The feature from which the attributes are to be taken has a specific name in one of the attributes. Let's call this attribute “NAME". Hence, I sorted the features based on “NAME” before feeding to the Dissolver. However, it seems the Dissolver does not choose my first sorted feature to take the attributes from, but it seems to choose the feature (polygon) with the largest surface area. There does not seem to be a setting in the Dissolver which allows me to choose how the attributes are handled and how it chooses from which feature to take the attritubes. How do I dissolve my polygons, taking the attributes from the polygon where “NAME” has the value lowest in the alphabet? I don't know on bef
Hi everyone,I'm seeing some unexpected behaviour when writing repaired geometries to a GeoPackage.My workflow is:GeometryValidator (Attempt Repair = Yes) → GeoPackage Writer → GeoPackage Reader → GeometryValidatorBefore writing:Input: 32,572 Passed: 10,720 Repaired: 21,852 Failed: 0After reading the GeoPackage back:Input: 32,572 Passed: 31,789 Failed: 783 (Invalid Parts)I also noticed another behaviour:When Spatial Standard Compliance is included in the first GeometryValidator, the written GeoPackage appears to preserve more polygon coverage. When I disable Spatial Standard Compliance, all features still pass after repair, but after writing and reading the GeoPackage back, more features fail validation.Has anyone experienced this before?Is this expected behaviour of GeometryValidator/GeoPackage, or should the repaired geometries remain valid after being written and read back?Before writingAfter writing
My org recently upgraded Flow and Form from 2025.1 to 2026.1 We have heaps of translations that involve both Enterprise Portal and ArcGIS online. The web connections and services had all been upgraded to use the newer version of the ArcGIS Connector package (the safe.esri-agol versions). I’ve re-used all the safe.esri-agol web services built in Form 2025 in 2026. Everything authenticates and grabs a token as it should in testing the connections.Actually using the ArcGIS OnlineConnector is a different story. It works great in 2025 still, and reads everything available to the account: In 2026 however: 2026 version is trying to use a proxy to connect and eventually just times out without reading anything.Is anyone else seeing this behavior, and if so how to correct it? The Proxy settings in both versions of Form are both the same (use system settings).Thanks!Chad
Hello everyone,The funny thing is, I am trying to read .docx files which apparently I have never done until now in FME Form I am trying to convert several .docx files to html pages.I tried reading the help page of the Word reader, but unfortunately I don't get much wiser. It says to use the Word reader in conjunction with the transformer MSWordStyler. I looked into the MSWordStyler, but I also don't get much wiser. When I just connect a word reader with a html writer, I don't get any output (which I kind of expected). However, I really have no clue how to get from .docx → htmlIf I import all docx files in FME form, I kind of get a mess of all word pages meshed together in the Data Inspector
I have a bathymetric shapefile that I’ve adapted for eventual 3D printing. Part of my challenge is the sparsity of contour lines, which creates substantial space between contours. I previously tried GRASS/QGIS/SAGA/etc with limited success. Now I’m trying FME. FME processing is much easier, but the issue I’m trying to solve now is roughness at contour edges. This is the workflow I’m using:It produces a reasonable DEM output that I’m processing through QGIS with DEMto3D:Banding from contours:A closer look at the .stl shows hard contour line edges instead of smoother transitions:I’ve read some about using PointCloudCombiner and NumericRasterizer, but don’t know if that will address this situation. I also tried a workflow with NumericRasterizer, but the results were similar. In the past I’ve tried gaussian filters, or other smoothing techniques, but that really disrupts the shorelines. Feedback is appreciated.
I have a fairly complex shapefile/contour source that I’m converting to a DEM raster. It involves a lake bathy that has large islands. This process is complicated by the lack of good smoothing for widely separated contours and also islands within the lake.With the lake bathy I’ve created very smoothed rasters, but for the land I need to have a sharp edge to represent the shoreline. I have 2 separate raster generators for this. I clip the rasters to isolate lakebed, land around the lake and land on islands.The last complexity is inputing 2 rasters into a RasterMosaicker (both have alpha channels) and have the island rasters bands 0,1,2 set to RGBs of 255:255:255 while retaining the alpha channels for overlaying.I tried setting the RBG bands for the islands to 255:255:255 prior to the RasterMosaicker, (since islands are lost after the RM), but after removing the alpha channel with a RasterInterpretationCoercer the island RGBs are reset to either 0:0:0 or arbitrary values (such as 113:113