<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Flag row if any field has invalid domain values in Attribute Rules Questions</title>
    <link>https://community.esri.com/t5/attribute-rules-questions/flag-row-if-any-field-has-invalid-domain-values/m-p/1186087#M448</link>
    <description>&lt;P&gt;Point FC with coded value domain ["Value 1", "Value 2", "Value 3"] on TextField:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="JohannesLindner_0-1656085219861.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/44321i85E9D60AE6777DBA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="JohannesLindner_0-1656085219861.png" alt="JohannesLindner_0-1656085219861.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using CalculateField, I can insert other values (same works with arcpy cursors and attribute rules):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="JohannesLindner_1-1656085353003.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/44322iE6BC62A896D8CE36/image-size/medium?v=v2&amp;amp;px=400" role="button" title="JohannesLindner_1-1656085353003.png" alt="JohannesLindner_1-1656085353003.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="JohannesLindner_3-1656086354261.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/44324i0359A2C20978731A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="JohannesLindner_3-1656086354261.png" alt="JohannesLindner_3-1656086354261.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Calculation Attribute Rule on that point fc, field IntegerField, triggers insert &amp;amp; update&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;function code_is_in_domain(domain_dict, code) {
    for(var i in domain_dict.codedValues) {
        if(domain_dict.codedValues[i].code == code) {
            return true
        }
    }
    return false
}


var attributes = Dictionary(Text($feature)).attributes  // a dictionary
for(var field in attributes) {  // loop through the dictionary keys ( = field names)
    var domain_dict = Domain($feature, field)
    if(domain_dict != null &amp;amp;&amp;amp; !code_is_in_domain(domain_dict, $feature[field])) {
        return 0//"INVALID"
    }
}
return 1//"VALID"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(you could of course also populate a text field with that rule, or you could return booleans and use it as constraint rule)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can still input values that are not in the domain, but now the flag gets set:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="JohannesLindner_2-1656086284856.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/44323iF0349CFE6EC33E3B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="JohannesLindner_2-1656086284856.png" alt="JohannesLindner_2-1656086284856.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 24 Jun 2022 15:59:23 GMT</pubDate>
    <dc:creator>JohannesLindner</dc:creator>
    <dc:date>2022-06-24T15:59:23Z</dc:date>
    <item>
      <title>Flag row if any field has invalid domain values</title>
      <link>https://community.esri.com/t5/attribute-rules-questions/flag-row-if-any-field-has-invalid-domain-values/m-p/1185966#M447</link>
      <description>&lt;P&gt;I want to create a field that would flag a row if its values don’t match its domains.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there a way to populate such a field using an Arcade calculation attribute rule?&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;For each field, if the field has a domain, and if the value doesn’t match the domain, then set DOMAIN_VALUES_VALID to ‘INVALID’.&lt;/LI&gt;&lt;LI&gt;Hopefully, the script could be dynamic, rather than needing to hardcode a list of fields with domains in the script.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;I’m aware that it’s possible to &lt;U&gt;&lt;EM&gt;prevent&lt;/EM&gt;&lt;/U&gt; invalid rows in the first place using a constraint attribute rule. That’s a valid option. But I also want to experiment with a flag too. Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Edit:&lt;/STRONG&gt; Unfortunately, I forgot to mention that the table has subtypes (with domains).&lt;/P&gt;</description>
      <pubDate>Sun, 26 Jun 2022 04:10:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/attribute-rules-questions/flag-row-if-any-field-has-invalid-domain-values/m-p/1185966#M447</guid>
      <dc:creator>Bud</dc:creator>
      <dc:date>2022-06-26T04:10:04Z</dc:date>
    </item>
    <item>
      <title>Re: Flag row if any field has invalid domain values</title>
      <link>https://community.esri.com/t5/attribute-rules-questions/flag-row-if-any-field-has-invalid-domain-values/m-p/1186087#M448</link>
      <description>&lt;P&gt;Point FC with coded value domain ["Value 1", "Value 2", "Value 3"] on TextField:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="JohannesLindner_0-1656085219861.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/44321i85E9D60AE6777DBA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="JohannesLindner_0-1656085219861.png" alt="JohannesLindner_0-1656085219861.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using CalculateField, I can insert other values (same works with arcpy cursors and attribute rules):&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="JohannesLindner_1-1656085353003.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/44322iE6BC62A896D8CE36/image-size/medium?v=v2&amp;amp;px=400" role="button" title="JohannesLindner_1-1656085353003.png" alt="JohannesLindner_1-1656085353003.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="JohannesLindner_3-1656086354261.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/44324i0359A2C20978731A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="JohannesLindner_3-1656086354261.png" alt="JohannesLindner_3-1656086354261.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Calculation Attribute Rule on that point fc, field IntegerField, triggers insert &amp;amp; update&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;function code_is_in_domain(domain_dict, code) {
    for(var i in domain_dict.codedValues) {
        if(domain_dict.codedValues[i].code == code) {
            return true
        }
    }
    return false
}


var attributes = Dictionary(Text($feature)).attributes  // a dictionary
for(var field in attributes) {  // loop through the dictionary keys ( = field names)
    var domain_dict = Domain($feature, field)
    if(domain_dict != null &amp;amp;&amp;amp; !code_is_in_domain(domain_dict, $feature[field])) {
        return 0//"INVALID"
    }
}
return 1//"VALID"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;(you could of course also populate a text field with that rule, or you could return booleans and use it as constraint rule)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can still input values that are not in the domain, but now the flag gets set:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="JohannesLindner_2-1656086284856.png" style="width: 400px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/44323iF0349CFE6EC33E3B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="JohannesLindner_2-1656086284856.png" alt="JohannesLindner_2-1656086284856.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Jun 2022 15:59:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/attribute-rules-questions/flag-row-if-any-field-has-invalid-domain-values/m-p/1186087#M448</guid>
      <dc:creator>JohannesLindner</dc:creator>
      <dc:date>2022-06-24T15:59:23Z</dc:date>
    </item>
  </channel>
</rss>

