Controlling Creator order

Related products: FME Form

The order in which features are read play an important part in the performance or simplicity of a workspace. Reader order can be specified by changing the order in the Navigator. Creators only have two options: read at start or read at end. I feel better control concerning Reader/Creator order would be a great improvement.

This idea has been mentioned before by @david_r and @takashi here (though I couldn't find the idea mentioned in his last reply) and by @fmelizard here. Apparently this call has been logged with Safe already, but perhaps we can gather some votes or ideas on how it should work on this post.

Some possibilities:

  1. Creators also showing up in the Navigator inbetween the readers. Simple and uses existing functionality to determine order.
  2. A seperate window to rearrange all Creators/Readers in one go. Seems a bit clunky.
  3. An option on a Creator to 'Read [before/after] [Reader/Creator] X. Quite simple, but not deterministic if you schedule two Creators to run after the same Reader.

Hi @kim,

This looks like the idea suggested by @takashi:

https://knowledge.safe.com/content/idea/19676/control-the-execution-order-of-starter-transformer.html



Safe is already working on it, I think.


In the beta build list, under build 16449, there is this item:

 


Workbench: (PR#64508) Allow controlling order of creation transformers
through transformer name.

Not such a fancy implementation as you are suggesting, but you could download and install the latest FME beta to see if it works for you!


Yes, this is in the 2016.1 betas now. I was experimenting with it last night. Seems to work very well. .


UPDATE: Originally we used the names of the creators to control their order, but we changed to an explicit dialog to move them up and down. And made it clear that all creators will fire before any features enter a transformer from a reader. And "Create At End" Creators go after the readers have all finished.


Original announcement below:


We are using the lexical order of the names of the transformers to govern the execution. So if you look at them in the navigator pane, that is the order they will fire. They will always go before any features from a "reader" are read in. If you need to interleave that, then you could use a Creator followed by a FeatureReader. We can't technically make Creators go in between "readers" that are otherwise added.


Even if you have custom transformers, within the custom transformer the Creators will fire in the right order, and if you make a custom transformer with no inputs, it will fire in the order of its name with respect to all other Creator-type transformers


See also Takashi's version of the suggestion over here.


Thanks Erik Jan, I did a few searches for it myself but couldn't find it.


Thanks for the explanation, will definitely give that a try!


This is great news, thanks! One thing that would help a lot, would be to extend the Creator setting "Create at end" so that you could also ask it to fire either BEFORE or AFTER all the readers. This would be fantastic for scenarios like "Suppliers first = Yes" etc.


Create At End now does go after the last reader. As well, we've moved to an explicit dialog to do the ordering as opposed to alphabetical. So you can just right-click on a creator-type transformer to set the order.


Fantastic!


Great improvement, the lexical sorting sounded (and was I think) rather iffy! Still wish I could intermingle with readers, but this is a big step in the right direction.


This has been released as part of FME 2016.1 . Visit http://www.safe.com/downloads to download and try it.