Creating and organizing workspaces. How to use Workbench.
Recently active
I have a workspace with a FileGDB where I'm removing and adding attribute indexes with the help of arcpy. I also use FMELogFile for logging. FME Desktop does not have a problem with the translation, but the warning messages and job failure occur once I publish to FME Server. I'm having an issue with aworkspace with the following log messages:WARN|Warning: not all FMESessions that were created were destroyed before shutdown. This may cause instabilityWARN|Warning: not all Stashed Objects that were registered were dropped beforeshutdown. This may cause instabilityand maybe this one is related:INFORM|Optional `close' method not present; not calledPlease see:cadastral_to_gdb_update.fmwcadastral_to_gdb_update.log - Desktopcadastral_to_gdb_update_job_11563.log - ServerALTTRANS01_fmeserver_2018-01-22_job11563.log - Server EngineI have a simplified test workspace that uses arcpy to run Exists() and a logger. This one runs just fine on FME Server. Please see:check_arcpy.fmwcheck_arcpy.log - Des
My .fsconfig file is relatively large - around 3GB - and whenever I try to restore this to my new installation of FME Server, the process fails with an error.The FME Server Web UI reports:Error uploading "fmeserver_backup.fsconfig". Reason: Could not write FME Server request message. Connection may have been lost. An existing connection was forcibly closed by the remote hostAnd in the fmeconfiguration.log file, the following errors appear:Thu-20-Oct-2016 07:16:57 PM ERROR RequestHandler-Thread Could not read FME Server response message. Connection may have been lost.There is not enough space on the diskThu-20-Oct-2016 07:16:57 PM ERROR RequestHandler-Thread 401835 : IOException reading client request. Connection may have been closed. Request read so far:
Hello all, I have a pythonCaller in my script where I am populating an array with all the attribute names from the feature test_fields = feature.getAllAttributeNames()how do I go about excluding any fme generated features (example: fme_feature_type). I can't quite work out the syntax. Any help will be appreciated. Thanks
We have a nightly (in theory) workbench that is transferring data from a SQL Spatial Server into multiple shapefiles (~150). I would say 1 out of 3 times it runs it will reach a certain point (it seems to be random, not any specific place in the workbench) and it will crash. It is always pointing to "ucrtbase.dll" though. I have investigated it fairly thoroughly and I can't pinpoint a reason it is happening. Nothing is showing in the workbench logs indicating the error.Is there a known issue with ucrtbase.dll?I do notice that this workbench uses a lot of memory, but why would it work sometimes and not others?We are using FME Desktop version 2017 on Windows 7, but it was happening in previous versions also.Crash report- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">- <System> <Provider Name="Application Error" /> <EventID Qualifiers="0">1000</EventID> <Level>2</Level> <Task>100</Task> <Keywords>0
I am using feature readers to dynamically read features from a schema. The features are passed in to the FMW script in FME Server from a web interface so the feature readers don't know at design time what the features are. To write the features I'm using generic writers. The feature readers pass the schemas to the writer, which then know which attributes to write and also knows which format to write (this is passed in from the web inteface too). The name of the output feature comes from the fme_feature_type attribute.This works well for shapefile outputs, but for file base outputs like DWG and KML, the writer makes the name of the file the same name as the output folder. I am writing five features, so my output folder names are "one", "two", "three", "four", "five". When I write to shape output the file name becomes "PARCEL.shp", that is, whatever the FeatureReader reads. But for DWG and KMO the filename becomes &quo
All: Can someone give me a push? I have a webservice with a .pb extension that I need to read. I've tried the things I thought I knew to do to read it HTTPCaller but to no avail. Any help will be greatly appreciated. http://developer.go-metro.com/TMGTFSRealTimeWebService/vehicle/VehiclePositions.pb
I have created a linked custom transformer with a loop and a spatial filter. In this transformer I check if a line feature intersects with an area, but only if they belongs to the same group. So I thought I had to use the Group By parameter in the spatial filter. The problem is that my custom transformer does not work with the Group By parameter. I mean, if I do not define a Group By some lines pass the test (but not belongs to the same group) but if a define the Group no line passes.This is my first custom transformer, so, any suggestions would be appreciateThanks in advanceVíctor
I am totally newbee to FME. I have CSV file with all layer names and its corresponding field names and field types. There are two additional columns called destination field name and destination field type with values in them. I can read particular layer based on some calculation. The problem is I want to write the selected layer attributes like field name and destination field name into a CSV and use this csv file in schema mapping to map the fields field name -> destination field name. The input to the schema mapper is coming from feature reader which dynamically reading from esri gdb. For better understanding please look at the workflow and let me know how can I map the fields and write the data into postgis database with new field names and new structure.
My colleague and I have both an FME license. We use a workspace to bound pictures (jpg) to trackpoints from a gps (gpx) based on their time. When he runs the workspace it takes about 10 minutes for 5000 pictures. When I run the workspace it takes about 10 minutes for 100 pictures. Our pc's are both very good. Similar cpu's (i7 5930). I have 64gb ram. He has 32 gb ram. I have a nvidia quadro K4200. He has a gtx 1080.
Hi all, I'm having a hard time describing the issue I'm facing so I'll just show what output I need.I need two writers: The first writer contains POI_NAME and POI IDs. (unique values) The second writer should output the POI IDs found in the first writer but with two additional attributes TYPE / TYPE_VALUE that can hold various strings. (Basically I have no clue on how to populate POI_ID with identical values but TYPE / TYPE_VALUE with different values)Reader:First writer: Second writer: Thanks,Ed
Hello, would be glad to find the solution: to use comma in variable by WorkspaceRunner. For example, i have Mainprozess and subprozess. In mainprozess will be define: what IDs will be needed. And after in subprozess i Need by dataimport to Import only the data with these ID's (to Import all data takes too much time). So i need to write Comma in the WorkspaceRunner, like this: obj_id in {'1000000000000106996011','1000000000000118176003'}But this statement does not work as i needed. Do u have some ideas? Greetings, Anna
I have a fme workbench that is run from a scheduled task and .bat file. I am just wondering if I can check if there is a floating license available before the workbench is run. Is this possible?
Hi all, I have two environments of FME Server: dev and prod. Based on the hostname, I want to set several parameters:FME Server connection for notificationEmail addresses are different...I do this with very simple Python scripts like:_hostname = FME_MacroValues['FME_SERVER_HOST']if _hostname == 'XXXXXXXXXXX': FME_Connection = 'fmeserver_prod'else: FME_Connection = 'fmeserver_dev'return FME_ConnectionThis works well on FME Server, but I cannot run this Workspace any more on Desktop. When filling in a value for FME_SERVER_HOST on Desktop, Python does not seem to be able to get to the FME_MacroValues. Anyone some advice on how to solve this?
I simply would like to set up a dyamic Reader in PostGIS that will read all the tables I select at runtime, then having a postGIS dynamic writer connected to this reader that would copy the same geometry, schema definition and data from the reader, the name of the table will be the name of the of the original table plus underscore, something like "original_table" => "original_table_".Though it seems a very simple task to accomplish I tried in many ways but I cannot get FME to do it. I tried to follow the tutorial https://knowledge.safe.com/articles/1157/dynamic-workflow-tutorial-destination-schema-as-a.html but I get first a warning:Cannot find a matching schema named 'name_of_db_schema.original_table_' in the known set of schemas: 'name_of_db_schema.original_table_. Known schema sources are: 'POSTGIS_1'. Please verify writer feature type configuration.Then an error message:POSTGIS Writer: Fanout for feature type 'name_of_db_schema.origina
Just wondering, how can I give different priority to run couple of streams in one Workbench, I want to run one of them and then run the others . thanks.
We have a workspace - published in FME Server - that crunches a bunch of data, writes out one or more records to an Excel file, and then kicks off an FMEServerJobSubmitter to a second job that reads in the Excel file to update some features in ArcGIS Online. Our issue is that the second FME Server job fails because the Excel file it is trying to read is still in the process of being written in the first job. How do we ensure the Excel file is done writing in the first job before the second tries to read it? We are running FME Desktop and Server 2016. Thanks,Aaron
Hi All,Is it possible to retrieve the services available to a workspace via a call to FMEServer.getWorkspaceParameters or similar? For example, I can get a list of repositories and then their workspaces - this works fine.I need to know what services are then available (e.g. Job Submitter, Data Download etc). Regards,Simon
Why does FME Workbench save some workspaces as text files and some as binaries?When workspace is stored as text file in xml format, we can try to compare different versions and to find differences that have been applied to workspace.It is really important in case of code review and especially if something is broken in new release and it is not dependent on input data.
Dears FME comunnity members. I've a cloud of point with ID and a type (Start/end) along a linear. I would like to make a dynamic segmentation for keep cut lines between two points with same ID and different types. The aim is to extract linear concerns by two points and exclude other linears.You can see an explication of my problem with a draw in attachment.Thank you very much for your help.
I'm trying to get a range of dates as a new features.For ex: if the date range is 02/01/2018 - 02/06/2018, Output features has to be like 02/01/2018, 02/02/2018, 02/03/2018, 02/04/2018,02/05/2018, 02/06/2018Any thoughts please? Thank You
Looking for a way to preset job directives in a workspace so customers don't have to set them. Can you do that with FME_SERVER_REQUEST_PARAMETERS or another parameter in workbench before uploading it, or is there a config/setting somewhere in the web UI to change it?Use case: Have customers hit the data streaming url endpoint which submits the job, but jobs get submitted with a 100 priority tag, so sometimes they don't complete in the needed time frame. Don't want to have customers set priority or other job directive tags because they could potentially stop other critical jobs needed to run.
Hi guys, I'm trying to read a WMS using a FeatureReader. Using an ordinary reader works just fine, however, creating a box and use it as input for a featurereader (same params etc) yields no result. Regards, Helmoet de Zwijger.
I have a bunch records that I'm aggregating. After this, I'm applying business rules and based on what's outputted, I'll know which of the original records I want to parse differently (i.e. not through aggregation, business rules set #2). I want to go back to the beginning of the workspace to allow these specific records to pass through in its original format. How do I do that?I'm thinking of aggregating the unique ids of the records I want, and use this value to test against the original records, like: ID in @Value(aggr_ids_to_keep), but then the record that has the aggr_ids_to_keep attribute will be its own record.Here's another way to look at what I mean. The recordset would be like {0:n,m} where 0:n are the original records and m is the one with aggr_ids_to_keep. In this scenario, how do I get m to compare against 0:n?
I am trying to find one or multiple ranges of values within a list in the most efficient way.My list-attribute looks like this: (1, 2, 3, 5, 6, 7, 9, 12,13,14,15,16).I would like to end up with the following result: (1-3, 5-7, 9,12-16).Is there an efficient way to do this without coding? Maybe using the variable setter?Since I am using only positive integers, my current way consists of adding 1 and substracting 1 to each value, then using mergers to find out, if the corresponding next value upwards or downwards exists, and then dividing my values into classes: - values that were not assigned the next upper or lower value --> keep as single value- values that were assigned upper only --> keep as lower value- values that were assigned lower only --> keep as upper value- values that have both --> ditch.
I have my parameter values in a SQLite table. I am able to access each value though a Python scripted parameter that opens the table and retrieves the value. However, this means that I have to open and close the SQL table one time for each parameter. Is there a way to make multiple parameters that can be read by the readers and transformers, perhaps in the Python startup script?