Skip to main content
Question

Why my update detector is not passing a record through to the update port?

  • March 16, 2018
  • 4 replies
  • 55 views

Forum|alt.badge.img

I am comparing two feature classes in separate GIS sdes. I made a copy of one and put it in the other sde. So they were exactly the same to start. I changed the SYNGERGEN_ID value in one field in one record to test the update detector using . I expected that the one record would be passed through the update port. However, it is going out of the inserted and deleted port instead. Thank you in advance for your responses.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

4 replies

fmelizard
Safer
Forum|alt.badge.img+20
  • Safer
  • 3719 replies
  • March 16, 2018

Likely the Update detector is looking for changes to features with the same SYNGERGEN_ID value. If you modify this value the UpdateDetector will think that it's a new record. Try instead editing the geometry a little or changing the value of a different attribute.


Forum|alt.badge.img

This is good to know. The key attributes in update detector that I am using is a GlobalID from one feature class and a renamed GUID field that matches the GlobalID from the other feature class instead of SYNERGEN_ID. I also tried adding a stringformatter on the GUID and GlobalID fields with 38s as the format to see if the update detector would read the fields the same way. The record is still going out of the inserted and deleted port. Here is the tricky part, I need to use update because I don't want the GlobalID to change.


Forum|alt.badge.img

Well, I added a string concantenator after the reader that added a { and } at the beginning and end of the GUID field. That seem to do the trick. Matt, I appreciate you looking into this and providing an answer. added-concatenator.png


Forum|alt.badge.img+2
  • 1891 replies
  • March 23, 2018

Well, I added a string concantenator after the reader that added a { and } at the beginning and end of the GUID field. That seem to do the trick. Matt, I appreciate you looking into this and providing an answer. added-concatenator.png

You have to add the { and } to you GUID because at the moment FME is inconsistent when reading GlobalIDs and GUIDs.

 

GlobalID FME reads as; {9D7F6463-7F91-45E4-B8AA-785BCC83AC63}

 

GUID FME reads as: 9D7F6463-7F91-45E4-B8AA-785BCC83AC63

 

We have a change request PR676422 to make FME more consistent when reading GlobalIDs and GUIDs

 

You don't usually need to clutter your workspace with a StringConcatenator. In most transformers where you need to join on GUID & GlobalID, you can add the {} in the transformer, i.e. FeatureMerger: