Skip to main content

Hi all,

I am working on a script to replicate a set of feature classes from one enterprise geodatabase that we use for transactional editing purposes to another enterprise geodatabase that we use for publication purposes for the organization. This replication script would be scheduled in FME Server to run on a nightly basis.

The issue is that the feature classes I plan on replicating have several domains and subtypes applied to them that don’t translate correctly.

I’ve been advised to use the ‘Resolve Domains’ functionality and change the configuration from ‘coded domain’ type to ‘char’.

My test workflow involves the below:

Copying the feature class via the ‘Import Feature Class’ tool in ArcGIS Pro into the target Enterprise Geodatabase to have the feature class available in both geodatabases

 

With FME:

Selecting the ‘Resolve Domains’ checkbox in the Writer at the outset, and using the ‘Insert’ and ‘Truncate Existing’

In the Writer configuration, changing the ‘coded domain’ type to ‘char’ and the ‘Width’ to 254

Configuring the attribute manager transformer parameters to ‘Remove’ the existing fields with domains and ‘Rename’ the _resolved fields to the name of the original field/attribute

When ‘Renaming’ the NEW_UPGRADE_resolved to just NEW_UPGRADE, it moves over the values from the _resolved to NEW_UPGRADE, without deleting the _resolved field

 

ArcGIS Pro:

 

Tried an alternate workflow and configuring the Attribute Manager transformer configuration and ‘Removing’ the original field only

 

When running the Attribute Manager and removing the original attribute, and keeping the _resolved, it seems to delete just the values in the original attribute and not the whole original field itself.

ArcGIS Pro:

 

Regardless, in both circumstances domain values are passed through to the field and just text as expected in both original field and resolved fields, when examining it without the dropdown capability as expected. 

 

I have 2 questions.

How do I ensure that only the newly resolved fields show in the target resulting FC? Would the parameters still be the same in using the ‘Insert’ and ‘Truncate Existing’ options or is another workflow more applicable?

Or would it just be a matter of only exposing the required field in ArcGIS Pro prior to publishing?  

Thank you!

If I am understanding what you are trying to achieve, this is the workflow I would use:

Before I set up my FME workbench:

  • Set up my target feature class/schema in ArcGIS Pro
    • As you suggested, copy the feature class but then also edit the fields to be the correct data type and length, etc.

In FME:

  • Set Resolve Domains on the Reader that I am pulling in the data with
  • Do whatever data cleaning, processing needed
  • Use ChangeDetector to see what was updated, inserted, deleted
  • Delete the original fields and rename the resolved fields to have the same name as the original
  • For the gdb Writer parameters
    • Layer Name: the existing feature class you set up in ArcGIS Pro at the start
    • Feature Operation: fme_db_operation (comes from ChangeDetector - this will tell the writer if the item needs to be updated, inserted or deleted)
    • Feature Type Handling: Use Existing

These two webinars may be helpful for your task:

https://engage.safe.com/webinars/managing-changing-data-with-fme/

https://engage.safe.com/webinars/managing-changing-data-part-2/


Thank you very much, @sammy ! I will systematically go through these steps upon watching the seminars and give it a shot. This was super helpful 🙂


Reply