Creating and organizing workspaces. How to use Workbench.
Recently active
Hi all,I've run into a bit of an issue where I've got to figure out the following. Bear with me, as my thought process is still recovering - Each month Postcodes and data come to us, and these are in a zip file.I read in the starting path with the "Path" reader as the names are not the same each month. That's the key for this approach. It could be something like "Postcodes_Nov20.zip" for example.Parsing that detail, using the Unzipper, I unzip the contents to a working folder.#I feed these through, with the path_windows value, to the FeatureReader, as it holds the complete paths in; eg - Z:\\FME\\Working Folder\\Postcodes_Nov20\\data\\Part1.csvThese are then connected to a FeatureReader, but it's just parsing the same file path, and not the CSV files. I've attached the workspace, as well as the FeatureReader parameters, as this has stumped me and is just the start of a longer process. Any help is appreciated. Thank you
Hi list.I have a workspace, that fails when running. It fails in an Emailer, that I just added last week. The relevant excerpt from the log file is shown here:2020-11-30 17:38:49| 5.6| 0.0|STATS |Emailer_CATCHER (TeeFactory): Cloned 0 input feature(s) into 0 output feature(s)2020-11-30 17:38:50| 6.0| 0.4|ERROR |Python Exception <ModuleNotFoundError>: No module named 'fmepy_emailer'2020-11-30 17:38:50| 6.0| 0.0|FATAL |PythonFactory failed to load python symbol `fmepy_emailer.Emailer'2020-11-30 17:38:50| 6.0| 0.0|FATAL |Emailer_CALLER (PythonFactory): PythonFactory failed to close properly2020-11-30 17:38:50| 6.0| 0.0|ERROR |Emailer_CALLER (PythonFactory): A fatal error has occurred. Check the logfile above for details2020-11-30 17:38:50| 6.0| 0.0|ERROR |Emailer_CALLER (PythonFactory): A fatal error has occurred. Check the logfile above for detailsThe Python scripting is set to 3.7+, and the Emailer is completely standard, added in the current version.What's wrong
Before i start delving into the .fmw files, does anyone know how to identify if a Feature writer has it's Attribute Definition set to Automatic,Manual or Dynamic either using the .FMW reader or reading the .fmw as a text file
This question contains a few moving pieces - all in the hope of improving bulk insert operations. Background: FME Desktop is on a dedicated workstation with 16gb ram and 2.1gb latent memory usage (ie 14gb physical ram is almost always available for FME to use.)I'm attempting to use FeatureReader to read/write a 1.5gb CSV (10m rows, 15 columns) to a MSSQL server. The writer is Microsoft SQL Server Non-Spatial. The SQL Server writer has Bulk Insert set to Yes, and I've tried Features per Transaction from 500 to 5000 rows. The SQL server has more than enough free space in it's current *.mdf that it is not trying to increase size, the table is set to truncate on insert, and there are no indexes, constraints, or keys at the time of insert. The SQL server has almost no load on it at all (extremely underutilised!), but in any case is on a large machine (20gb ram, 8 core), and the database itself has virtually no usage. The insert is currently taking about 20 minutes. From previous experienc
I have a Custom Transformer with a loop in it. It contains Blocking Transformers, so it is linked. I would like to pass the number of iterations to the main Workspace, but I do not find how to expose the Attribute that I have set in the Advanced properties of the Custom Transformer:the only reference that I found is: https://knowledge.safe.com/questions/4722/accessing-iteration-coutn-parameter-is-it-possible.html of @gio. Do you remember how you solved it in the end? Thanks in advance.
Hi, I don't seem to get column width in Excel writer to work with a number other than zero. Too big a number gives an error, zero works to adjust the width to cell contents, but it does net seem to react to smaller numbers. Does anybody have an idea?
I have a SystemCaller transformer that runs a script external to FME, and this script writes out a 2gb csv file. My aim is to use a CSV Reader and an SQL Writer together to get this in to a database. The issue I'm facing is that the CSV Reader seems to be a starting point, and I cannot connect the output side of the SystemCaller to the input side of the CSV Reader to indicate that it should run once SystemCaller is complete. Is there a strategy that can be used to overcome this? I'd prefer to keep things in the one workflow if I can.
I have a newbie question. Can I instruct FME that I wish it to finish all previous steps (transformers), before proceeding with the next step? By way of example I have a workbench that gets a list of files from FTP, downloads those that match a regex pattern (might be a few hundred mb), unzips them, and then needs to call a SystemCaller for some custom code to run. I need all the FTP files to be downloaded, and all the files to be unzipped before I run the next bit of code. FME wants to slide each file right the way through the workflow individual of each other. So, I might wind up collecting 10 files before I can run the SystemCaller, but I do need the 10 files present. Something along the lines of "If there's 10 things on the input side, you need 10 things on the output side before proceeding".
Is it just me or FME 2017.1 gets slower when adding a FeatureWriter or FeatureReader in the workbench?When I mean slower, I mean everything in the software is slower. Even at the point of crashing the application.Processing time stay normal though.I've experimented this on several desktop, not just mine.
I have a workspace that reads from a spreadsheet and dynamically makes attribute names based on a date column, with the values of the attributes being the services offered on that date, as shown.While the Feature Inspector sees these attributes, they are not exposed in the canvas and the writer is not aware of them, even when I make a dynamic writer and set Schema Sources as "Schema from first feature". Doesn't work with AttributeExposer either, as it does not see these dynamically generated attributes.The spreadsheet will have different dates every year. Is there a way to write these attributes dynamically into the writer?Thanks
Hi I'm new to FME and have been unsuccessful in figuring this out.My workspace originally had a choice user parameter where the user could choose a single string (eg. AA) which was then used to read GeoTIFFS that have that string in their filename.Now I want to have multiple choice, and I have changed the user parameter to be a Choice (Multiple). So the parameter ends up looking something like this: AB EB TTI'm trying to figure out how I can now have the workspace loop through and execute the transformers on each choice one at a time.TIA
I can't inspect any of the features in a custom transformer when caching is on. It works in the Main screen but not in the custom. Any insights? Am I missing something? I don't see any settings for it.
I have a JSON file, structured like this:{ "W-Number": { "EP1": [ { "timestamp": 1407859200000, "value": 1.35 }, { "timestamp": 1407862800000, "value": 1.44 } ], "EP2": [ { "timestamp": 1407859200000, "value": 1.58 }, { "timestamp": 1407862800000, "value": 1.63 } ] }}I want to turn it into a table, like thisW-Number | timestamp | valueEP1 | 1407859200000 | 1.35EP1 | 1407862800000 | 1.44EP2 | 1407859200000 | 1.58EP2 | 1407862800000 | 1.63What I managed so far: used JSONFlattener, then AttributeExposer to expose (see below*). Then I used a ListExploder; it works when I specify e.g. W-Number-EP1{}, which gives me a table for the timestamp and value of EP1, however I require a single Table for all EP's that might exist, without exploding the list for each manually. Would that be possible somehow? *
Hi There, I am trying to create my own folder structure with the help of this article:https://community.safe.com/s/article/create-specific-directory-structure-in-the-data-do?t=1604933837460Setting the FME_SERVER_DEST_DIR to the FME_SHAREDRESOURCE_TEMP\\myfolder still sends all the results into a fme engine folder (fme_temp/engine/fmeengines/localhost_Engine4/_auto_zip_dataset_1604932399611_14776.zip) and the download zip file still contains the standard writer folders (ACAD_1, ACAD_2, etc) and not the expected myfolder name.Another issue I have is that using the filecopy writer to copy 2 files from the FME Server resources into the data download zip file results in an empty zip file. Did anybody successfully use this method to create a custom folder structure AND copy files into it? Is it at all possible? Cheers, Itay
I have a workspace with several SQLCreators that executes a query to retrieve data from a postgreSQL/PostGIS database. After some manipulation of the data I then am sending it to a FeatureWriter (to FFS) and all the data types are defined as varchar(200) when many of the original attributes from PostgreSQL/PostGIS are of different data types. I have looked through documentation, searched in community and it appears my only option is to change/switch the featurewriter from "automatic" for Attribute definition to "manual" and define everything by hand. It doesn't appear that "dynamic" option will do what I need either as some of the original attributes being pulled for the PostgreSQL/PostGIS database have been renamed. (i.e. select attr555 as display_name from mytable) Is there another option than manually changing the data type for each feature within the featurewriter?
Hi, I have a problem that I can't figure out how to approach. I have polygon Shapaefiles of fields on a farm over a number of years (one file per year) with attributes specifying what crops are grown on each field that year and a unique ID for each field. I would like to merge these into one file where each field has an attribute for each year specifying the crop grown.The problem is that the fields are not constant over time. Exemplified in the fig below. A field may be broken up into multible fields (case 1) or the oposite merged into a bigger field (case 2). The fields may also change in size and/or geometry (cases 3 and 4). The fig also tries to illustrate the result I am looking for. If the geometry changes according to these cases the fields generally recieve new ID:s. Any ideas on how to approach this problem? p=field, c=crop Best,Johan
We are converting files from KML/KMZ format to MapInfo in a batch operation. We have our C# program calling the FME as a console application with parameters, for every file. Everything works fine except sometimes the the KML input file has errors in it and the FME convertor exists with an error I can see in the console screen.Is any way I can programmatically detect when the convertor has problems and skip the file from my side of the code? Is any message send back to the console in case of success or fail? It should be a correct way to get the result since I can see it in the console, i am just looking for the supported way.Below is an example how we call the FME workflow:string inputPath2 = "C:\\Users\\Breazuo\\Documents\\FME\\Workspaces\\ogckml2mapinfo.fmw" + " --SourceDataset_OGCKML " + "\"" + path + "\"" + " --DestDataset_MAPINFO " + "\"" + FMEOutputDirectory + "\""; System.Diagnostics.Process pProcess = new System.Diagnostics.Process(); pProc
Hi All, I am trying to set the values for 2 Published Parameters without the user input such as Attribute Creator so it can be used when I call the FME Workspace using POST Body HTTP Call. I need this attributes to be Published Parameters because is the only way I can make Generalizer transformer dynamic, so I can choose both Algorithm and the Tolerance of it. Any suggestions would be highly appreciated. Thanks,Ana
Hi All, It is often when I need to make used of HTTPCaller transformer to call another FME Workspace hosted on FME Server. I commonly pass all attributes using Query String Parameters. Unfortunately, this time this method doesn't seem to work as my URI gets too long due to complex geometry stored as WKT. I am trying to find a way to upload these parameters as part of the Body instead as Content Type application/json but I might have something wrong as even though it runs the workspace is not able to retrieve these attribute values from the transformer. I know how to do this using Python but I would like to avoid this and use HTTPCaller transformer if possible. I would appreciate any help or suggestion. Thanks,Ana
Hi list.I've built a workspace with a loop looking for information, that I don't know the exact end of. So I loop with a margin, and I save an ID of the last found instance, and check whether I've had too many consecutive fails. If too many fails have been found, I redirect to a Terminator transformer.However, when I ran the workspace, expecting some output to a database, no output was produced.It seems that the Terminator transformer rollback previous database inserts. When I disabled the Terminator, all worked as expected.Is there a way of making a peaceful halt of processing of a workspace, not the "pull-the-plug" kind of behaviour that Terminator seems to perform ?I.e., is there an option to make the Terminator transformer less "Terminator"-like ??Cheers
Hi All, I am writing to a KML and trying to change the Root Document Name dynamically by retrieving the attribute value from a DB in the middle of the workspace. I am aware that by using Format Attribute kml_document you are able to assign this to an attribute value; however by doing so I am losing all Metadata and Hierarchy assigned to that specific Writer. Any idea will be welcome :) Thanks,Ana
I have a large dataset split up into three shapefiles (south, middle, north). From this I use Clipper to cut out the area of interest. To save processing time I would like to only read the data necessary (i.e. one of the three files). I have a bounding box for my area of interest so I would like to select one (or two) of the files (south, middle, north) to read depending on the y-max/y-min values of my bounding box. Is this possible?
FME Server provides Authentication and Access Control using the Java Authentication and Authorization Service (JAAS) framework. Is the way of Authentication/Authorization subject to change ?
Hi, everyone, I tried to create user parameter select multi-attribute in some transformers like AttributeKeeper/Remover, but it won't work. I've tried with type "Text", "Attribute List (comma delimited)" and "Attribute List (space delimited)", it will only work when input only one atrribute. For example, I'd like to keep attribute "NAME" and "ADDRESS", when I type "NAME,ADDRESS", I get no atrributes left in Inspector which show no schema, it seems that the transformer treated it as one attribute not two atrribute split by comma.How can I make it happen? I'm using FME 2020.
I would like to the HTTPCaller to get info from a municipality website. I have an account on the website. It is my email address. But in reading some questions on here, it is not possible to send the username if it is an email (something with the '@' sign). Does anybody know if there's a workaround?