A space to discuss FME Form
Recently active
I quickly became a big fan of the recently introduced in-canvas looping functionality in FME. Here is one workflow where loops make things particularly elegant: building geometry from list attributes without first exploding the list into separate features.In this example, each list element contains a coordinate pair such as [500,611]. Before the feature enters the loop, ListElementCounter records the number of elements. On each iteration, we use the iteration number to retrieve the corresponding pair, extract its X and Y values, and create a vertex.The expression used for the JSON Document parameter is:@Value(_list{@Evaluate(@Value(_iteration_num)-1)})We subtract 1 because FME list indexes start at zero, while the loop iteration number starts at one.Every generated vertex leaves the loop and goes to LineBuilder. At the same time, the feature goes to a Tester, which compares _iteration_num with _element_count. While the values are different, the Failed port sends the feature back for an
Dear FME colleagues, I am working on a workbench that needs to read an Excel file and keep (write out) only those attributes listed in a second Excel file. The workbench must be fully dynamic; this means that after publication and scheduling on FME Flow, the user only needs to maintain the second Excel file to generate the correct output. To do this, the user simply needs to indicate in that Excel file which attributes should be kept and which should be removed. I haven't quite managed to configure this yet!Can anyone point me in the right direction? I’ve tried using the SchemaMapper and AttributeManager, as suggested in other articles, but I haven't quite succeeded.Below are screenshots of both Excel files: the first shows a portion of the data (128 attributes in total), and the second image is an example of the attributes that need to be kept or removed.
Hi. We're looking for some clarification on the virtual memory values being reported by FME Form and whether they are expected. On a Azure Virtual Desktop (AVD), Windows System Information shows:Disk: 128.00 GB Drive C: Total: 126.45 GB Drive C: Free: 36.37 GB Physical RAM: 64 GB Page File: 9.5 GB Virtual Memory: 73.5 GBHowever, FME Form 2026.2.1 reports the following in the logs:System Status: 36.38 GB of disk space available in the FME temporary folder (C:\Users\LOCAL_…...\Temp) System Status: 63.99 GB of physical memory available System Status: 255.98 GB of virtual memory availableThe physical memory figure appears reasonable, but the virtual memory figure is considerably higher than the virtual memory reported by Windows.Our concern is whether this is simply a difference in terminology or metrics, or whether FME is using a different definition of "virtual memory" than Windows System Information. If FME genuinely believes more memory is available than can actually be committed by th
When we’re using FME Flow as our Connection Store. We’ve been noticing that some parameters of webservices start to disappear or change. Examples: Redirect URLs go blank, configuration of headers change, etc. We’ve been seeing this phenomenon in our AGOL web services and SharePoint List web services. Has anyone else seen this type of behavior?Here is our setup:FME Form/Flow: 2025.1.2 (Build 25630) FME Flow is a distributed deployment (1 core + 5 engine machines) Accessing FME Form (and the Connection Store) via Citrix/Azure Virtual DesktopTo resolve the issue: We either have to fill the in blanks/fix the issues or drop the web connection and web service completely and start from scratch.We’re just trying to understand what might be causing this.Thanks in advance!(I am sure this isn’t the correct Category, but nothing else fit as an option here.)
I've got a few challenges concerning styling of an excelsheet. It's not just an ordinary sheet with columns and rows, but it's a reporting template. The report contains several attributes in different fields and several images. The issues/challenges I'm currently facing:I would like images to fit itself into a named range or predefined rows and columns. See screenshot below. I created a predefined named range ‘overzichtskaart’ which covers cells $C$4:$E$16. But as far as I can see there is no option to let FME/Excel know that the image should stay in those cells. I created a workaround now which tells the image that it should align in xlsx_row_id 4 and xlsx_col_id2 with a height and with of 255 pixels. But this goes wrong as soon as the alignment of the attributes changes (for example multirow text in column B). Does anyone have a smart work-around to fit the image exactly in the desired cells? Named ranges are useful to make sure that the attribute-data ends up in the right cell, but
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
Hi,I tried this through the V4 REST API, but when I add a conditional statement to the Request URL, I’m seeing <not specified> in the Request Preview for the URL.I also noticed something in the Automating FME Flow App Customization article. They created a user parameter named SOURCE_FILE, but in the Request URL they use UPLOAD_FILE.Could you please clarify why these parameter names are different and how the conditional statement should be configured in the Request URL?Thanks!
Looking at the new Define Read Criteria By: Custom Query option in the FeatureReader in 2025.1I feel like there should be a warning against using Define Read Criteria with Esri Geodatabase format as it uses sql and bypasses specific SDE functionality.
I’m using FMW Reader to read and analyze FME workspaces, and I have a question about custom transformers.There is an attribute called Custom Parent Name. When this field exists, it shows me the connection to the custom transformer inside it. However, how can I determine whether that specific custom transformer is enabled or disabled in the main FME workspace?For example, suppose an FME workspace contains multiple instances of the same custom transformer, such as: LineDivider LineDivider_2 LineDivider_3 The Custom Parent Name attribute may contain only LineDivider, without the _2 or _3 suffix.In this case, how can I distinguish which specific instance of the custom transformer the connection belongs to?More specifically, how can I reliably identify: The exact instance of the custom transformer in the main workspace. Whether that specific instance is enabled or disabled. The relationship between the transformer instance and its Custom Parent Name, especially when multiple instanc
I have created a very simple workspace with a creator which creates a line and writes it to a GeoPackage using a FeatureWriter.The line is 2D, no measures, but the geometry type in the resulting GeoPackage is reported by ogrinfo as “3D Measured Multi Curve”.I would expect the result to be a 2D LineString instead - or maybe just LineString. As seen in the image I have exported the geometry to WKT and it indeed reports it as “LINESTRING (400000 6040000,900000 6400000)”.Is this the expected behaviour and is the FeatureWriter geometry type detection headed towards the broadest category for data instead of a more narrow approach?The test has been done using FME Form 2026.2 (26333) on Windows.
Have a WKT csv, with lines like these two: MULTIPOLYGON (((3.751446328848148 51.09789238333794,3.7514744771186774 51.09785395106413,3.7515454118479563 51.09787454834335)),((3.7486227439488014 51.10188366613414,3.7471867226749627 51.101468672794745,3.745208081250554 51.1041693453312)));2003001POLYGON ((3.743757864908372 51.08620899834685,3.744266505912946 51.0833952986076,3.7433015994552856 51.08332946064444));2003002However, the receiving software can only handle multipolygons. So in the second line, I need to replace “POLYGON” bij “MULTIPOLYGON” (which is easy), but also the two opening round brackets “((“ need to be replaced by three opening round brackets “(((“ and the same for the closing brackets.I don’t seem to find a way of escaping the brackets. Even in regex expressions FME interprets the brackets as real brackets and not characters to look for.Can anyone help here?
I'd like to read a DGN file, which contains a terrain model. In version 2025.1.2 it is being read as igds_polygon_collection. The fme_Geometry is “fme_undifined” and the fme_type is “fme_no_geom”.When using a Civil 3D file, it can read a surface model, which is the same principle as the terrain model in a DGN. The terrain model is created in OpenRoads.Or is another option available to read the terrain model directly from a DGN file without converting it to another fileformat or element type?
I want to calculate upstream and downstream distances along river polylines between barrier points. I’ve got as far as generating a topologically correct river network divided at barrier locations, river intersections and junctions complete with network_id. I’m stuck on the next steps! The main challenge is what to do upstream when a river branches out. Any help would be greatly appreciated! Process so far
I have a QGIS .model3 file that uses PostgreSQL tables as its inputs and writes to other PostgreSQL tables as its outputs. I am having trouble getting this model to run as part of an FME Workbench.What I have done so far:Copied the tool parameters from the QGIS graphical interface (Advanced > Copy as qgis_process command) Edited the command so that “--” only appears in front of the first parameter Added “” around each PostgreSQL parameter as they contain spaces and special characters and were causing Invalid parameter errors in Windows command prompt Thanks to these changes, running the tool with qgis_process in Windows command prompt no longer throws invalid parameter errorsThe tool fails silently through the SystemCaller transformer in FME.In Windows command prompt, the parameters now seem to be read properly but I am now getting “File could not be found” for PostgreSQL addresses.Still in command prompt, dialing psql first with my database credentials makes it say \PROGRA~1 is an
I have ArcGIS Pro Data Interoperability Extension. Within the last couple of days, it keeps stalling at the start screen “Checking License”. I know I have a license! And it works sometimes…without any trouble. If I Restart my PC, it opens fine, but if I try to run a reader (excel, csv), that is stalling as well. Even though these are small files, they just don’t come in. I’ve tried starting/stopping/pausing/purging, etc. The only thing I’ve been able to do to get the Extension to open again, is to do a cold boot of the laptop.Is there some other cache somewhere I need to clear out? (I’ve cleared the cache from within FME Form itself) several times, but then end up rebooting anyway. I’m relatively new to using FME, but these files are quite simple with only a couple thousand records. I tried to read both as .xlsx and .csv today. Could this be an issue with a log file filling up? Thanks for any tips/suggestions.
HelloWhen reading a Utility Network feature service on ArcGIS Enterprise from FeatureReader using the Esri ArcGIS Feature Service format, only 2000 rows are returned. No errors are shown in the translation log (scrubbed and attached, using package version 3.25.4). There are no AGS Log entries to indicate an issue on our side. This issue was not present with package versions 3.22.0 and 3.25.1 Environment: ArcGIS Enterprise: 11.3 FME Form: 2025.1.3.0 (20251001 - Build 25643 - WIN64) FeatureReader Version 16 Esri ArcGIS Connector Package: 3.25.3, 3.25.4
I need to download multiple files and folders from SFTP to a SharePoint folder. The SFTP connection uses a custom port and a private key file (.ppk) instead of password. How to achieve this via FME 2026.2?
I have thousands of lines in an old geodatabase with an attribute new_uidnow i got a new geodatabse with the same lines and some new and some edited but without this new_uid attributeso every line which is nearly exactly the same geometry should get the new_uid attributei solved that with the EXACTLY same geometry but some are not exact the same again and the matcher or spatial relator doesn’t work for these an example in the screenshot...how can i get the right result when i will tell to take the line which is nearly the same length (means with a condition)...the text are the length attributes…...the long lines in the middle didnt match because of minimal length differences….how can i make them match?Thank you and greetz Franco
On FME Flow we added a Network Based Resource. In FME Flow, I can see that the system path of this Network Based Resource is characterized with a parameter, e.g. '$(My_Network_Based_Resource)'. I had some trouble on using that parameter in a workspace with FME Form Workbench. FME Form is not aware that this parameter exists, and upon using it in e.g. a path reader.Is there any way that you can expose additional FME Flow parameters to FME Form Workbench? As a workaround I was able to use a ParameterFetcher, and then feeding in the attribute value of the Network Based Resource into the FeatureReader, but that seems not ideal. Also, the ParameterFetcher does show a Red Cogwheel, because it is not aware of the parameter. Another alternative is probably to create an additional 'FileURL' type of parameter, and set the (default) value for that parameter to '$(My_Network_Based_Resource)'. However, also here it seems that you are then forced to make the FileURL parameter
Learn From My Mistake:We have a line of business system that is difficult to “pull” data from. I did, however, discover that it has the ability to generate and email data extracts on a schedule. Combine this with the ability to email files to our FME Flow Server, and the job became doable. The only minor hang-up was that the system could only generate these extracts in XLSX format. “No problem,” a more naive me thought, “I can use an Excel reader to pull this tabular data out easily!”The process worked great for our smaller datasets (< 10k rows) and ran most jobs in less than a minute, so I began exporting more data this way. Fast forward a little bit, and I discover that some of my newest extracts are taking up to 4 HOURS to process. Slightly panicked, I disable the extracts and dig-in. Looking at the logs, the workspace first seems to be lagging on a PythonCaller I was using to massage the data after extraction, so I re-tool it into using vanilla transformers. Test locally - works
I have a dynamic workbench that gets passed in an encoded SQL statement to read data from an Oracle database and then pass that data to a local ArcGIS Geodatabase.The problem I am having is that the data types in the schema are not being maintained when passed through to the ArcGIS Database.The data coming in has all the correct schema i.e. dates, numeric, text, etc fields and nothing too complex of large.The writer is using a dynamic schema setting as no single SQL query has the same data types.There are a set of fields that need to be set to a specific data type and fortunately these are common across all datasets but these are also the fields that are not holding their data type.For example I have a field called Owner1 and it needs to be a number fields as when populated it stores an ID that can be used to relate to another table but because this can sometimes be null ArcGIS treats it as a text field and as such the relate fails in ArcGIS. In the simplist form it is just a data in =
Hi everyone,I am working with the PDFPageFormatter once again. It is frustrating that I cannot figure out why the elements in my Layout don’t appear where I want them on the page. In order to have an acceptable looking map upon export, I basically have to do trial and error with the placement in PDFPageFormatter, and not follow the page dimensions at all. Why is this the case with this transformer and is there a fix?I am using 2026.2.1.0 (20260806 - Build 26345 - WIN64) but I’ve had this same issue on basically ever version I used.
Hi :)I’m trying to add the vector map from basemap.de as my background map for exports in FME 2026.2. However, I cannot make it work. I used the following link and MVT as my feature reader.I get an error regarding a missing API key. Has anyone ever used basemap.de as their background map and can tell me if there’s a simpler way to add it (and also be able to crop the data to my AOI before reading all of it, which covers the entire country), or if I need to somehow request an API code to use this map?Here’s the link (which I am also not sure if it’s the correct one):https://sgx.geodatenzentrum.de/gdz_basemapde_vektor/tiles/v2/bm_web_de_3857/bm_web_de_3857.jsonThanks!
I current have a workspace reader that reads all of fmw files in a selected folder and use the WriterFeatureTypes to find all names writers in each fmw file being read.But when I run it, it produces errors and warning messages that aren't relevant to the writer (screenshot below).Since I only wish to know the names of the layers that the writers in each fmw file writes to, is there a way to avoid reading other information about the file such as the transformers to remove getting these errors/warnings and improve the runtime?
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