Creating and organizing workspaces. How to use Workbench.
Recently active
I have an export of an MS Whiteboard in pdf form. (I also have the JSON and HTML. The JSON doesn’t store the note contents). PDF reader is spotting text, but I’m struggling to pull it out ‘per note’. Any ideas?
I have a workspace that reads an excel spreadsheet that contains 20,000+ rows with file names and paths to DWG files which works 99.9% of the time. The simplified process is as follows:Filter the list of files from the spreadsheet to remove certain filename patterns Read the dwg model space, but only keep lines that are on layers that starts with BND Test to see that they fit in a polygon using spatialfilter clean up attributers and write the results to shp fileFor some reason when it hits a certain file, the process stops when it hits an error (even it is set to continue on rejected feature and ignore failed readers is set to Yes. I have attached a zip with the log file as well as a FFS file it create which contains a single line that doesn't appear to be anything unusual or unexpected. My work-around for now is to skip the offending file by using the “features to read” settings on the reader. Given that there are 20,000+ files, I tend to run 5000 at a time.
I want to change paths for readers in multiple FME workbench files and Ive been trying all day without success to do so without doing it manually. Does anyone know how to do this :) ?For example from \\192.168.221.35\ftp\hofn\Höfn-skolplagnir.shp to \\192.168.221.50\ftp\hofn\Höfn-skolplagnir.shpwith the only change being the ip path from ending at 35 to ending with 50 but for multible at once :)I already tried changing in Notepad as suggested here with all the paths but it doesnt work for some reason. Also consulted chatgpt for Powershell scripts of different variety...Thank you for reading :)
Hi All,I have a folder of csv files with the naming convention like this : Insp1.csv, Obsv1.csv, Insp2.csv, Obsv2.csv etc etc.I have written a workbench to read in Insp1.csv and Obsv1.csv and derive the outputs i want. These csv files are pairs and both are needed to create the output. I have a folder of many InspX.csv and ObsvX.csv files that I want to process. I have set up a Directory and File Pathnames reader than I think I want to pass into a workspace runner that calls the workbench to process the files with parameters. How to I get FME to iterate over my files and each time the runner is called iterate to the next pair of csv’s? ie first time is run use Insp1.csv and Obsv1.csv, the second time use Insp2.csv and Obsv2.cvs etc etcMany Thanks Goatboy
I was having a bit of a poke around with how Workbench calls the AI APIs and noticed that the method of sending the workspace was to first convert it to graphviz format. I had initially thought the fmw would’ve been passed and parsed instead,Converting to graphviz is a pretty cool step and could be used when producing reports or documentation on workspaces. I know people have asked for similar functionalities in the past re exporting the workspace as a graphic: Is that conversion something that the end user can tap into? I’m going to shamelessly tag @rylanatsafe @mark2atsafe and @NickAtSafe here, as while they might not be the people directly responsible for answering such a question, I feel like they might be able to point this question in the right direction!
I would like to use the AI assist feature in a programmatic way. Is this possible?Currently it is available only as a GUI inside FME workbenchI would like to provide a prompt + workspace file, call an API, and then get a response based on the workspace context
Hi,Situation - Oracle Writer will not work, so I need a workaround to overcome this. The tables in the workspace have many attribute fields, 2100 or thereabouts, and the Oracle writer falls over. 😕 Safe recommend upgrading to a newer Oracle, so the client will get that sorted eventually… but meanwhile I need to get the workbench working.The workbench prepares delta files to be written into the Oracle db. Once the data is ready for writing to the db I have used FeatureReader to read 13 Oracle tables into the workspace, then use a FeatureMerger with the existing workspace table to identify if the features already exist in the 13 db tables or not. If they are UsedSupplier they exist and are then designated to be an “Update”, if they are UnusedSupplier then they are new features and are sent as an “Insert”.As a further complication, we need to write to CSV files to overcome the issue with not being able to write to Oracle from FME. So we need a batch of csv files for Insert, and another f
Using FME Flow with Esri ArcGIS Software – FME Support Center If you are using version 2025.1+, you must download the Esri ArcGIS Connector from the Hub and use the new readers and writers. Workspaces authored in previous versions will need to be upgraded. For steps to upgrade, please see Working with Esri ArcGIS Feature Services in FME. Am I interpreting this statement correctly? There is effectively no backwards compatibility in 2025.1 for workspaces that connect e.g. to an ArcGIS portal?
Hello everyone,I have a question regarding a workflow/tool. I work in the railway sector and would like to automatically place overhead line masts on points and then rotate them in the direction of the tracks so that they stand perpendicular to the track axis. I have an FFS file of the 3D object, a point file, and a polyline that represents the track centerline. The placement of the 3D object works perfectly, but I'm having trouble rotating the object as desired.At the moment, I’m using the "NeighborFinder" tool to obtain the track alignment information, then the "CenterPointExtractor" tool, and finally the "3DRotator" tool to rotate the mast accordingly. I do manage to rotate the masts, but not in the correct direction so that they are perpendicular to the track axis.Does someone has an idea how I could proceed?Thanks in advance and best regards
The AttributeValidator fails nulls when validating for various types. Most of the time I would like it to pass nulls.The obvious work-around is using the NullAttributeMapper to map nulls to some acceptable value for the validation but:a) this is a pain because you have to do it for all attributes you want to checkb) you have to change these values back to null afterwards so as to not send spurious data to the writerAny more elegant way to do this?Perhaps a custom transformer to do the work-around and the AttributeValidator within?Or should this be an “Idea” for the AttributeValidator, i.e. Option: pass nulls?
Hello:)This is incredibly petty, but as someone who lives in a country where “Commonwealth English” is the standard for spelling (and not the Simplified English of North America), I wondered if there’s a switch in the UI somewhere so that menu items and transformers are spelled correctly (correctly for me). For example: the NeighbourFinder, which, as is pointed out in the docs, is an alias of the NeighborFinder. I’m waging my own campaign against the normalisation of N.Am. English in software across the English-speaking world.
If you’ve watched my FME Realize video, you probably noticed a sleek toolbox full of colourful buttons that launch different experiences like attribute popups, videos, inspection forms, and more.🎥 Haven’t seen it? Here’s the link — grab popcorn, it’s about 9 minutes long 🍿These buttons aren’t part of FME Realize by default — they’re generated entirely using an FME workspace. To make it easier for you to create the same kind of toolboxes in your own FME Realize projects, I’ve created a custom transformer called HTMLToolboxGenerator.What it does:Outputs clean, mobile-friendly HTML with up to 9 buttons; Lets you define button names, icons, colors, and links via parameters; Optional dynamic filtering: you can show only the relevant buttons per feature type (e.g., a catch basin might only need three buttons, while a hydrant might need six).Even though it’s designed with FME Realize in mind, it produces standard HTML, so you can also use it in any web context where a small, smart launcher
I’ve recently faced the conundrum of how to ‘spell’ workspace - is it with a capital ‘W’ or is it a lower case ‘w’.🤔🤔I can see arguments for both sides. I think it’s pretty unanimous that Workbench is a capital ‘W’ as it is the name of the application, but what are your thoughts on ‘workspace’? For example: Ensure Workspace properties are filled out to provide context to users reviewing or supporting Workspaces. The Workspace description provides an overview of the purpose of the Workspace. The Workspace name provides additional context to the purpose of the Workspace. OR Ensure workspace properties are filled out to provide context to users reviewing or supporting workspaces. The workspace description provides an overview of the purpose of the workspace. The workspace name provides additional context to the purpose of the workspace.
Hi, I am trying to insert feature from DWG format to GDB (with existing schema) .While translating I am getting following error. Kindly let me know how to avoid this error. FileGDB Writer: A feature could not be written+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Feature Type: `RD_Road_Infra/CURBSTONE'Attribute(string: UTF-8) : `filegdb_type' has value `geodb_polyline'Attribute(string: UTF-8) : `fme_color' has value `1,1,0'Attribute(string: UTF-8) : `fme_feature_type' has value `GIS_DROP KERB'Attribute(string: UTF-8) : `fme_geometry' has value `fme_line'Attribute(entangled: string: UTF-8): `fme_type' has value `fme_line' entangled to filegdb_typeAttribute(string: UTF-8) : `multi_writer_id' has value `0'Coordinate System: `'Geometry Type: IFMELineNumber of Coordinates: 2 -- Coordinate Dimension: 3(370808.8449767388,2682910.8213489666,271.036)(370808.4028391096,2682894.483091897,271.015)=============
Hi, Screenshot sample of data above: Essentially I have a csv with several sites (columns C-G), to import this data into the software I use, I need to import one site at a time, so i’m looking to split this csv into several csvs which contain the date time columns and then one site column per csv. I can do this in a convoluted way, using multiple attributekeepers to split the data, is there any quicker way to automate this? Thanks
I'd like to understand what this error means in the following context and how I might go about resolving it. I have a workspace that works perfectly fine if I run using cached features up to transformers just prior to a FeatureMerger then run from the FeatureMerger to a writer. However, when I try to run the entire workspace it results in an error that aborts the translation at the writer. I've also tried many other methods of joining these 2 streams and all are resulting in the same error output. MULTI_WRITER: No MULTI_WRITER_TYPE{*} or MULTI_WRITER_TYPE{3} was specifiedIt seems like I need both streams to be ready at the FeatureMerger at the same time but I have not been able to gain control over execution order or block passthrough features through a variety of attempts. The goal is to read from both a CAD model and a DB, then compare the two datasets on a unique key, then write an SQL statement to a text file or SQLExecutor. I've only attempted this with the text file writer while
No bookmark navigator in 2024.2Bookmark navigator in 2023In FME 2023.2, there was a "Show Bookmark Navigator" checkbox under Tools → FME Options → Toolbars.In FME 2024.2, this option seems to be missing on my system. We're in the process of switching versions and noticed it's no longer there.I use this feature frequently to quickly navigate between bookmarks in large workspaces.I've attached two screenshots showing the difference between versions.Has this functionality been removed, renamed, relocated or is this a bug?Thanks in advance.There is no additional detailed info in the docs:https://docs.safe.com/fme/2024.2/html/FME-Form-Documentation/FME-Form/Workbench/options_toolbar.htm
Has anyone else had any issues with the SubstringExtractor in FME2025? I have a process that works in an older version (2021) but in the 2025 version I am seeing a different behavior.Wanting the last 7 characters in a string I used a Start Index of -7 and an End Index of -1. This worked in FME 2021. When opening the workspace in FME 2025, it initially works, but when I upgrade the transformer from V2 to V3, it then returns no value. I created a new blank workspace and added a brand new SubstringExtractor in 2025 and saw the same result. It seems to work selecting values from the start like Start 4 End 7, or Start 2 End -1. But having the start be negative seems to always return no value. The change listed for the V2-V3 upgrade was adding bulk mode support.Hoping I am just missing something/doing something wrong here.Version is 2025.0.1.0Attached is a version of the workspace with the transformer not upgraded, that way you can see the before and after by just upgrading it on your end if
Anyone ever developed a VS Code “language” for FME logs files? Years ago somone - I wish I could remember who _ did this for NotePad++ and it was awesome.The defaul VS Code log view is actually not bad so this is really a - “would be nice”
I am trying to use a template file in an excel writer for my data. The data is collected from a number of sites, so I was aiming to use the site id attribute as the sheet name to export a new sheet per site. Unfortunately the template is only being used for the first site which passes through my writer, and the other sheets are unformatted. Has anyone encountered this and found a solution to apply the template to all sheets if multiple are being written in the same feature writer?
Hello! I’m trying to figure out the best way to aggregate values by the most common words. I’ve found a few threads and documents but not quite what I was looking for.For example, I have a list of building names and numbers where each entry can have a of variation of a building name and number: “1000 The Coolest Building Ever”“1000 Coolest Building”“Coolest Building”“100 Coolest Building Dr.” I would like the output to be “Coolest Building”, as it has common base words across all features. Is this possible? Bonus point if a variation of “Bldg.” “Bldg” can be included. Any advice/guidance is appreciated!
I built a dynamic workflow to change a attribute for CSV file. It turns out that the attribute name is changed but without value in the output CSV file. Please could you help solve the issue?The input CSV file and workbench has been attached with the post.
I know I can restart a map service in ArcGIS Server Manager. Is it possible to restart a map service in ArcGIS Server using FME? if yes, how is this done?
FME 2025.0.2.0I’ve built an embedded custom transformer which uses a web connection as a parameter.When I initially use the custom transformer in my workspace I’m able to specify a deployment parameter for the value of the web connection.e.g. However, as soon as I close and re-open the transformer properties the connection becomes invalid and the OK button is disabled: It’s not possible to re-assign the deployment parameter as the connection value unless I first clear it, then re-add it.I’ve tried various workarounds (e.g. creating a standard published parameter to hold the deployment parameter value) but I can’t get this to behave like I think it should.Has anyone been able to successfully use deployment parameters for web connection values in a custom transformer?Also, not sure if it makes a difference but I’m using a custom web service for my web connection.
Is there any way to get the “path” of a transformer so that it can be reported for a custom error logging solution. The standard FME log file has this information but I can’t find any way of getting at it inside a workspace.For example, in the image below we can see log lines being reported from a ParameterFetcher transformer which is inside the Log_Error custom transformer. If I could even just get the name/instance of the custom transformer that would be helpful but something really useful would be to have access to the <prior> transformer.I’ve seen some other posts on this topic which talk about hard-coding log messages but it would be nice to have a more automated approach and those posts are all from before Safe changed the way log files work to include the links to the transformers….I guess what I’m really looking for is access to something like the FME equivalent of a stack trace from any point within a workspace.