A space to discuss FME Form
Recently active
We have a workbench that runs daily via windows task scheduler which reads data from an Oracle database and ArcGIS Online and then writes to SQL Server. The process has run for some time but the other day there were some issues with the output dataset. On viewing the log file, it appeared that only 2000 of aprximately 50,000 records were read from AGOL. However, there were no error messages to say that it han’t read the whole file. Is there an easy way to build something into the workbench to sent a notification email to check that the whole file has been read in to prevent this issue happening again? Thanks
Hi All,I have a complicated question. I created a custom transformer which can read any table from our Postgres/PostGIS database and write in into a list of desired formats (like Geopackage, Excel, Csv, FileGeodatabase).I have an issue when writing to Excel. A certain attribute is shown in a scientific notation. Ik know how to solf it in an none dynamic way. I could use an ExcelStyler setting the cstom number format to 0, or add an attribute xlsx_row_formatting or apply formatting to a attribute by adding an attribute <attrName>.formatting. I just can't figure out how to do this in a dynamic mode. I wish there was a excel writer to disable scientific notation, but there isn't. Any help or suggestions are appreciated. Arno
I have a schema JSON file that I want to use to validate various JSON files. What transformers can I use to perform this functionality? JSON Validator only validates syntax and not schema so what's the alternative for this?I have added pictures of the sample JSON schema and also the JSON file that needs to be validated against that schema.
Hi everyone!I’m learning about dynamic flows in FME and I’ve encountered two issues that I haven’t been able to resolve yet. I’m reading multiple .gpkg files from a folder, but in the output, all the data is saved in a single .gpkg file. I need FME to generate a separate output file for each .gpkg read. How can I set this up? When I insert the Attribute Manager and rename the attribute from acm_id to id, the values of that attribute (acm_id) turn null after the renaming, and the new attribute (id) does not appear in the final output file. Does anyone know how to prevent this from happening? Thanks in advance for any help or suggestions!
I have used a Directory and File Pathnames reader to generate an attribute holding file paths for the .xlsx files that I need to read in to my workbench. My plan was to use a FeatureReader to subsequently read these files in but I am struggling to get this to work.There are multiple worksheets in each .xlsx and I only need the contents of one - in all cases the applicable worksheet has the same name and an identical schema, the column headers are all on the same row as well.I haven’t been able to work out how to configure the FeatureReader as when specifying the dataset from an attribute the parameters to specify ‘Sheets to Read’ and ‘Field Names Row’ are not available.I would be very grateful for any advice - thanks in advance.
I’m currently updating all of our tools to a new input dataset. In the process, I’m relying on the transformers to tell me when there are issues with the new schema. The issue I have found is the TestFilter is not flagging these as Incomplete Transformers. Build is 25237, and all transformers are up-to-date.I want to believe I have seen this behavior on other transformers, but the TestFilter is by far the most prevalent case and has the potential to cause the most problems in our workflows.Is there a work-around to check for Incomplete Test Conditions? Original configurationWhen the connection is removed, the transformer does not become Incomplete. It’s only when you drill down into the Test Conditions that you see the issue.To rule out something weird going on with my workspace, I created a fresh test from scratch. The issue persisted here as well.
We are preparing to upgrade to FME Form 2025. I am running a job in the 2024 and 2025 version to compare the output. I have found that in 2024 the FeatureReader didn’t reject any records, but now in 2025 some records are being rejected. FME(R) 2024.1.3.0 (20240927 - Build 24627 - WIN64)FME(R) 2025.1.3.3 (20251104 - Build 25648 - WIN64)The rejected records say:fme_rejection_message buffer Coordinate system does not match first feature's coordinate systemfme_rejection_code buffer INVALID_GEOMETRY_COORDINATE_SYSTEM Any thoughts on why the records fail in 2025 but not 2024?I will continue working backwards to see what is unique about these records.
I have an existing process that processes versioned views from an ESRI SQL Server Geodatabase to another SQL Server Database creating SQL Spatial tables with a geometry column that I have reprojected to WGS84 Lat Long. Can I add a second geometry field to the SQL spatial tables and populate that column with Web Mercator geometry? I am trying to figure out a single workflow that would calculate both columns in the same table. Or am I restricted to calculating one geometry column at a time in separate processes?
Hello Hello,I would like to ask about Custom Transformers.I am a beginner and I am very confused. I have three questions.First question:When I input the value 345/1000 into a Custom Transformer attribute include field, it is automatically divided and get 0.345 as a result . I want to keep the value exactly as 345/1000.Even outside the Custom Transformer, the value is 345/1000. I understand that the Custom transformer is treating it as a number. I tried converting it to text before entering the Custom Transformer, but none of my attempts worked.@Text(@Value(attribute)) does not work.I also checked the shared parameter, and it is set as Text.and another issue if I have value 900 A , custom transformer read it as null .I do not know how to solve issuesSecond question:The Custom Transformer works correctly, but when I check the shared parameters, they all appear in red color in the Manage Parameters window. However, when I run the process, it reads the data and produces the correct output.
Hi, I have set the spike remover to 3D dimensions to read 3D solids however everything is being rejected due to - ‘Invalid Geometry Types’. Any ideas?
Hello, I am struggling with using the ArcGIS Attachment Connector to upload multiple attachments in an ArcGIS Online Feature ServiceI am able to add one attachment but for some reason it will not add multiple photos. This is for a Survey123 that I set up an automation in FME Flow with webhook to add certain features to a hosted feature layer in ArcGIS Online. It runs fine, adds the data, but the moment there is more than 1 photo that needs to be attached, it only uploads 1 photo. Any advice would be greatly appreciated. Thank you!Edit: This works perfectly fine on the workbench (it will add all attachments) but when I try to run it on flow, it will only add 1 attachment. I do receive the following error message: 158 2026-1-2 10:50:31 | Message Type: fme::internal::_v0::py::Exception 159 2026-1-2 10:50:31 | Python Exception <TypeError>: Unknown output tag 'Output' passed into pyoutput() 160 2026-1-2 10:50:31 | Error encountered while calling method `input' 161 2026-1-2
Why does XML header of the FME generated file displays the XML header as <?xml version="1.0" encoding="UTF-8" > instead of <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Hi everyone,I have a geometry problem in FME and I’m not sure about the best workflow.In the image below, the red point belongs to a feature that is connected to a black point (the black point is the reference).What I need to do is: Take the line highlighted in green. Starting from the black point, find a position 10 cm along the line. Move (or recreate) the red point exactly at that location — meaning: the new point must lie on the line, and must be 10 cm away from the black point. I know the relationship between the red point and the black point from an ID attribute, but my problem is:How do I calculate this “point on line at 10 cm distance” inside FME?
Hi, I updated a workspace from FME 2020 to FME 2025, and I have an error in 2025 that I haven’t in 2020, with the same input data.On the Excel writer, I get an error on a specific string regarding the validation as UTF-8.ERROR : XLSXW writer: The encoded string is not a valid UTF-8 string: 'S\x00u\x00r\x00 \x00c\x00h\x00a…….'Any idea why and how I can check the strings before the writer so it doesn’t stop the workspace with an error ?
Hi everyone,does anyone know if there is a way to write directly to an Excel file hosted on Microsoft One Drive, just as it possibile with a Google Sheet file?Thanks!
Hello, thereI would like to prepend one dataset with other datasets and return other datasets as output. Please refer to the screenshot below, this should be done with only one workbench. Highly appreciate your thoughts.
FME Form 2025.1SQL Query in SQLExecutor: SELECT * FROM table_name WHERE ID BETWEEN $(polystart) AND $(polyend);Oracle tableWorks fine in DBeaver with actual ID numbersFails in FME with actual ID numbersFails in FME with User Parameters for the numbersError Message:Execution of statement `SELECT * FROM table_name WHERE ID BETWEEN 35480 AND 35484;' did not succeed; error was `ORA-00933: SQL command not properly ended'.Does FME just hate a BETWEEN statement?Going mad trying to figure out where I am going wrong 😂
I try to find a text ending with a newline. Using the inbuilt regular expression editor (with the regex #! <DATASET\n) shows a result so the regex looks correct to me:StringSearcher unfortunately doesn’t find the line: (see attached workbench)Where are things going wrong?
Most efficient way to read folders of excel and constrain by a date range. each excel has the date field. Hi,I have a folder structure based on YEAR folders which contain MONTH folders which contain WEEK excel files. The WEEK excel files may contain date ranges which may go outside the month range of days.After reading all the necessary excels I only want data of a whole month of days - e.g. so all the days in January 2025 say.What would be the most efficient way to do this? For example there could be days at the start of January 2025 in the folder 2024, folder December.i’m not too familiar with where clause before and after and whether they would apply to excel data.Would inline sql be an efficient way?Or, as in my example, will I have to read in December 2024, January 2025 and February 2025 before filtering to make sure i have all the days of January? Thanks for any advice.
We require support to establish a structured version management and governance process for FME workspaces (.fmw files) using Azure DevOps (ADO).Currently, FME files are updated manually, which creates challenges around version control, traceability, rollback, and collaborative development. We would like guidance and support on leveraging ADO repositories and pipelines to manage FME files effectively.The objective is to: Maintain version history of FME workspaces Enable controlled check-in/check-out and collaboration Support rollback and auditability Align with enterprise DevOps and SDLC standards Please advise on best practices, recommended repository structure, branching strategy, and CI/CD considerations (if applicable) for managing FME files in ADO.
Hi,I have a very simple workbench that is cliping a gpkg containing mulitple layer. I am struggling with writinng them back to one gpkg using dynamic schema. it fails every single time
I already have a support case open for this, but I’m curious if anybody else is having credential issues with the AzureFileStorageConnector (Azure Storage package 4.2.1) in FME 2025?I’m getting the error message: AzureFileStorageConnector: Connection 'xxx Azure Storage' does not exist. Check connection parameter and connection definitions in FME options and try again.Creating a new web connection does not solve this issue.
Good morning.After an upgrade from FME 2024 to FME 2025.1, there is a workspace using the SharepointOnlineConnector that is throwing this error:176 2025-12-18 07:15:19 | Message Type: fme::internal::_v0::py::Exception 177 2025-12-18 07:15:19 | Python Exception <ValueError>: unknown locale: en-US 178 2025-12-18 07:15:19 | PythonFactory failed to load python symbol `fmepy_microsoft_sharepoint.connector.SharepointOnlineConnector'. An outdated FME packaged transformer may be in use. Please check Utilities > FME Options > FME Packages to confirm that all FME Packages are up to date Other workspaces using the same connector are working fine.I have tried to do a clean removal following these steps: https://support.safe.com/hc/en-us/articles/31697273147533-Introduction-to-FME-Packages#h_01JDX0A9AV157VR7QHVRZ7G03WBut the error persists. The package in FME Form and Flow is updated to the last version available: safe.microsoft-sharepoint [1.9.1].As the locale error happens be
!--startfragment>I want to find the deltas from A(users are editing) & B(for analysis) environments and want to update the deltas in B environment on daily basis. My workspace created as below ESRI feature class from A as rader and same feature class from B as readers, thenNoFeaturesTester - If the database disconnected or any reason to unable to read the sources, it will terminate the process through "NoInput" port from both A & B readers, thenChangeDetector - This will finds the DELTAS from A & B and will update B feature class based on GLOBALID Configured 22 feature classes as above in one workspace. Want to execute this process one after feature class after one feature class, like FeatureClass1 -- Reader A > Reder B > NoFeaturesTester A > NoFeaturesTester B > ChangeDetector > Writer, thenFeatureClass2 -- Reader A > Reder B > NoFeaturesTester A > NoFeaturesTester B > ChangeDetector > Writer, thenFeatureClass3 -- Reader A > Reder B &g
Hey all, I currently have a workflow in place to pull a list of files from an SFTP server, download the latest file, and rename it with a .csv extension (the files do not have extensions by default). This process works fine, my problem is when I try to pass this value onto the systemcaller transformer, it seems to just run the workspace in the systemcaller without reading the updated file, which is problematic. I am taking the _downloaded_file_path from the FTPCaller, and adding “.csv” to it, so that it reads the file. (There is a separate transformer which replaces the file with a file of the same name to add .csv). In the workspace logs, it looks like SystemCaller is interpreting this literally as Filename + ‘.csv’ and that file does not exist. Code to run the workspace has this in it: -SourceDataset_CSV2_4 "@Value(_csv_path)" --FME_LAUNCH_VIEWER_APP "YES" Couple of perhaps dumb questions… does the SourceDataset_CSV2_4 need to be changed to _1 or something? Or is there an issue wi