Select to view content in your preferred language

Evaluate Rules should honour the attribute rule that prevents editing against default, if it is in place

238
2
2 weeks ago
Status: Open
SeanLyons
Regular Contributor

Our organization maintains a parcel fabric of about 2.4 million parcels. We have strict business logic we adhere to, which we enforce via a number of validation style attribute rules. We have also implemented a custom reconcile and post tool to ensure mappers have successfully validated all rules prior to posting. Since our business logic is so critical to our data quality, we also want to ensure none of the mappers accidentally edit default directly, so we have a constraint attribute rule in place that prevents this: 

SeanLyons_0-1763568672541.png

However, we have discovered the evaluate rules process does not appear to honour this attribute rule, and mappers can accidentally evaluate rules against the default version of the database. In our case, this ended up crashing our entire production service. Typically, we would run evaluate rules only on features modified in this version - but in the case, since the mapper was accidentally running evaluate rules against default, there were no features modified in this version, so the entire database was evaluated (and it was goodnight on our service). 

We would like to request that the evaluate rules process honour the constraint rule to prevent editing against default. 

2 Comments
SSWoodward

Are you able to share the attribute rule you have created to protect against edits to default?

Has your organization considered using a protected default to prevent edits to default in your workflows? 

SeanLyons

It is in the screenshot but here is the code it is an extremely simple rule and works for all other tables except for Records in the parcel fabric:

return !(GdbVersion($feature)=='sde.DEFAULT');

We have not done a protected default since that would involve a lot more overhead and is likely impossible to deal with versions correctly without  ton of human involvement to deal with conflicts since we do a version per work package and a work package can have multiple items in the same area and touching the same geometry.