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

338
3
11-19-2025 08:17 AM
Status: Open
SeanLyons
Frequent 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. 

3 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.

HusseinNasser2

Evaluate attribute rules only work with batch calculation and validation rules, it writes to the features being evaluated and may generate error features when failures are detected. Constraint and immediate calculation are triggered when a user edit is made. 

To prevent evaluate attribute rules from changing data on DEFAULT, this Arcade script condition must be added to all batch calculation and validation rules. This will skip the execution of the rule during evaluation and proceed with no changes. Note that all the features within the extent/selections will still be read and processed but because of this condition they will process faster. 

if (GdbVersion($feature)=='sde.DEFAULT')) return; //quit evaluation

//process the rest

 

Another suggestion to minimize the accidental edits/evaluation is to Enable editing from the editing tab. This introduces an explicit step to start editing which prevents the accidental edits. 

HusseinNasser2_0-1766186664553.png

 

 

Also as Sean suggested, making default protected and assigning the version-admin portal rule to those users with higher privileges may solve the accidental issues. I do understand that it introduces alot of friction in some cases.