Using transformers to modify data.
Recently active
Below is a screenshot of my workspace that creates a new feature class (AttributeManager_6_Output). This feature class will be edited by end users in ArcGIS Pro. I need to bring that feature class back into the workspace and join it back to caputure those edits. My problem is that some of the attributes will be updated upstream as well. I need to capture those edits as well without overwriting the end user edits. How am I able to set the attribute conflict independently (some attributes from Left and some from Right) in the FeatureJoiner?
Hi all,I’m encountering an issue with the InlineQuerier transformer in FME Form 2024.2.1 (pre-production environment) that seems to differ from previous behavior.(FME Form 2024.1.3 in developement environment)🔧 Workspace Setup:The InlineQuerier has two input ports:tubes (can sometimes receive no features)parametre_generique (always receives data)I’m using this request :❗ Problem:When no data arrives at the tube input port, the transformer throws the following errors:InlineQuerier_2 (InlineQueryFactory): Generating output 'tubes_statuts_inactifs' using query 'SELECT * FROM "tubes"WHERE ( UPPER("statut_administratif") NOT IN ( SELECT TRIM(UPPER(value)) FROM "parametre_generique", json_each( '["' || REPLACE("valeur_parametre_text", '|', '","') || '"]' ) WHERE code_parametre = 'STATUT_ADMINISTRATIF_RETENU_TUBES' ) OR UPPER("statut_operationnel") NOT IN ( SELECT TRIM(UPPER(value)) FROM "parametre_generiq
Hi,I have run into behaviour in FME Form that I don't understand. I want to read an OGC API (WFS3.0) point features from any of these collections ( https://api.pdok.nl/lv/bgt/ogc/v1/ ) within a bounding box that I create based on input features.I dynamically create a bounding box (my random example: 6.7337723637079705,53.153741409492596,6.742906946412802,53.15869110582926 ) in a workflow before the FeatureReader.When I add the featurereader without any collection query parameters and save it so it generates the output port. And then I open the parameters and set bbox to the attribute value from the bbox (and also ‘limit’ to 1000). These parameters are not applied and used. Only when I regenerate the output port it applies any HARDCODED values. I cannot feed any dynamic value from a user parameter/attribute.If this is intended behaviour in FME: why? It seems so unnatural to not be able to dynamically feed the query parameters.Hopefully someone can help me out!
I have got an inital line featureclass from which I make a new one with splitted the lines, based on a measure table (MeasureGenerator, FeatureMerger, Snipper). I want to make a fme tool that can update this featureclass based on an updated measure table. I want to conditional handle the attribute values of all changes in the new feature class. Measure:0-2000;2000-4000;4000-8000 (measure in meters)Becomes Measure:0-1000;1000-2000;2000-2500;2500-5000;5000-8000Makes combined:0-1000;1000-2000;2000-2500;2500-4000;4000-5000; 5000-8000In the record of 0-1000 should be the attributes (Start, End, etc) of ‘Measure’ and ‘Becomes Measure’ so I can check from which former feature the new feature will get the attributes. This will be based on the largest overlap in length. I have tried this with the LinOnLineOverlayer. Here the line output does not give the answer and the point output gives all the answers except for when the endpoint is the same (0-2000 and 1000-2000).How should I do this? Am I
Happy May Day!This works in 2024-2025 and breaks at 2026.1.I have several autocad format attributes selected (confusing methods to select see below). I go through many transformers and can see those same format attributes (1 for example autocad_entity_handle) all the way up to and including the attributemanagers (pictured). But looking in the attribute manager (This was an issue before upgrading the attributemanager transformer and is also an issue since I have upgraded the attribute managers). Many of the format attributes are gray. 1.What is the significance of this?Why if the autocad_entity_handle format attribute is enabled does it show as “not found” (red)?
Hello,I am trying to create a workflow reading a file from one path, rename to respect Autodesk Forma naming convention and upload to the Autodesk platform with a new name.However, I can only input the existing full path (so with the not yet adapted name) in the AutodeskDocsConnector.I don’t want to create a local intermediate copy, and wish to run this on Flow later, any idea ?Thank you !
Has anyone else encountered issues with the FeatureReader now returning fme_basename and fme_dataset information in 2025.2.1?In 2024, the FME attributes that were returned automatically are fme_feature_type, fme_geometry and fme_type. fme_basename and fme_dataset were only returned if they were set under Additional Attributes to Expose.In 2025, the Feature Reader returns both fme_basename and fme_dataset.This can cause issues where a workspace is merging data and it’s assumed the attributes coming from the Feature Reader don’t have these attributesJust to complicate matters further, a workspace written in 2024 but run on FME Flow 2025 follows the 2024 behaviour. If you download that same workspace and run it on FME Form 2025, the behaviour is different.
I am using the Esri ArcGIS Feature Service Writer to write to ArcGIS Enterprise (11.*). The writer is set to truncate the existing data and writing the data as such goes without any problem.However, when looking at the attribute table of the Feature Service Layer I can see that some of the timestamps are wrong.To write timestamps to the existing Feature Service Layer I am converting the timestamps to Unix epoch time and multiply by 1000 to get my milliseconds.Quick example: 2025110163722 → 1762011442000When writting data to the Feature Service Layer the attribute for the Unix epoch time is set to type ‘Date’. For the majority of the data the resulting timestamps in the Feature Service Layer is correct, but e.g. in case of the example above the epoch time is interpreted as:1762011442000 → 1/14/1762, 8:53 PM.I checked if there are leading or trailing white spaces… nothing the Unix timestamps in question are just like all the others where the interpretation goes well.I have to admit that
Hi,I am having difficulties using the revit styler. I am feeding it 50 point features which get their own individual rotation value. But when I check the objects in revit, the rotation is slightly off. Sometimes by 20 degrees sometimes more. When i compare the correct angle in revit and compare it to the value i have in FME, I can see that they are correct but something is happening either when I use the revit styler or the writer that messes upp the rotation. I am rotating around the axis x= 0, y=0, Z=1. Any ideas why it is behaving like that? Am i missing some setting somewhere? Thanks for all advice!
I am really stuck on trying to cut some labels that overflow my frame when using the PDFPageFormatter. I have a bounding box which is used as the clipper extent for my data. It clips my lines, my points, but not my text labels. I guess that has to do with the fact that the anchor point is inside the frame, while the labels are too long and go over the clipping box, and don’t have real geometry. I have tried TextStroker - that does cut my labels, but they are not keeping the symbology I added + in a PDF, they are no longer selectable or searchable (I need them to be). I also tried buffering, but that will innevitably also discard labels that are supposed to be in the frame. In the PDFPageFormatter, I also set the “Clip Input Features” = Yes. I have had the same problem in FME 2025.2.3.0, FME 2026.1, and now in FME(R) 2026.2.0.0 20260401 - Build 26291. Updating did not help.Even if I tried to mask the overflowing labels by creating a thick white border around the map, the problem would r
Asking on behalf of a customer (but it may benefit others as well).They've recently upgraded FME and get an error in a workspace log: DeprecationWarning: FMECurve.snip() is deprecated and will be removed in a future release. Use FMEGeometryTools.snip() instead.After some digging we found it's in a PythonCaller inside a Custom Transformer (the LineDivider, created by @takashi in 2014).The Python code is;import fmeobjects, mathclass LineDivider(object): def input(self, feature): is3D = (feature.getAttribute('__linedivider.dim') == '3D') mode = feature.getAttribute('__linedivider.mode') value = float(feature.getAttribute('__linedivider.value')) output = feature.getAttribute('__linedivider.output') for attr in ['dim', 'mode', 'value', 'output']: feature.removeAttribute('__linedivider.' + attr) coordSys = feature.getCoordSys() outputLines = output.startswith('Lines') outputPoints = output.startswith('LinesAndPoints') or
Hi, I have the following table. I want to remove all records which have a value 2 equal to value 1 of another record and a value 1 equal to value 2 of another record.I highlighted in blue the ones I would like to remove as they match the removal criteria, e.g. id no 4 is matching criteria when compared to id 1.What is the easiest way to remove them ? Thx.
Hi,Does anyone know of a transformer that is able to handle SEG-D files? (not SEG-Y). I want to be able to read in a file, filter for specific channels, then write back a new filtered file to the same directory. I thought it might be possible to run a python script that does something along these lines...so I thought id ask if anyone has done that first before trying to reinvent the wheel!Thank you,Regards,Karl
Hi,I use a JSONTemplater to make a geojson with nested attributes. It works fine. The only thing I notice is that I have a number in real32 (1.21) and when it comes out of the JSONTemplater it has the value 1.2100000381469727. The extra decimals apear out of nowhere. How can I change these back to the original? Or can I use some kind of casting? I use FME 2023.2.5.Thank you
Under path parameters for the reader it no longer has "retrieve file properties" which means I can't access the create date of files breaking one my workbenches. I tried using the filepropertyextractor transformer but its just too slow for the amount of files I need to read. Is there a way to fix this?
Hello everyone,I was wondering if it's possible in the Pythoncaller to check based on an user parameter (for example “database”) whether the database is avaibable in the user's database connections (FME Options > Database connections). I was looking at Connections — Python FME API FME 2026.1 b26103 documentation, but I don't really get wiser which functions to use.
Hello,I have a workspace in FME Form that reads a large number of tables from a PostgreSQL database and writes them into another PostgreSQL database with the same schema structure but without data.Workspace designI use a FeatureWriter configured for PostgreSQL with the following settings: Table name is dynamic and taken from the incoming feature type: Table Name = fme_feature_type Attribute Definition = Automatic The destination database already contains the tables (same structure). Each feature is therefore written to the corresponding table in the destination database.Behaviour in FME 2023.2With FME Form 2023.2, this workflow works perfectly, even though the tables do not all have the same attributes.Behaviour in FME 2025.1.1When running the exact same workspace in FME Form 2025.1.1, I now get the following error:POSTGRES Writer: Cannot write to table 'enu_cad_caracteristique_constructive'. No valid columns providedWriter failed in write() callPOSTGRES writer: An error has o
I am trying to allocate civic numbers to parcels on either side of road (mostly curved). For this, I first need to sort the parcels (or parcel centrepoints) along the distance from the first vertex of the street, to help develop the sequential numbering. Parcels already have their nearest roads by neighbourfinder. And roads have their first vertex from the coordinateextractor. Both parcels and street segment run parallel here. Tried using Measure generator and extractor but I am getting NAN outputs. What other transformers can I use ?
Hi thereCan anyone offer guidance on how to remove three stray vertices which remain after using the Dissolver transformer, please?Many thanks.
Hi everyone,I have a set of N points that I would like to generalize as follows :Generate Voronoi diagram for the set ; Eliminate the point with the smallest Voronoi cell area ; Redo the same process (generate Voronoi diagram for the remaining points then eliminate the smallest one) until 30% of the points are eliminatedI have tried to implement the process in FME but got stuck on how to do it using a custom loop transformer and how to implement the 30% threshold that depends on the number of features entering the transformer.Any help is much appreciated.Many thanks.
Good day, I am currently using a LineCombiner with Attribute Accumulation > Accumulation Mode set to ‘Use Attributes From One Feature’.How does FME decide which feature's attributes are used? I couldn't find anything on this in the documentation.I used a counter (grouped by the attribute I want the lines to be combined on) before the LineCombiner to validate the outcome. I figured out in half of the cases it used the first feature, for the other half it used the last or some feature in between. How I can influence which feature to use ? I want it to use the first feature always as I sorted them according to some rules.
I have been trying to setup the GoogleGeminiConnector in my FME Workbench to able to prompt and use the Gemini 2.0 Flash model to get me the results.Since GoogleGeminiConnector is a FME Hub transformer, the documentation is not friendly for a first time user of Google Gemini.The GoogleGeminiConnector makes use of the Google Gemini Web Service available on the FME Hub, which again needs some configuration.There are several things to be configured from the Web Services in FME to Client ID/Secret, using the on the Google Console and other configurations, some within FME and some outside FME using the Google Console.Due to the documentation is bits and pieces, a FME user is required to jump between various help documents and web pages.It will be good if Safe can provide a single page workflow, that lists out the steps in the correct order to be followed to make the GoogleGeminiConnector to successfully work in FME Workbench.TxSRG
Hello, I’m trying to upload attachments from AGOL to AGOL using process described in the article How to Use the ArcGISAttachmentConnector, I’m on FME workbench 2026.1On small test this runs fine, but when I start testing actual production feature services, I get errorThe ArcGIS REST API returned an error: HTTP Error Code: 413 : '' Message Code . Further details: 'The page was not displayed because the request entity is too largeI have tried by lowering the number of records per request in the readers to 500 and 300 but it failed.Is there a workaround for this? I do read all the records in; none are filtered (as I’m new to FME I stuck to the article). Would skipping the empty attachment records help? I feel it’s case where the mov files were attached that the upload failed, but I’m not 100% sure.
Initially, I tried using Onedrive connector>Folder to overwrite a folder (with two parquet files) however onedrive doesn’t allow this if the folder already exists.I then tried to delete the folder first. I wasn’t able to do that. The connector seems to use the id and this changes each time I recreate the folder. I get an id doesn’t exist type error.I’ve also tried passing a string as the path. Still no luck.Has anyone been able to overwrite files or folders successfully?
I am experiencing issues connecting to the USPS (Post Office) API using the HTTPCaller transformer. My objective is to query the API to validate ZIP codes and compare the results against a dataset I have uploaded into FME. I would also like to identify and flag any discrepancies between the ZIP codes returned by the API and those in my source data. I’m completely lost where i got it wrong. HTTPCaller (HTTPFactory): An error occurred while accessing the URL 'https://apis.usps.com'The below feature caused the translation to be terminatedHTTPCaller_<Rejected> (TeeFactory): HTTPCaller_<Rejected>: Termination Message: 'HTTPCaller output a <Rejected> feature. To continue translation when features are rejected, change 'Workspace Parameters' > Translation > 'Rejected Feature Handling' to 'Continue Translation''