Using transformers to modify data.
Recently active
Hi all,We overlay/intersect datasets containing circular arc geometry (Arc By Center Point With Ends) using AreaOnAreaOverlayer, LineOnAreaOverlayer, LineOnLineOverlayer, Clipper, and Intersector. The source data comes from an ArcGIS Geodatabase (ESRI SDE). We'd like to understand how these transformers handle arcs internally, since this directly affects positional accuracy for our (cadastral-grade) use case.Specific question:When an arc is intersected with a line or polygon (Arc By Center Point With Ends -> overlay -> output is again Arc By Center Point With Ends), is the intersection point computed:(a) analytically/exactly on the true circle equation, comparable to Esri's ArcGIS Pro "Curve Processing Method = Exact" environment setting, or(b) by internally linearizing/approximating the arc into line segments, finding the intersection on that approximation, and then reassembling the arc for the output — comparable to Esri's "Curve Processing Method = Approximate", where the doc
So I noticed that when using a parameterized INSERT statement in SQL Executor:INSERT INTO MYTABLE(FIELD1, FIELD2)VALUES ('@Value(FMEATTR1)','@Value(FMEATTR2)',)Any NULL becomes an empty string. How do I use logic like the above and still keep my NULLs? I've tried to wrap the entries in VALUES in case statements to catch NULLs and handle them differently - but to no avail.
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
Hi,I’ve created an FME workflow which successfully creates a csv and zipped shapefile and emails a recipient. However, I want to use the TempPathnameCreator so that the output files are wiped after emailing. I’ve adapted the workflow but it fails to create the files. On inspecting the rejected email output it couldn’t find the files in the temp folder, but when testing with just the writer 0 features are output. I assume I need a separate TempPathnameCreator for both zip and csv file or can they be in the same folder? Here is the final part of my workflow. Is my configuration wrong? Josh
Hi Community!I created some 3D vectors made up of three vertices, using the list of coordinates and elevations shown in the attached table. I created them using three Vertex Creators connected one after another.Now I would like to apply a scale factor of 10 to these 3D vectors, but I want each vector to be extended starting from its first vertex, i.e. from the coordinates (0,0,0), while keeping that first vertex fixed.What would be the best way to achieve this?Thanks in advance for your help!
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
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
I am using the same workflow that I used in my older version of FME workbench. When I update the FME workbench to 2026.2 I was started getting error in Line Builder. I have number of points that create a polygon. All the points are already sorted. Can anyone let me know is this the bug or something wrong. You can see in the screen shot like waylineid is common and wayjsonindex. if there are 96 features then there will be 96 way_json_index.Thank you in advance!@j.botterill @david_r @rylanatsafe
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
We have a hosted feature layer that we update via FME on a schedule. It worked fine until we made a view layer of the hosted feature layer. Now we get an HTTP Error Code: 400 saying 'Cannot remove Layer 0 from <layer name>. Layer 0 is referenced by view service <layer name view>.' In the writer we’re using Feature Operation: Insert and Feature Handling: Use Existing. We’ve also tried changing this to Truncate Existing which still didn’t work. What is the correct workflow for updating a hosted feature service if the feature service has view layers?
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
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?
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