Skip to main content

I have a very simple workspace which is basically 3 steps: readers, UpdateDetector, writers. It is intended to compare changes between two ArcGIS feature classes, which represent data from different years.

The UpdateDetector has 4 output ports: updated, inserted, unchanged, deleted. The outputs from the unchanged and added ports seem to be more or less what I'd expect. However, the outputs from the inserted and deleted ports are not being written out to the final feature class - although the post-run numbers show that features were routed through these ports.
When I preview the output in the DataInpspector, all the features from all 4 output ports are there.
I thought I may be able to workaround the non-writing by doing a 'Save As' on the data in the DataInpspector, but when I try this I get a 'fatal error' with the following message: "In order to update/delete a feature in the table/feature class 'Inspector_UPDATE_area', the FME feature must have the object ID attribute 'OBJECTID_1' on it or the feature type 'Inspector_UPDATE_area' must have a value for the parameter 'GEODB_UPDATE_KEY_COLUMNS'". I have looked through the parameters of the Reader, Transformer, and Writer, but have not found a way to update this value.
Anyone have any idea what I might be doing wrong? Either in getting writers to write, or getting data to 'Save as'? I'm more of an Arc user, and newbie to FME. I'm using FME Workbench 2014.

For reference, here is a screenshot of my Workbench file:

Hi @ldengler, can you share the workspace and log file too?
Hi Tia @TiaAtSafe! Fancy running into you here. Hope you're doing well.

 

Here are the workspace and log files. Don't mind my notes to myself. changedetector-forcovs-5.zip

Hi @ldengler, thanks for posting your question and workspace.

I have been testing your issue and have also run into problems trying to write each port out to a File Geodatabase. It seems as though the fme_db_operation attribute (which could be 'UPDATE' 'INSERT' 'UNCHANGED' OR DELETE') may confuse the Feature Operation writer parameter, causing it to either choke on the data or only write one type of fme_db_operation (more information here). I'm not yet sure if this is expected, or even the root of your technical issue, and I'll need to test more. I'm wondering if you'd be able to attach a workspace template or a sample of your data to aid in testing your workspace?

I did notice that you are running an older version of FME, and I highly recommend updating to FME 2017.1, which you can download here. There have been some adjustments to the UpdateDetector since your version which may be affecting your results.

If your desired output is a single table showing the original features, changes, and which port handled each feature, I was able to successfully write this information out to a CSV file. Take a look at the attached workspace for the workaround.

Hope this helps!

Nathan


Hi @ldengler, thanks for posting your question and workspace.

I have been testing your issue and have also run into problems trying to write each port out to a File Geodatabase. It seems as though the fme_db_operation attribute (which could be 'UPDATE' 'INSERT' 'UNCHANGED' OR DELETE') may confuse the Feature Operation writer parameter, causing it to either choke on the data or only write one type of fme_db_operation (more information here). I'm not yet sure if this is expected, or even the root of your technical issue, and I'll need to test more. I'm wondering if you'd be able to attach a workspace template or a sample of your data to aid in testing your workspace?

I did notice that you are running an older version of FME, and I highly recommend updating to FME 2017.1, which you can download here. There have been some adjustments to the UpdateDetector since your version which may be affecting your results.

If your desired output is a single table showing the original features, changes, and which port handled each feature, I was able to successfully write this information out to a CSV file. Take a look at the attached workspace for the workaround.

Hope this helps!

Nathan

Hi @NathanAtSafe, thanks so much for looking into this. It's always nice when it's actually a reproduce-able issue - makes me feel a little less crazy! I'll have to check with my supervisor next week to see if I would be able to send you a data sample, though.

 

 

While I couldn't directly use the .fmw file you sent me, since I am running FME 2014, I understand the idea. So I'll take a look and see if I can't create a similar workaround in the older version of the software. (I am working in a Citrix environment so upgrading is unfortunately not an option for me). Ultimately, I would like to produce a spatial comparison, but I may be able to join the .csv file back to the spatial somehow and display the results that way. Or perhaps I will be able to write to a Shapefile or other spatial format instead.

 

 

Thanks again for the help, I'll let you know how it goes!

Hi @NathanAtSafe, thanks so much for looking into this. It's always nice when it's actually a reproduce-able issue - makes me feel a little less crazy! I'll have to check with my supervisor next week to see if I would be able to send you a data sample, though.

 

 

While I couldn't directly use the .fmw file you sent me, since I am running FME 2014, I understand the idea. So I'll take a look and see if I can't create a similar workaround in the older version of the software. (I am working in a Citrix environment so upgrading is unfortunately not an option for me). Ultimately, I would like to produce a spatial comparison, but I may be able to join the .csv file back to the spatial somehow and display the results that way. Or perhaps I will be able to write to a Shapefile or other spatial format instead.

 

 

Thanks again for the help, I'll let you know how it goes!
Hi @ldengler, sorry about the incompatible workspace! I've attached it again, but it should work in your version this time.

 

I also noticed that in your workspace, the writer feature type User Attributes are all empty. This may be the cause of the error you're receiving. In your workspace, have you copied the attributes from either the reader or the UpdateDetector transformer by right clicking on the outgoing feature types and selecting the appropriate option? You can also set the schema type to "Dynamic" when you add a writer.

 

Hopefully this brings you a little closer to a solution! Check back in if you are still stuck.

 

updatedetector-write-1.fmw

 

 

Best,

 

Nathan

 

 


Reply