Solved

Stop workflow if no input from 1 out of 2 transformers

  • 13 June 2024
  • 5 replies
  • 110 views

Badge +1

Hi

I have 2 transformers (A and B) they have to provide a Sorter with inputs.
If there isn’t any output from A, then this workflow C has to stop, but not the entire workspace.  
If there is output from both A and B, it has to continue.
If there is only output from A and not B, it has to contiunue. 

Is it possible? 

 

 

icon

Best answer by virtualcitymatt 14 June 2024, 14:54

View original

5 replies

This is a double solution:

For a single solution like in your case you can stop after the FeatureMerger_3 in this example.

The Sampler is set to N=1. The Keeper to nothing and the FeatureMerger is set to merge on Requestor=1 Supplier=1.

Userlevel 3
Badge +5

How about this? put a 1 in both the key fields for the attribute merger. depending on the schema you may need to remove extra attributes from the merge fields so it only matches the requestors schema.

 

 

Userlevel 5
Badge +32

My favorite to use the the FeatureFlowValve custom transformer. Inside it’s essentially just a FeatureMerger with 1==1 but I like it because I can choose whether it opens or closes what does through the Input

 

A+B == A+B

In this case A is the ValueControl and features will only go through in the case there is a feature coming out of ‘A’

 

No A = No C
A but no B = A but no B

 

Badge +1

Thank you very much for all the answers. The last one, where “FeatureFlowValve” was used, is perfect for the purpose. However, the other methods also worked :)

Userlevel 5
Badge +35

I thought it was time that we had a better solution for this type of scenario, so I created the DataLogicController transformer and uploaded it to the FME Hub.

I added a description to the latest What’s Up Wednesday newsletter.

Basically, for this scenario, the setup would look like this:

 

The logic to use is called “Projection”. It’s also capable of doing AND (must have both A and B data), OR (only needs one set of data), and a host of other logical operations.

I hope you find this interesting (even if you have a solution already).

Mark

Reply