Skip to main content
Hi All,

 

I want to hold one set of features from one connection, until a feature comes through another connection to trigger their release. If no such feature comes they should never be released.

 

So similar to the FeatureHolder, but with a trigger for release.

 

 

I could probably create something with a merger/inlinejoiner or something, but I was wondering if there was a more elegant method/transformer?

 

Any thoughts?

 

Thanks,

 

Jonathan

Hi Jonathan, 

 

 

It depends on the flow of features in your workspace, and whether the trigger is global (for all features) or unique to a feature.

 

 

You could use a variablesetter and variableretriever, which usefully do not need to be connected on the canvas. If coming from different readers, then the order in which features are read is important here, and you may also need a featureholder.

 

 

So, one feature could be set to value = Y, and routed into the variablesetter. Then connect the variableretriever onto the the held features and test against that value (trigger).

Owen

 

 

 

Hi Owen,

 

It's been a while; seems like you're still in the FME world. :-)

 

 

 

Your answer provided the way; I ended up doing something like this in a custom transformer:

 

 

Input Port - Count number of holdees; put into Variable

 

Input Port - Count number of triggers + Holdees. Put into Variable

 

FeatureHolder

 

Variable fetchers

 

Tester - If number of triggers+ Holdees > Number of holdees, then we must have received a trigger, so release.

 

 

Your solution per-se wouldn't work because no combination of featureHolders or moving things around would hold the features for long enough for the variables to be set elsewhere, so I had to join the features together in the workspace.

 

 

Thanks!

Jonathan (of WCC but now not.)


Glad it helped! I thought it might be you, there cant be too many Jonathans that use FME? Hope all is well

Reply