Question

Feature Merge Type to NONE on FeatureMerger

  • 13 January 2017
  • 8 replies
  • 1 view

Badge

In many occasions I use a FeatureMerger to verify the match of ID between two datasets.

In this situation I really don't want to merge attributes at all. I use the Feature Merge Type "geometry" but then I need to restor the original geometry of the requestor (GeometryExtractor / Replacer).

My life would be much easier with an option "None" which checks the match between two dataset but leave untouched both requestor and suppliers so I don't have to worry about attribute accumulation.


8 replies

Userlevel 4

Hi JP, I agree that would be helpful. Maybe post it as an idea?

I'm sure you've thought about this too, but I often use the Referenced output port for this scenario, rather than the Merged port. That way the output features remain untouched.

Badge

Hi David,

My mistake, I was thinking I had posted it as an idea. using the Referenced is usefull but less logic, less "readable" and therefore less maintainable over time.

Userlevel 1
Badge +10

You can use an InlineQuerier in place of a featuremerger to do this which would remove the need to rebuild any geometry

e.g. SELECT req.* FROM Requestor req, Supplier sup WHERE req.name = sup.name

Userlevel 2
Badge +12

Hi David,

My mistake, I was thinking I had posted it as an idea. using the Referenced is usefull but less logic, less "readable" and therefore less maintainable over time.

You have posted it as an idea and I voted for it days ago.

 

 

Badge +16

Optionally that is if you are using database formats, the joiner\\SQLexecutor can also be used.

Badge

Optionally that is if you are using database formats, the joiner\\SQLexecutor can also be used.

How would you the "NotMerged" features when using a SQLExecutor?

 

I use something like this but I don't really like it: Merge Result and Initiator based on ID.

 

Is there a "select" I could use to return the initiator in the result port if the query has no results?

 

 

Badge

You can use an InlineQuerier in place of a featuremerger to do this which would remove the need to rebuild any geometry

e.g. SELECT req.* FROM Requestor req, Supplier sup WHERE req.name = sup.name

I should use more InlineQerier but there is an overhead as you have to manually make the query for Unreferenced and NotMerged Ports:

 

demo-inlinequerier.fmw

 

Badge +16
How would you the "NotMerged" features when using a SQLExecutor?

 

I use something like this but I don't really like it: Merge Result and Initiator based on ID.

 

Is there a "select" I could use to return the initiator in the result port if the query has no results?

 

 

You could use the except oprator, if your format supports it, but I have to admit that its not a very nice solution, I would use the Joiner since it will always return a _matched_records attribute and it can be optimized.

 

 

Reply