Skip to main content

I have a large Workspace that processes multiple .dwg files along with a single Excel and .dbf file to generate one Excel file with multiple sheets. 

This works fine when I have feature caching on, but obviously takes a long time.  When I try to run it without feature caching, the feature output is a fraction of what it should be, but still gets data from all the multiple dwg files selected, as opposed to grabbing from one file. 

The only thing that comes to mind is that without feature caching, it does not wait until all features are processed.  So, what am I missing?  Is there a ‘WaitUntilAllFeaturesAreProcessed’ transformer or setting? Or, should my approach be some flavor of batch processing?  I haven’t seen anything in this forum that matches my situation.

 Any insight is appreciated.

 

Thanks,

-Loren

Hey Loren,

Great question, thank you for reaching out! There are a few possibilities that you could consider. Transformers can often help when processing multiple and large files - if you haven’t looked into the different types of transformers I’ve compiled a small list and included some articles that could benefit you.

The Feature Holder transformer may be of assistance - The FeatureHolder can temporarily hold features until all have been processed and released at once. This can be useful in ensuring that subsequent transformers receive all features simultaneously.

Many Transformers also use GroupBy Parameters. This can help ensure they are processed as groups rather than individually.

Also using a DataInspector could be used to verify all features are being read correctly from your source files before they are processed.
 

The following articles might also help you find the answer that suits you best!

How Blocking (or Feature-Holding) Transformers Alter the Flow of Features in FME. An article showing how blocking transformers alter the flow of Features.

Feature Caching and Performance. An article on Feature Caching and how it affects performance and your workspace.

FME Batch Processing Methods. An article explaining the different types of Batch Processing.


Let me know if this helps and if you need anything else I’m happy to assist!

Donal.


Hi Donal,

Thanks for the info.  This has been an issue both going out and coming in.  I had never used the FeatureHolder before, but using one for each feature type does NOT work.  I’ll see if funnelling everything into one and then breaking them out after right before the featurewriter works.

To me, this should be bullt-in to the feature writer.  Why wouldn’t I want all my data to end up in the place I designated, right?  What I am trying to do does not seem like a ‘Batch’ operation, it’s a single Excel file output.  We are not fanning out or calling distinct, separate operations.  It’s just a bunch of data processed into one file.  I’ll post whatever solution I come up with.  Wish me luck!

 

Best,

 

-Loren


Here is what I have found with using FeatureHolder:

It seemed to work, all the features made it, BUT each sheet in the Excel workbook has a different schema, which caused major issues.  Every sheet had all the attributes, so it messed up my columns.   

Despite my best efforts, I could not acheive a ‘Dynamic’ workflow.  One of the sheets did not show up at all.  Using this tutorial , I tried to differentiate schemas, but it only worked as far as putting the data on the correct sheet. 

Here are some screenshots of where the data goes through the featureholder and onto the writer.  Notice that I have a disabled writer with all the sheets (on the right).  Doing it that way would entail manually editing which attributes go to their respective sheet.  Not very dynamic.    Am I missing something? 

 


Here is an update and (sort of) a resolution.  The source of the issue preventing features from coming through were a number of nested custom transformers that had either user parameters incorrectly configured or the transformers needed updating.  The featureholder didn’t really help either way.

 

Now, I have a bunch of questions that I will at some point post separately:

  • How do you properly setup a GroupBy User Parameter in a nested transformer?
  • How do you set up parallalism in a nested transformer?
  • How do you prevent unwanted attributes with no values from showing up when writing to an Excel file in a dynamic schema configuration? 

There is more to be done, but we can call this post resolved.

 

Thanks again for your input.

 

-Loren


Reply