Skip to main content

Hi there,

I’m using the ChangeDetector to update some point data in a ESRI enterprise geodatabase (SDE).  I’ve set up the CHangeDetector to check geometry as well as attributes.  I have 3 points out of 1224 that seems to being updated due to a geometry difference.  I think it’s just that typical geometry change you get between FME and SDE so I have set the vector tolerance to 0.001 which is very generous. I’ve try all the various settings 2D, Lenient Geometry even changing the tolerance to 0.01 but these still come up as being updated.  Below are my setting for the ChangeDetector:

I’ve specified a change list and it used to be that you could see the original coordinates and the revised coordinates so you could tell if it was a real change or just a artifact but I can’t for the life of me see where to find these coordinates anymore. It just gives me nothing in the change list:

Can anyone tell me where I can see these coordinates?  Or why these three points are behaving this way and what to do about it?  They haven’t changed in reality and in fact they didn’t come up as an update when I ran the workbench the first time they popped up when I ran it again to make sure nothing was coming up as a change again.

I’m on 2024.1.  I can’t upgrade yet as we have to upgrade Flow first and that’s on the list for a few months time.

Thanks for your help.

So you created “ChangeList” from the Change Detector transformer.

Now you need to add ListExploder to the Updated port and specify that list. The rest of the parameter leave with the defaults for now.

If I have a lot of attributes, I usually place and AttributeKeeper transformer, keeping only the attributes used in ChangeDetector

Tip = collapse the ports to see attribute names

I run to this and inspect outputs


I see the same behaviour in 2024.1. 

As a workaround you could extract the point geometry into an attribute, still put the data through the change detector for the geometry matching which allows you to take advantage of the tolerance and choose to keep the original coordinate attributes for comparison

 

Edit: I must have a faulty memory because I thought it did used to do this, but perhaps not..


ChangeDetector has never output the original geometry or values related to the original geometry as far as I can remember.  On the Updated Port, it will only output the Updated Geometry.

It will flag in the Change List if the Updated Features “modified” the original geometry, but that is the extent of information you will get back from the Output

There are several ways to compare coordinates of the Revised vs Original. The easiest and most generic way I find is to use an additional FeatureJoiner that creates a special type of Aggregate Geometry that as a “Left” Part and a “Right” Part, in which it is easy to compare the X,Y,Z values of the 2 Parts against each other

Eg.
 




The Aggregate Features then can be inspected for the different X, Y values that occurred from the “Joined” Output Port of the FeatureJoiner.




 


Thanks for all your help - the list exploder was easy but I get the same result as just looking at the list in the feature information window - nothing in the original and revised fields.  But extracting the coordinates shows the issue.  2 points in the original dataset with the same coordinates, one of which moved in the revised dataset. So a real geometry change after all.  Now I have to find out why I had 2 points in the same location in the first place…. Thanks again everyone.