Using transformers to modify data.
Recently active
Hello everyoneI am trying to do the following: My workspace writes into a database. I have set a user parameter to give the user an option “delete Database and start a fresh database OR continue adding data onto existing data”. In case of deleting the Database the creation of IDs (which are created in the Process) should start at 1. In case of adding data to the existing database the creation of IDs should continue from whatever the max value already existing in the database is.I believe this should work as follows using a YES/NO User Parameter.Test Filter on that User Parameter:YES → Sampler (create single initiator) → SQL Executor (delete all data with “delete from tables”)NO → Sampler (create single initiator) → Feature Reader on Database → Statistics Calculator (extract max ID) Now in a different path within the workspace I have a Counter which I use to create the IDs. I thought I could simply use a conditional Value set on my YES/NO User Parameter withYES → Start at 1NO → Start at
I am reviewing some of the Transformers I either rarely use or have never used and came across the Feature Holder. Can someone provide me an example or two of why/when it would be a good idea to use the Feature Holder Transformer?
Hi All,I would require your help dealing with empty values in a columnI have a file with "n" features. In one of the column (Example: Column A) certain values are null/empty. I would like to replace it with non-empty value. Also, Column A has only 2 distinct values - either null or date.Example:Feature Column A1 Jan 20252 Jan 20253 Jan 20254 null5 null6 null7 Jan 20258 Jan 2025I would like to change Feature 4,5,6 to "Jan 2025" instead of null.In Java world, I would store them in local variable and run column A in loop and replace with value if null.Not sure how to perform similar scenario in FME. Would really appreciate your help in achieving the above expected output.Thanks in advance
Hi all.I'm having a hard time figuring out why lists with one entry, especially if it's read from XML, is mishandled in FME.A list may have any number of entries, and if reading such from XML, they often have any number including zero entries.When flattening the output, cycling thru the list, one normally uses ListExploder. However, if the list in question has one entry, it's auto-exploded, which makes ListExploder reject it. So I have to check the rejected features to see, if the list had been auto-exploded or if it had no entries at all. E.g. two or more transformers instead of just one.Why?Wouldn't it be more logical to _always_ create a list, if there are 1 or more entries ?It works as such in 2021.0Is this behaviour specific to XML (or JSON?) flattening ?Cheers.
I have Excel sheet with 2 fields, and I need to create folders with the values of the field
Which version of FME Desktop/Flow supports “Microsoft SQL Server Spatial Reader/Writer”? I want to re-project MapInfo Tables in the GIS database. Currently I’m using FME Desktop 2022.1. Is there any alternative transformer I can use to re project the objects in the live database?
Hello,I’ve had a workbench running on FME Server and FME Desktop 2022.2 perfectly fine through the last 2 years. Suddenly, it’s throwing an error HTTP Transfer error: Transferred a partial file. I tested it with FME Server and FME Desktop 2022.2 and get the same error. When I access the url through a browser, it perfectly downloads the zip file. But the HTTPCaller fails. Request Url: https://static.aer.ca/prd/data/wells/PLA_RTF_SHP.zipAny insights would be greatly appreciated.Thank you. Sample below for testing purposes, attempting to download the file in my local.HTTPCaller settings: Error:
Hi,I have encountered a problem. I have built a script that reads in from several SHP files followed by multiple SpatialFilters against another SHP file (A). The aim of my script is to check which polygons from (A) intersect with any of the other SHP files. I never know how many polygons from (A) will intersect because it is regularly updated.So, here is my problem. The result of this is a CSV and an SHP that contains the polygons that have intersected, and all the attributes from the SHP it checks against are appended. I want to remove all the attribute columns that contain only missing as values, but I have not been able to do that. The result can contain up to 25-30 different attributes! I have tried AttributeManager, NullAttributeMapper, and PythonCaller, but I can't make anything work.Any suggestions would be very helpful!
In the exercise: "Add Appearances to a 3D City Model" I have a problem with the "AppearanceSetter" transformer because I cannot get the colors in the buildings in the PDF output, as described by Liz Sanderson. I always get them in RED in both cases, namely: "AppearancesRed" and "AppearancesBlue". I have run the workspace as I downloaded it but both types of buildings always come out in RED in the PDF.https://support.safe.com/hc/en-us/articles/25407543263373-Add-Appearances-to-a-3D-City-Model
Hi,When using HTTPCaller with an authorization header with a bearer token, the token appears in the log.How can I prevent this ?I’m using FME desktop and server version 2021 so LOG_FILTER_MASK doesn’t work. Updating the version is not a solution. The bearer token is obtained at runtime so I can’t put it in a private parameter (PP cannot be updated at runtime).Thanks.
Hi community, I am using FME Workbench 2024.1 to create parquet files. Those files contain DateTime columns. It seems as those DateTime columns are missing a codec flag in order to enable the loading in other software (Dremio in my user case). Using parquet-tools we can see the problem:java -jar parquet-tools-1.9.0.jar schema ~/Downloads/part0.parquet can not read class org.apache.parquet.format.FileMetaData: Required field 'codec' was not present! Struct: ColumnMetaData(type:INT64, encodings:[RLE_DICTIONARY, PLAIN, RLE], path_in_schema:[_transaction_ts], codec:null, num_values:66, total_uncompressed_size:95, total_compressed_size:113, data_page_offset:35, dictionary_page_offset:4, statistics:Statistics(max:EC 90 D1 36 42 42 10 18, min:EC 90 D1 36 42 42 10 18, null_count:0), encoding_stats:[PageEncodingStats(page_type:DICTIONARY_PAGE, encoding:PLAIN, count:1), PageEncodingStats(page_type:DATA_PAGE, encoding:RLE_DICTIONARY, count:1)]) I include here a small parquet example with two date
I have a workflow that assesses the proximity of points along lines. These points extend along a series of line segments of varying lengths. For instance, the distances to the next points might be 0ft (the start), 100ft, 100ft, 200ft, and 250ft, so I would like for the corresponding field next to these values to display 0ft, 100ft, 200ft, 400ft, and 650ft, etc. I am aware of the workflow to find cumulative sums (Attribute Creator>Statistics Calculator>Attribute Renamer). While this processes as described, I regret that the cumulative sums do not “reset” when there’s more than one batch of point data within the feature table (the initial point of an additional batch of points simply takes the prior set’s end sum and begins adding new distances from there). If there’s a way to prompt the cumulative sums to account for new “initial” points in a feature dataset and so start from scratch each time, I would greatly appreciate any insight on how to prompt that to occur. I’m happy to sha
I have a requirement to modify the list attribute generated on schema port.Lets say my schema scanner have default attributes name, fme data type and native data type.I want to look on name attribute and find any of its elements have OBJECTID string and remove if it is present.I try to modify list attributes using python caller. It modifies the list elements when I overwrite using feature.setAttribute method it is not working and returns original schema attributes unmodified. Any help using python would be highly appreciable.
Hi, I have a lot of polygons. I want to identify these ones who contain arcs.option: the polygon is made of lines onlythe polygon is made of lines and arcsI want to filter out all the polygons that contain lines only (option 1). I want to keep the ones that contain arcs (option 2). I tried the geometry property extractor but all polygons are always rejected : MISSING_GEOMETRY_PROPERTY as the error message. I don’t understand why. pls advise.
"Failed to free sufficient memory to reach the process usage limit"This warning is appearing my log files. What do I need to do about it? What is the potential impact if nothing is done?As far as I can tell there is nothing wrong with the output files the script is creating.
I have a work process that inlcudes running FME jobs daily.I would like to automate logging of potential errors. To do so i am thinking of just reading the .log files from the workbench(es) and search for error as keyword to catch if something went wrong in the translation. I thought it would be straight forward to implement, but i cannot find a way to read .log files using FME directly. Instead I am thinking to use a python script. But I wanted to ask here if I have missed an easy method to check log files for errors.
Hi,I am using FME Workbench 2024. I am wanting to know if I can use a loop or iterative process of some sort to individually run multiple feature classes and shapefiles through a single AttributeKeeper Transformer for each data source, possibly using the names as an iterator. I am working on bringing in utility data from multiple sources and ultimately writing them to a single geodatabase feature dataset. First, I want to clean up the fields and only keep certain ones. Each source of data has a different schema. Currently, I can only use an AttributeKeeper on each feature class/shapefile in order to later output each to its own feature class in the output geodatabase. This would make for a messy workspace with many of the same transformers. Any advice would be greatly appreciated!
Hi All,I am working with lists and require some guidance on the below scenarioI have list which contains 'n' elements. I would like to add a sub-element to each element in the list.Assuming my list name called as "list{}"Example: (My list currently looks like this) List{0} element1 element2 element3 List{1} element1 element2 element3 List{2} element1 element2 element3 List{n} element1 element2 element3 I would like to add new sub-element called "element4" at the end of each list element (i.e., add "element4" as sub-element below "element3" ) Expected Output (I would like to achieve something like below) List{0} element1 element2 element3 element4 List{1} element1 element2 element3 element4 List{2} element1 element2 element3 element4 List{n} element1 element2 elem
I’m at working on matching indoor point cloud data to gml LOD2 data using ICP so I want to transform my gml data to a point cloud data to help ease the matching. Can anyone please help me? question is how do I transform GML LOD2 to point cloud data? also if there are other suggestions to complete this task. Thank you
Hi,I have some villages (Primary and secondary villages), each containing a main folder, a subfolder, a data folder, and some empty folders. I will designate one village as the primary village. All sub-village files/data will be stored in the main village folder. Only location path links will be kept in the secondary village folder (marked in red color). Other data will be sourced from different locations (Marked in green color). Finally, I must validate whether all folders and data have been correctly segregated or not. I am currently performing this process manually, which involves copying, pasting, and validating each folder and village individually. This manual process is quite time-consuming and manpower. Kindly help me about this test cases and workflow. I am new to FME and am eager to learn more about its functionalities. Thanks.
I have a point feature which has been developed based on the polygon ID. All of these points are created at the polygon Centroid, I want to distribute the point randomly within the polygon
I have been using the FME Packager in Python to create my own transformers. I am trying to add an “images” folder to my package that my transformer will use however I get errors whenever I try to package my project.This is my package.yml file, Ive been using the Hello World Package guide for references and trying to look up ways to do it This is my file structure This is the error I get
How i have atleast 20+ AttributeManager in my FME workbench and this take a lot of my time in editing each of them every time..... When i delete / rename any of my headers......is there better way when i rename / delete Input Attribute it reflects the changes till the end ?
Am creating three sets of numbers from one source file. Each set has a different attribute structure. I want to fan these out into separate tabs of an Excel spreadsheet, using a created attribute that is common to the three streams, but has a different value for each. Have tried every permutation of setting I can think of in the Writer/dynamic schema defn, and cannot get it to respect the three different attribute schemas. Feels like this should be easy, but…..🤔
The new FME AR app update has introduced a login page with a URL or Barcode (see attached). Are these logins for a server app or a FME Flow instance? I cannot find any documentation on the process here. I have not been successful in logging into my FME Flow Instance or server apps so I am not sure what else the login url could be. Any help is appreciated.