<metadata xml:lang="en"><Esri><SyncOnce>FALSE</SyncOnce><ArcGISFormat>1.0</ArcGISFormat><DataProperties><lineage><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20190923" Time="144945" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;return "SID-" + NextSequenceValue("SiteAddressID");&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;field_name&gt;siteaddid&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;evaluation_order&gt;1&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20190923" Time="145035" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;var fulladdr = null;
var fields = [$feature.PREADDRNUM,$feature.ADDRNUM,$feature.ADDRNUMSUF,$feature.FULLNAME,$feature.UNITTYPE,$feature.UNITID,$feature.ALTUNITTYPE,$feature.ALTUNITID];

for(var i in fields) {
  var field = fields[i];
  if (field == "" || field == null) continue;
  
  if (fulladdr == null) {
    fulladdr = field;
    continue;
  }
  
  fulladdr += " " + field;
}

return fulladdr;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;field_name&gt;fulladdr&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;evaluation_order&gt;2&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20190924" Time="111752" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20190924" Time="111800" Name="" export="">CalculateField "Site Addresses\Addresses - Site Address Points" addrnum !fulladdr!.split(' ')[0] PYTHON3 # "Long (large integer)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20190924" Time="111847" Name="" export="">CalculateField "Site Addresses\Addresses - Site Address Points" addrnum !fulladdr!.split(' ')[0] PYTHON3 # "Long (large integer)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20190924" Time="111908" Name="" export="">CalculateField "Site Addresses\Addresses - Site Address Points" addrnum !fulladdr!.split(' ')[0] PYTHON3 # "Long (large integer)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20190925" Time="130841" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191022" Time="133653" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a site address point is created
return "SID-" + NextSequenceValue("SiteAddressID");&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Specify the fields to concatenate
var fulladdr = null;
var addressValues = [$feature.PREADDRNUM,$feature.ADDRNUM,$feature.ADDRNUMSUF,$feature.FULLNAME,$feature.UNITTYPE,$feature.UNITID,$feature.ALTUNITTYPE,$feature.ALTUNITID];

// Loop through the field values and test if test if they are null or empty strings
// If they are not null or empty add them to an array
var concatValues = []
for(var i in addressValues) {
  var value = addressValues[i];
  if (value == "" || value == null) continue;
  concatValues[Count(concatValues)] = value
}

// Return the field values concatenated with a space between
return Concatenate(concatValues, " ");&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191031" Time="145305" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a site address point is created

//Define the leading text, the trailing text and the delimiter for the ID
var prefix = "SID"
var join_char = "-"

//Ensure the ID is not already set, if it is, return the original id
if (IsEmpty($feature.siteaddid)) {
   // If you do not want to use a prefix, or suffix, remove it from the list
   return Concatenate([prefix, NextSequenceValue("SiteAddressID")], join_char)
}
else {
   return $feature.siteaddid
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Specify the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid];

var combined_value = [];
// Loop through the field values and test if test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return Concatenate(combined_value, " ");&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191115" Time="140415" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\scot6032\Documents\Demos and Prototypes\AddressDataManagement\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;domain_name&gt;RoadNameIndex&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191118" Time="125441" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\scot6032\Documents\Demos and Prototypes\AddressDataManagement\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20191118" Time="125452" Name="" export="">CalculateField "Site Addresses" fullname !fullname!.replace("Trlee","Tree") PYTHON3 # Text</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20191118" Time="125631" Name="" export="">CalculateField "Site Addresses" fulladdr !fulladdr!.replace("Trlee","Tree") PYTHON3 # Text</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191118" Time="125658" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\scot6032\Documents\Demos and Prototypes\AddressDataManagement\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191118" Time="155753" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\scot6032\Documents\Demos and Prototypes\AddressDataManagement\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20191118" Time="155819" Name="" export="">CalculateField "Site Addresses" stateabbreviation "IL" PYTHON3 # Text</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20191118" Time="155837" Name="" export="">CalculateField "Site Addresses" country "US" PYTHON3 # Text</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191118" Time="155901" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\scot6032\Documents\Demos and Prototypes\AddressDataManagement\Address Data Management.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20191118" Time="162504" Name="" export="">Append 'Site Addresses' "Site Addresses (target)" "Use the Field Map to reconcile schema differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,Site Addresses,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,Site Addresses,addressptid,0,20;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#,Site Addresses,rclnguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,Site Addresses,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,Site Addresses,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,Site Addresses,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,Site Addresses,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,Site Addresses,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,Site Addresses,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,Site Addresses,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,Site Addresses,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,Site Addresses,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,Site Addresses,stateabbreviation,0,2;municipality "Municipality Name" true true false 100 Text 0 0,First,#,Site Addresses,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,Site Addresses,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,Site Addresses,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,Site Addresses,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 0,First,#,Site Addresses,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,Site Addresses,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,Site Addresses,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,Site Addresses,status,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,Site Addresses,GlobalID,-1,-1" # #</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\ImportAttributeRules" Date="20191119" Time="153325" Name="" export="">ImportAttributeRules "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management Z.gdb\Address\SiteAddressPoint" "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Rules\SiteAddresses.CSV"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20191119" Time="154745" Name="" export="">Append 'C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint' "Site Addresses\Site Addresses" "Input schema must match target schema" # # #</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20191120" Time="164558" Name="" export="">CalculateField "Site Addresses\Site Addresses" capturemeth "Plan or Drawing" "Python 3" # Text</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191126" Time="092333" Name="" export="">UpdateSchema "C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Specify the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return Concatenate(combined_value, " ");&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191127" Time="115847" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;This rule will create a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a site address point is created

// Define the leading text and the delimiter for the ID
var prefix = "SID"
var join_char = "-"

//Ensure the ID is not already set, if it is, return the original id
if (IsEmpty($feature.siteaddid)) {
   return Concatenate([prefix, NextSequenceValue("SiteAddressID")], join_char)
}
else {
   return $feature.siteaddid
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191127" Time="115906" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_description&gt;This will calculate the full address for a site address point by concatenating several other field values.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Specify the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return Concatenate(combined_value, " ");&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191127" Time="120642" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a site address point is created

// Define the leading text and the delimiter for the ID
var prefix = "SID"
var join_char = "-"

//Ensure the ID is not already set, if it is, return the original id
if (IsEmpty($feature.siteaddid)) {
   return Concatenate([prefix, NextSequenceValue("SiteAddressID")], join_char)
}
else {
   return $feature.siteaddid
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the full address for a site address point by concatenating several other field values.&lt;/rule_description&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Specify the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return Concatenate(combined_value, " ");&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process Name="Delete Rows" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteRows" Date="20191127" Time="121320" export="">DeleteRows "C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management 2.gdb\Address\SiteAddressPoint"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20191211" Time="135254" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.5.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteField&gt;&lt;field_name&gt;created_user&lt;/field_name&gt;&lt;field_name&gt;created_date&lt;/field_name&gt;&lt;field_name&gt;last_edited_user&lt;/field_name&gt;&lt;field_name&gt;last_edited_date&lt;/field_name&gt;&lt;/DeleteField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20191211" Time="135429" Name="" export="">Append 'C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint' "C:\Solutions\Tasks\January2020\Address Data Management\Project\Address Data Management\Address Data Management Sample.gdb\Address\SiteAddressPoint" "Use the Field Map to reconcile schema differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,addressptid,0,20;rclnguid "NENA Global ID" true true false 254 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,rclnguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;municipality "Municipality Name" true true false 100 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,status,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,None,#,C:\Solutions\Tasks\January2020\Address Data Management\Sample Data\Address Data Management Sample.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210615" Time="161010" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;RemoveDomainFromField&gt;&lt;field_name&gt;fullname&lt;/field_name&gt;&lt;/RemoveDomainFromField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210616" Time="160400" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a site address point is created

// Define the leading text and the delimiter for the ID
var prefix = "SID"
var join_char = "-"

//Ensure the ID is not already set, if it is, return the original id
if (IsEmpty($feature.siteaddid)) {
   return Concatenate([prefix, NextSequenceValue("SiteAddressID")], join_char)
}
else {
   return $feature.siteaddid
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the full address for a site address point by concatenating several other field values.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Specify the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return Concatenate(combined_value, " ");&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210616" Time="161115" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when a site address point is created

// Define the field containing the id, the leading text and the delimiter for the ID
var siteaddid = $feature.siteaddid;
var prefix = "SID"
var join_char = "-"

// Ensure the ID is not already set, if it is, return the original id
// Otherwise return the next id from the sequence
if (IsEmpty(siteaddid)) {
   return Concatenate([prefix, NextSequenceValue("SiteAddressID")], join_char)
}
else {
   return siteaddid;
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210618" Time="100849" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210618" Time="101406" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the field containing the id
var id_field = "siteaddid";

var id = $feature.siteaddid;
if (IsEmpty(id)) {
   // Define the name of the database sequence and the format for the id
   // Text on either side of the ${ ... } will be added to the id
   id = `SID-${NextSequenceValue("SiteAddressID")}`;
}

return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;evaluation_order&gt;1&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210618" Time="104035" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the field containing the id
var id_field = "siteaddid";
If (HasKey($feature, id_field) == false) return;

var id = $feature[id_field];
if (IsEmpty(id)) {
   // Define the name of the database sequence and the format for the id
   // Text on either side of the ${ ... } will be added to the id
   id = `SID-${NextSequenceValue("SiteAddressID")}`;
}

return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210618" Time="104448" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the field containing the id
var id_field = "siteaddid";
If (!HasKey($feature, id_field)) return;

// If the feature id is blank or null return
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("SiteAddressID")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210618" Time="105309" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210618" Time="105415" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Define the full address field
var fulladdr = "fulladdr";
If (!HasKey($feature, fulladdr)) return;

// Define the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return {
    "result": {
        "attributes": Dictionary(fulladdr, Concatenate(combined_value, " "))                  
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates the full address for a site address point by concatenating several other field values.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;evaluation_order&gt;2&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210618" Time="105451" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the id field
var id_field = "siteaddid";
If (!HasKey($feature, id_field)) return;

// If the feature id is blank or null return
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("SiteAddressID")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210618" Time="113407" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the full address for a site address point by concatenating several other field values.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Define the full address field
var fulladdr = "fulladdr";
If (!HasKey($feature, fulladdr)) return;

// Define the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return {
    "result": {
        "attributes": Dictionary(fulladdr, Concatenate(combined_value, " "))                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210622" Time="165911" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the full address for a site address point by concatenating several other field values.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Define the full address field
var fulladdr_field = "fulladdr";
If (!HasKey($feature, fulladdr_field)) return;

// Define the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return {
    "result": {
        "attributes": Dictionary(fulladdr_field, Concatenate(combined_value, " "))                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="114429" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the id field
var id_field = "siteaddid";
If (!HasKey($feature, id_field)) return;

// If the feature id is not blank or null return
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("SiteAddressID")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="114817" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full Road Name is invalid, must be defined in the Master Road Name table.&lt;/error_message&gt;&lt;rule_description&gt;Road full name must exist in the Master Road Name table&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="115815" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Road full name must exist in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full Road Name is invalid, must be defined in the Master Road Name table.&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="115957" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="144847" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Site Address is not within 500 feet of related Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;19&lt;/error_number&gt;&lt;error_message&gt;Point's envelope intersects polyline and attribute relationship meets criteria (fullname = fullname)&lt;/error_message&gt;&lt;rule_description&gt;This check fails if a site address is not within 500 feet of a road with the related full road name. This may be valid and can marked as an exception or the search distance could be expanded for your community.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;3&lt;/severity&gt;&lt;check_Parameters&gt;InputFilters:;featurestocompare:RoadCenterline;comparefilters:;attributecomparison:fullname = fullname;spatialrelation:intersects;tolerance:500;unit:foot;invertRelation:false;ReviewerRuleType:3;primaryissecondary:false&lt;/check_Parameters&gt;&lt;category&gt;9&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\EnableEditorTracking" Date="20210625" Time="144941" Name="" export="">EnableEditorTracking "C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb\SiteAddressPoint" created_user created_date last_edited_user last_edited_date ADD_FIELDS "UTC (Coordinated Universal Time)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="144947" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Site Address is not within 500 feet of related Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;19&lt;/error_number&gt;&lt;error_message&gt;Point's envelope intersects polyline and attribute relationship meets criteria (fullname = fullname)&lt;/error_message&gt;&lt;rule_description&gt;This check fails if a site address is not within 500 feet of a road with the related full road name. This may be valid and can marked as an exception or the search distance could be expanded for your community.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;3&lt;/severity&gt;&lt;check_Parameters&gt;InputFilters:;featurestocompare:RoadCenterline;comparefilters:;attributecomparison:fullname = fullname;spatialrelation:intersects;tolerance:500;unit:foot;invertRelation:false;ReviewerRuleType:3;primaryissecondary:false&lt;/check_Parameters&gt;&lt;category&gt;9&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="145400" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address is not within 500 feet of related Road&lt;/rule_name&gt;&lt;rule_description&gt;This check fails if a site address is not within 500 feet of a road with the related full road name. This may be valid and can marked as an exception or the search distance could be expanded for your community.&lt;/rule_description&gt;&lt;error_number&gt;306&lt;/error_number&gt;&lt;error_message&gt;Point's envelope does not intersect polyline and attribute relationship meets criteria (fullname = fullname)&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;check_Parameters&gt;InputFilters:;featurestocompare:RoadCenterline;comparefilters:;attributecomparison:fullname = fullname;spatialrelation:intersects;tolerance:500;unit:foot;invertRelation:true;ReviewerRuleType:3;primaryissecondary:False&lt;/check_Parameters&gt;&lt;severity&gt;3&lt;/severity&gt;&lt;expression&gt;return true;&lt;/expression&gt;&lt;category&gt;9&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="150258" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Vaild Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full Road Name is invalid, must be defined in the Master Road Name table.&lt;/error_message&gt;&lt;rule_description&gt;Road full name must exist in the Master Road Name table&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address is not within 500 feet of related Road&lt;/rule_name&gt;&lt;rule_description&gt;This check fails if a site address is not within 500 feet of a road with the related full road name. This may be valid and can marked as an exception or the search distance could be expanded for your community.&lt;/rule_description&gt;&lt;error_number&gt;306&lt;/error_number&gt;&lt;error_message&gt;Point's envelope does not intersect polyline and attribute relationship meets criteria (fullname = fullname)&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;check_Parameters&gt;InputFilters:;featurestocompare:RoadCenterline;comparefilters:;attributecomparison:fullname = fullname;spatialrelation:intersects;tolerance:500;unit:foot;invertRelation:True;ReviewerRuleType:3;primaryissecondary:False&lt;/check_Parameters&gt;&lt;severity&gt;3&lt;/severity&gt;&lt;expression&gt;return true;&lt;/expression&gt;&lt;category&gt;9&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="150305" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Validate Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="150739" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address is not within 500 feet of related Road&lt;/rule_name&gt;&lt;rule_description&gt;This check fails if a site address is not within 500 feet of a road with the related full road name. This may be valid and can marked as an exception or the search distance could be expanded for your community.&lt;/rule_description&gt;&lt;error_number&gt;306&lt;/error_number&gt;&lt;error_message&gt;Point's envelope does not intersect polyline and attribute relationship meets criteria (fullname = fullname)&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;check_Parameters&gt;InputFilters:;featurestocompare:RoadCenterline;comparefilters:;attributecomparison:fullname = fullname;spatialrelation:intersects;tolerance:500;unit:foot;invertRelation:True;ReviewerRuleType:3;primaryissecondary:False&lt;/check_Parameters&gt;&lt;severity&gt;3&lt;/severity&gt;&lt;expression&gt;return true;&lt;/expression&gt;&lt;category&gt;9&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="151309" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Test Rule&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;return false;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Test Error&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;5&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="151416" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Site Address is not within 500 feet of related Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="160455" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full Road Name is invalid, must be defined in the Master Road Name table.&lt;/error_message&gt;&lt;rule_description&gt;Road full name must exist in the Master Road Name table&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="160517" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Vaild Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="161009" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Test Rule&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="161713" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name must be defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name must be defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="164814" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright_field"
var roadfullname_field = "fullname"

// If the address number is not blank or null return
If (!HasKey($feature, address_field)) return;
If (!IsEmpty($feature[address_field])) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'left'
    } else if (d &amp;gt; 0) {
        return 'right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field]
            )
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;evaluation_order&gt;2&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210625" Time="164847" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// If the address number is not blank or null return
If (!HasKey($feature, address_field)) return;
If (!IsEmpty($feature[address_field])) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'left'
    } else if (d &amp;gt; 0) {
        return 'right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field]
            )
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;evaluation_order&gt;2&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="103046" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address field
var fulladdr_field = "fulladdr";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter($featureset, `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;There are multiple site address points with the same full address&lt;/error_message&gt;&lt;rule_description&gt;Check if there is another Site Address point with the same full address&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="103437" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Check if there is another Site Address point with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;There are multiple site address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address field
var fulladdr_field = "fulladdr";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter($featureset, `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : Text(Count(siteAddresses))}
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="103617" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Check if there is another Site Address point with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;There are multiple site address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address field
var fulladdr_field = "fulladdr";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter($featureSet, `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="103948" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple Site Address points with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address field
var fulladdr_field = "fulladdr";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter($featureSet, `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="104041" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple Site Address points with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address field
var fulladdr_field = "fulladdr";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var x = 1;
var siteAddresses = Filter($featureSet, `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="104228" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple Site Address points with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address field
var fulladdr_field = "fulladdr";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddresses"), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="104251" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple Site Address points with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address field
var fulladdr_field = "fulladdr";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="105316" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple Site Address points with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `Multiple Site Address points with the same full address: (${Concatanate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="105352" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple Site Address points with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `Multiple Site Address points with the same full address: (${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="105458" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple Site Address points with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210628" Time="130402" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210630" Time="161711" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210630" Time="162004" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will check if there is another Site Address point with the same full address

// Define the site address id fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), `${id_field}='${id}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same id&lt;/error_message&gt;&lt;rule_description&gt;Multiple site addresses with the same id&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210630" Time="163722" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'left'
    } else if (d &amp;gt; 0) {
        return 'right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field]
            )
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210630" Time="164057" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;if (IsEmpty(Geometry($feature))) return false;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Site address has a null geometry&lt;/error_message&gt;&lt;rule_description&gt;Site address has a null geometry&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210630" Time="164340" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_description&gt;Site address has a null geometry&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Site address has a null geometry&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;if (IsEmpty(Geometry($feature))) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210630" Time="164556" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210630" Time="164718" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;expression&gt;if (IsEmpty(Geometry($feature))) {
    return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Site address has a null geometry&lt;/error_message&gt;&lt;rule_description&gt;Site address has a null geometry&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210630" Time="165247" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_description&gt;Site address has a null geometry&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Site address has a null geometry&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;if (IsEmpty(Geometry($feature))) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="090905" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="090914" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="130742" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'left'
    } else if (d &amp;gt; 0) {
        return 'right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field]
            )
    },
    'edit': [
        {'className': 'AddressPoint', 'adds': [{'attributes': {}, 'geometry': Geometry(closest_point)}]}
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="130953" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'left'
    } else if (d &amp;gt; 0) {
        return 'right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field]
            )
    },
    'edit': [
        {'className': 'AddressPoint', 'adds': [{'attributes': {}, 'geometry': closest_point}]}
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="131112" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'left'
    } else if (d &amp;gt; 0) {
        return 'right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field]
            )
    },
    'edit': [
        {'className': 'AddressPoint', 'adds': [{'attributes': {}, 'geometry': closest_point}]}
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="131413" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'left'
    } else if (d &amp;gt; 0) {
        return 'right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field]
            )
    },
    'edit': [
        {'className': 'AddressPoint', 'adds': [{'attributes': {"numpoints": 0}, 'geometry': closest_point}]}
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="132732" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'left'
    } else if (d &amp;gt; 0) {
        return 'right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field]
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
         'adds': [
            {'attributes': Dictionary(numpoints_field, 0, capturemeth_field, capturemeth_default, 
                                    pointtype_field, pointtype_default, offdir_field, data["lineSide"], 
                                    offdist_field, Distance($feature, closest_point)), 
            'geometry': closest_point}
            ]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="133543" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, Distance($feature, closest_point)
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="134047" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, Distance($feature, closest_point, "feet")
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="134716" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    //var candidates = line_class;

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="135247" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="135648" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 5000, "feet"));

    if (Count(candidates) == 0) return {"errorMessage": "No road found within 5000 feet"};

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="135929" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 5000, "feet"));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line[1] == null) return {"errorMessage": "No road found within 5000 feet"};

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="140023" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line[1] == null) return {"errorMessage": "No road found within 5000 feet"};

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
    addressptid_field, id
            )
    },
 'edit': [
        {'className': 'AddressPoint', 
    'adds': [{
      'attributes': Dictionary(
          id_field, id,
          numpoints_field, 0, 
          capturemeth_field, capturemeth_default, 
          pointtype_field, pointtype_default, 
          offdir_field, data["lineSide"], 
          offdist_field, data["distance"]
         ), 
      'geometry': closest_point
     }]
  }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="140045" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return;

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
    addressptid_field, id
            )
    },
 'edit': [
        {'className': 'AddressPoint', 
    'adds': [{
      'attributes': Dictionary(
          id_field, id,
          numpoints_field, 0, 
          capturemeth_field, capturemeth_default, 
          pointtype_field, pointtype_default, 
          offdir_field, data["lineSide"], 
          offdist_field, data["distance"]
         ), 
      'geometry': closest_point
     }]
  }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="140057" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line[1] == null) return;

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
    addressptid_field, id
            )
    },
 'edit': [
        {'className': 'AddressPoint', 
    'adds': [{
      'attributes': Dictionary(
          id_field, id,
          numpoints_field, 0, 
          capturemeth_field, capturemeth_default, 
          pointtype_field, pointtype_default, 
          offdir_field, data["lineSide"], 
          offdist_field, data["distance"]
         ), 
      'geometry': closest_point
     }]
  }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="140224" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
    addressptid_field, id
            )
    },
 'edit': [
        {'className': 'AddressPoint', 
    'adds': [{
      'attributes': Dictionary(
          id_field, id,
          numpoints_field, 0, 
          capturemeth_field, capturemeth_default, 
          pointtype_field, pointtype_default, 
          offdir_field, data["lineSide"], 
          offdist_field, data["distance"]
         ), 
      'geometry': closest_point
     }]
  }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="140331" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 5000, "feet"));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return {"errorMessage": "No road found within 5000 feet"}

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="140550" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="141009" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), Buffer($feature, 1000, "feet"));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
    addressptid_field, id
            )
    },
 'edit': [
        {'className': 'AddressPoint', 
    'adds': [{
      'attributes': Dictionary(
          id_field, id,
          numpoints_field, 0, 
          capturemeth_field, capturemeth_default, 
          pointtype_field, pointtype_default, 
          offdir_field, data["lineSide"], 
          offdist_field, data["distance"]
         ), 
      'geometry': closest_point
     }]
  }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="141226" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));

    var shortest = [1000000, null];
    for (var line in candidates) {
        var d = Distance($feature, line, "feet")
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="141357" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000, "feet"));
    return Count(candidates);
    var shortest = [1000000, null];
    for (var line in candidates) {
        var d = Distance($feature, line, "feet")
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
return {"errorMessage": Text(closest_line)}
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210701" Time="162742" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields to calculate
var fullname_field = "fullname"
var address_field = "addrnum"
var addressptid_field = "addressptid"

// Define the Road Centerline field names
var fromleft_field = "fromleft"
var toleft_field = "toleft"
var fromright_field = "fromright"
var toright_field = "toright"
var roadfullname_field = "fullname"

// Define the Address Point field names and defaults
var id_field = "addressptid"
var pointtype_field = "pointtype"
var pointtype_default = "Driveway Entrance"
var capturemeth_field = "capturemeth"
var capturemeth_default = "Plan or Drawing"
var offdist_field = "offdist"
var offdir_field = "offdir"
var numpoints_field = "numpoints"

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line, "feet")
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210702" Time="101238" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

function find_closest_line() {
    // Find closest line segment to $feature. Limit search to specific radius.
    var candidates = Intersects(line_class, Buffer($feature, 1000));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line, "feet")
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

function closest_point_info(point_feature, line_feature) {
    /*
        finds the closest point on line_feature from point_feature
        Args:
            point_feature: Point Geometry
            line_feature: Line Geometry
        Returns: dictionary
            {distance: number,    // distance from point_feature to closest point
             coordinates: array,  // the coordinate pair of the closest point
             isVertex: bool,      // if the closest point is a vertex of line_feature
             lineSide: text}      // side of the line that point_feature is on based
    */

    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

function pDistance(x, y, x1, y1, x2, y2) {
  // adopted from https://stackoverflow.com/a/6853926
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, side_of_line(x,y,x1,y1,x2,y2)];
}

function side_of_line(x, y, x1, y1, x2, y2) {
    // get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
    // adopted from https://math.stackexchange.com/a/274728
    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

function intersect_distance_along(intersect_geometry, line, unit){
    // Loop through the segments of the line. Handle multipart geometries.
    var distance_along_line = 0;
    for (var part in Geometry(line).paths) {
        var segment = Geometry(line).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var first_point = segment[i-1];
            var second_point = segment[i]
            var two_point_line = Polyline({'paths': [[[first_point.x, first_point.y], [second_point.x, second_point.y]]], 'spatialReference' : first_point.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersect_geometry, two_point_line)) {
                // Construct a 2-point line segment using the previous point and the address point
                var last_segment = Polyline({'paths': [[[first_point.x, first_point.y], [intersect_geometry.x, intersect_geometry.y]]], 'spatialReference' : first_point.spatialReference});
                // Add to the total distance along the line and break the loop
                distance_along_line += Length(last_segment, unit);
                return distance_along_line
            }
            // Add to the toal distance along the line
            distance_along_line += Length(two_point_line, unit);
        }
    }

    return null;
}

function create_point(coordinates, spatial_ref) {
    // create point geometry from coordinates [x, y]
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}


function get_addr_num(road, percent_along, dir) {
    // This function will return the address number of the new site address point
    // It determines this based on the from and to address range on the intersecting road and the direction of the offset
    // If direction is null, defaults to left offset
    var addr_num = null;
    if (IsEmpty(dir)) dir = 'Left';
    var from = road[fromleft_field];
    var to = road[toleft_field];
    if (dir == 'Right') {
        var from = road[fromright_field];
        var to = road[toright_field];
    }
    if (from == null || to == null) return null;
    var val = percent_along * (to - from);
    var addr_num = 0;

    if ((Floor(val) % 2) == 0) addr_num = Floor(val);
    else if ((Ceil(val) % 2) == 0) addr_num = Ceil(val);
    else addr_num = Floor(val) - 1;

    return from + addr_num;
}

// find closest line to $feature
var closest_line = find_closest_line();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closest_point_info($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = create_point(data["coordinates"], Geometry($feature)["spatialReference"])
var distance_along = intersect_distance_along(closest_point, closest_line, "feet")
if (distance_along == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = distance_along / Length(closest_line, "feet")

// calculate address number
var address_num = get_addr_num(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210702" Time="105203" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210702" Time="105637" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210702" Time="110109" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(line_class, Buffer($feature, 1000));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line, "feet")
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the intersected features geometry, the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, intersectGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersectGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// find closest line to $feature
var closest_line = findClosestLine();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closestPointInfo($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_point, closest_line)
if (results == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = results[1] / Length(closest_line)

// calculate address number
var address_num = getAddrNum(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210702" Time="110246" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number for a point based on nearest road centerline&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number for a point based on nearest road centerline

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(line_class, Buffer($feature, 1000));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var point_feature = Geometry(point_feature);
    var line_feature = Geometry(line_feature);
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the intersected features geometry, the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, intersectGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersectGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// find closest line to $feature
var closest_line = findClosestLine();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// find info about the closest point on the closest line to $feature
var data = closestPointInfo($feature, closest_line);
if (data == null) return

// calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_point, closest_line)
if (results == null) return {
    "errorMessage": "could not calculate distance along"
}
var percent_along = results[1] / Length(closest_line)

// calculate address number
var address_num = getAddrNum(closest_line, percent_along, data["lineSide"])

// get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// return result to update attributes of $feature
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210702" Time="143239" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(line_class, Buffer($feature, 1000));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var point_feature = point_feature;
    var line_feature = line_feature;
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the intersected features geometry, the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, intersectGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(intersectGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address
var closest_line = findClosestLine();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_line));
if (data == null) return

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_point, closest_line)
if (results == null) return {
    "errorMessage": "could not calculate distance along"
}

// Get the new address number of the site address point based on the distance along the road and line side
var distanceAlongLine = results[1];
var percent_along = distanceAlongLine / Length(closest_line)
var address_num = getAddrNum(closest_line, percent_along, data["lineSide"])

// Get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210702" Time="153632" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var line_class = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(line_class, Buffer($feature, 1000));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address
var closest_line = findClosestLine();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_line));
if (data == null) return {
    "errorMessage": "Failed to create the Site Address. This can occur when attempting to create a Site Address along a true curve segment. The Densify or Generalize tools can be used to convert the curve segment to a straight line segment."
}

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_line)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_line)
var address_num = getAddrNum(closest_line, percent_along, data["lineSide"])

// Get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="095545" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="095948" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="100030" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// Get the full road name
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="110938" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// Get the full road name for the site address
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="135342" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="135930" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full name exist in the Master Road Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// Get the full road name for the site address
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="140124" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the site address id fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), `${id_field}='${id}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="140149" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Site Address is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="140451" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, 1000));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address
var closest_line = findClosestLine();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_line));
if (data == null) return {
    "errorMessage": "Failed to create the Site Address. This can occur when attempting to create a Site Address along a true curve segment. The Densify or Generalize tools can be used to convert the curve segment to a straight line segment."
}

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_line)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_line)
var address_num = getAddrNum(closest_line, percent_along, data["lineSide"])

// Get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="141037" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address
var closest_line = findClosestLine();
if (closest_line == null) return {"errorMessage": "No road found within 1000 feet"}

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_line));
if (data == null) return {
    "errorMessage": "Failed to create the Site Address. This can occur when attempting to create a Site Address along a true curve segment. The Densify or Generalize tools can be used to convert the curve segment to a straight line segment."
}

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_line)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_line)
var address_num = getAddrNum(closest_line, percent_along, data["lineSide"])

// Get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="141451" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_line = findClosestLine();
if (closest_line == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_line));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_line)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_line)
var address_num = getAddrNum(closest_line, percent_along, data["lineSide"])

// Get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_line[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="162305" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var id = `ADD-${NextSequenceValue("AddressPointID")}`;

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="165631" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Site Address is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;



&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170119" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Site Address is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;



&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170205" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Site Address is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline"), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;



&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170307" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170332" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Site Address is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline"), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;



&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170357" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170402" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170440" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Site Address is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline"), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;



&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170508" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170541" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170555" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170611" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170627" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170646" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="170708" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Site Address is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline"), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;



&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171053" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, id_field], false), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171246" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter($featureSet, `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171459" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

return { "errorMessage" : Text(`${fulladdr_field}='${fulladdr}'`) }

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter($featureSet, `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171540" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

return { "errorMessage" : Text(`${fulladdr_field}='${fulladdr}'`) }&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171635" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

return { "errorMessage" : "Test" }

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171802" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171819" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171829" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171837" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171918" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171935" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;return { "errorMessage" : "Test" }
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="171948" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;return { "errorMessage" : "Test" }
&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="172147" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="172220" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter($featureSet, `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="172311" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, id_field], false), `${fulladdr_field}='${fulladdr}'`);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210706" Time="172331" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="084600" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
 if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
 
 if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
 
 if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
 
 return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
 // If left parity is null return an error
 if (IsEmpty(parityleft)) return false;
 
 // If left parity is even and address number is odd return an error
 if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
 
 // If left parity is odd and address number is even return an error
 if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
 
 // If address number is not within the left side range return an error
 if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
  // If right parity is null return an error
 if (IsEmpty(parityright)) return false;
 
 // If right parity is even and address number is odd return an error
 if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
 
 // If right parity is odd and address number is even return an error
 if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
 
 // If address number is not within the right side range return an error
 if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="084620" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
 if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
 
 if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
 
 if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
 
 return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
 // If left parity is null return an error
 if (IsEmpty(parityleft)) return false;
 
 // If left parity is even and address number is odd return an error
 if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
 
 // If left parity is odd and address number is even return an error
 if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
 
 // If address number is not within the left side range return an error
 if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
  // If right parity is null return an error
 if (IsEmpty(parityright)) return false;
 
 // If right parity is even and address number is odd return an error
 if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
 
 // If right parity is odd and address number is even return an error
 if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
 
 // If address number is not within the right side range return an error
 if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="084631" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Address Doesn't Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="084731" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == 'Left') {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == Even &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == Odd &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="084918" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), `${roadfullname_field}='${fullname}'`);

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="092845" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Escape any single quotes in fullname
fullname = Replace(fullname, "'", "''")

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="093106" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Escape any single quotes in fullname
fullname = Replace(fullname, "'", "''")

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), `${masterfullname_field}='${fullname}'`);
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="100821" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="101357" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="102130" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + "= @fullname");
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="102147" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + "= @fullname");
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="102944" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, id_field], false), fulladdr_field + " = @fulladdr");
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        ids[Count(ids)] =  f[id_field]
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the site address id fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), id_field + " = @id");
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full name exist in the Master Road Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// Get the full road name for the site address
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " = @fullname");
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="103141" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Toad Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " = @fullname");
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="104357" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="114840" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Road Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    
    //Attempt to find partial matches and return in error message
    var partialMatches = [];
    var fullname_parts = Split(fullname, ' ', -1, true)
    
    for (var i in fullname_parts) {
        if (Count(fullname_parts[i]) &amp;lt; 3) continue;
        
        var search_string = "%" + fullname_parts[i] + "%";
        var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " LIKE @search_string");
        for (var road in masterRoadNames) {
            if (!Includes(partialMatches, road[masterfullname_field])) {
                Push(partialMatches, road[masterfullname_field]);
            }    
        }
    }
    
    if (Count(partialMatches) == 0) {"errorMessage" : "No partial matches found" };
    return {"errorMessage" : "Partial matches: " + Concatenate(partialMatches, ", ")};
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210707" Time="120559" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, id_field], false), fulladdr_field + " = @fulladdr");
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="125558" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var name = "AddressPointID";
var next = NextSequenceValue(name);
var id = `ADD-${next}`;

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="125950" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// Define the sequence name and id pattern for related address point
var sequence_name = "AddressPointID";
var id_pattern = `ADD-${id}`;

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to 1000 foot radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var id = NextSequenceValue(sequence_name);
var addressptid = id_pattern

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, id
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="130613" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// Define the sequence name related address point
var sequence_name = "AddressPointID";

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to default search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var id = NextSequenceValue(sequence_name);
var addressptid = `ADD-${id}`;

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, addressptid
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="132836" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// This function will Get a new id for the address point
function getAddressPointID() {
    // Define the name of the database sequence and the format for the id
    // Text on either side of the ${ ... } will be added to the id
    var sequence_name = "AddressPointID";
    var id = NextSequenceValue(sequence_name);
    return `ADD-${id}`;
}

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to default search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var addressptid = getAddressPointID();

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, addressptid
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, id,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="133037" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the id field
var id_field = "siteaddid";
If (!HasKey($feature, id_field)) return;

// If the feature id is not blank or null return
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("SiteAddressID")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="133119" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// This function will Get a new id for the address point
function getAddressPointID() {
    // Define the name of the database sequence and the format for the id
    // Text on either side of the ${ ... } will be added to the id
    var sequence_name = "AddressPointID";
    var id = NextSequenceValue(sequence_name);
    return `ADD-${id}`;
}

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to default search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var addressptid = getAddressPointID();

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, addressptid
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, addressptid,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="133229" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Road Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "{A7681C88-10DD-4E6B-A7B0-14835B1A29CC}"), masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    
    //Attempt to find partial matches and return in error message
    var partialMatches = [];
    var fullname_parts = Split(fullname, ' ', -1, true)
    
    for (var i in fullname_parts) {
        if (Count(fullname_parts[i]) &amp;lt; 3) continue;
        
        var search_string = "%" + fullname_parts[i] + "%";
        var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " LIKE @search_string");
        for (var road in masterRoadNames) {
            if (!Includes(partialMatches, road[masterfullname_field])) {
                Push(partialMatches, road[masterfullname_field]);
            }    
        }
    }
    
    if (Count(partialMatches) == 0) {"errorMessage" : "No partial matches found" };
    return {"errorMessage" : "Partial matches: " + Concatenate(partialMatches, ", ")};
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="133250" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Road Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    
    //Attempt to find partial matches and return in error message
    var partialMatches = [];
    var fullname_parts = Split(fullname, ' ', -1, true)
    
    for (var i in fullname_parts) {
        if (Count(fullname_parts[i]) &amp;lt; 3) continue;
        
        var search_string = "%" + fullname_parts[i] + "%";
        var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " LIKE @search_string");
        for (var road in masterRoadNames) {
            if (!Includes(partialMatches, road[masterfullname_field])) {
                Push(partialMatches, road[masterfullname_field]);
            }    
        }
    }
    
    if (Count(partialMatches) == 0) {"errorMessage" : "No partial matches found" };
    return {"errorMessage" : "Partial matches: " + Concatenate(partialMatches, ", ")};
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210713" Time="133435" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, id_field], false), fulladdr_field + " = @fulladdr");
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the site address id fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), id_field + " = @id");
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full name exist in the Master Road Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// Get the full road name for the site address
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " = @fullname");
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210714" Time="154159" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_description&gt;Site address has a null geometry&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Site address has a null geometry&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the site address doesn't have a null geometry

if (IsEmpty(Geometry($feature))) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210714" Time="160512" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full name exist in the Master Road Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// Get the full road name for the site address
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];

// Search the master road name table for a row matching the fullname
// If there is no matching record return an error
var masterStreetNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " = @fullname");
if (Count(masterStreetNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="114726" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="132607" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="133226" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var capturemeth_field = "capturemeth";
var capturemeth_default = "Plan or Drawing";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// This function will Get a new id for the address point
function getAddressPointID() {
    // Define the name of the database sequence and the format for the id
    // Text on either side of the ${ ... } will be added to the id
    var sequence_name = "AddressPointID";
    var id = NextSequenceValue(sequence_name);
    return `ADD-${id}`;
}

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to default search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var addressptid = getAddressPointID();

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, addressptid
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, addressptid,
                                        numpoints_field, 0, 
                                        capturemeth_field, capturemeth_default, 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="133349" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Road Name table

// Define the full road name field
var fullname_field = "fullname";

// Define the full road name field in the Master Road Name table
var masterfullname_field = "fullname";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;

// Search the master road name table for a row matching the fullname.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    
    //Attempt to find partial matches and return in error message
    var partialMatches = [];
    var fullname_parts = Split(fullname, ' ', -1, true)
    
    for (var i in fullname_parts) {
        if (Count(fullname_parts[i]) &amp;lt; 3) continue;
        
        var search_string = "%" + fullname_parts[i] + "%";
        var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), masterfullname_field + " LIKE @search_string");
        for (var road in masterRoadNames) {
            if (!Includes(partialMatches, road[masterfullname_field])) {
                Push(partialMatches, road[masterfullname_field]);
            }    
        }
    }
    
    if (Count(partialMatches) == 0) {"errorMessage" : "No partial matches found" };
    return {"errorMessage" : "Partial matches: " + Concatenate(partialMatches, ", ")};
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SitAddressPoint", [fulladdr_field, id_field], false), fulladdr_field + " = @fulladdr");
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the site address id fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "MasterRoadName"), id_field + " = @id");
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// If the parity for the left and right side of the road is null return an arror
if (IsEmpty(parityleft) || IsEmpty(parityright)) return false;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
        // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="133405" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the full address and site address id fields
var fulladdr_field = "fulladdr";
var id_field = "siteaddid";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, id_field], false), fulladdr_field + " = @fulladdr");
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210715" Time="134847" Name="" export="">CalculateField "Site Addresses\Site Addresses" capturemeth 'Plan or Drawing' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="165511" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the fields to update
var value_field = "municipality";

// Define the field containing the municipality name in the GeopoliticalArea feature class
var name_field = "name";

// Define the type field and the valid types for a municipality in the GeopoliticalArea feature class
// If all types are valid leave the valid_types variable empty (var valid_types = [];)
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Define the name of the polygon feature class containing the municipalities
var boundary_featureSet = FeatureSetByName($datastore, "GeopoliticalArea")
if (Count(valid_types) &amp;gt; 0) {
    boundary_featureSet = Filter(boundary_featureSet, type_field + " IN @valid_types");
}

// Test if the feature has the value field, if it is missing either return
if (!HasKey($feature, value_field)) return;

// Get all the polygons the site address intersects and update the value from the first intersecting polygon
var intersectBoundaries = Intersects(boundary_featureSet, $feature);
for (var boundary in intersectBoundaries) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    value_field, boundary[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;evaluation_order&gt;4&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="165517" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the full address for a site address point by concatenating several other field values&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Define the full address field
var fulladdr_field = "fulladdr";
If (!HasKey($feature, fulladdr_field)) return;

// Define the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return {
    "result": {
        "attributes": Dictionary(fulladdr_field, Concatenate(combined_value, " "))                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="171528" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="171611" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210715" Time="171618" Name="" export="">CalculateField "Site Addresses\Site Addresses" municipality 'Test' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="171630" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210715" Time="171647" Name="" export="">CalculateField "Site Addresses\Site Addresses" municipality 'Test' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="171938" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the fields to update
var value_field = "municipality";

// Define the field containing the municipality name in the GeopoliticalArea feature class
var name_field = "name";

// Define the type field and the valid types for a municipality in the GeopoliticalArea feature class
// If all types are valid leave the valid_types variable empty (var valid_types = [];)
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Define the name of the polygon feature class containing the municipalities
var boundary_featureSet = FeatureSetByName($datastore, "GeopoliticalArea")
if (Count(valid_types) &amp;gt; 0) {
    boundary_featureSet = Filter(boundary_featureSet, type_field + " IN @valid_types");
}

// Test if the feature has the value field, if it is missing either return
if (!HasKey($feature, value_field)) return;

if (Geometry($feature) == Geometry($originalFeature)) return; 

// Get all the polygons the site address intersects and update the value from the first intersecting polygon
var intersectBoundaries = Intersects(boundary_featureSet, $feature);
for (var boundary in intersectBoundaries) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    value_field, boundary[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210715" Time="172002" Name="" export="">CalculateField "Site Addresses\Site Addresses" municipality 'Test' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210715" Time="172053" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the fields to update
var value_field = "municipality";

// Define the field containing the municipality name in the GeopoliticalArea feature class
var name_field = "name";

// Define the type field and the valid types for a municipality in the GeopoliticalArea feature class
// If all types are valid leave the valid_types variable empty (var valid_types = [];)
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Define the name of the polygon feature class containing the municipalities
var boundary_featureSet = FeatureSetByName($datastore, "GeopoliticalArea")
if (Count(valid_types) &amp;gt; 0) {
    boundary_featureSet = Filter(boundary_featureSet, type_field + " IN @valid_types");
}

// Test if the feature has the value field, if it is missing either return
if (!HasKey($feature, value_field)) return;

// Get all the polygons the site address intersects and update the value from the first intersecting polygon
var intersectBoundaries = Intersects(boundary_featureSet, $feature);
for (var boundary in intersectBoundaries) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    value_field, boundary[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210715" Time="172213" Name="" export="">CalculateField "Site Addresses\Site Addresses" municipality 'test' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210716" Time="101951" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;New Rule&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;return {"errorMessage" : Text(Geometry($feature) == Geometry($originalFeature)) }&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;New Rule&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210716" Time="102137" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;New Rule&lt;/rule_name&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;return {"errorMessage" : Text(Equals(Geometry($feature), Geometry($originalFeature))) }&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210716" Time="102341" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;New Rule&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Return if the geometry did not change
if (Equals(Geometry($feature), Geometry($originalFeature))) return;

// Define the fields to update
var value_field = "municipality";

// Define the field containing the municipality name in the GeopoliticalArea feature class
var name_field = "name";

// Define the type field and the valid types for a municipality in the GeopoliticalArea feature class
// If all types are valid leave the valid_types variable empty (var valid_types = [];)
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Define the name of the polygon feature class containing the municipalities
var boundary_featureSet = FeatureSetByName($datastore, "GeopoliticalArea")
if (Count(valid_types) &amp;gt; 0) {
    boundary_featureSet = Filter(boundary_featureSet, type_field + " IN @valid_types");
}

// Test if the feature has the value field, if it is missing either return
if (!HasKey($feature, value_field)) return;

// Get all the polygons the site address intersects and update the value from the first intersecting polygon
var intersectBoundaries = Intersects(boundary_featureSet, $feature);
for (var boundary in intersectBoundaries) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    value_field, boundary[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210716" Time="102740" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the fields to update
var value_field = "municipality";

// Define the field containing the municipality name in the GeopoliticalArea feature class
var name_field = "name";

// Define the type field and the valid types for a municipality in the GeopoliticalArea feature class
// If all types are valid leave the valid_types variable empty (var valid_types = [];)
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Return if the geometry did not change
if (Equals(Geometry($feature), Geometry($originalFeature))) return;

// Define the name of the polygon feature class containing the municipalities
var boundary_featureSet = FeatureSetByName($datastore, "GeopoliticalArea")
if (Count(valid_types) &amp;gt; 0) {
    boundary_featureSet = Filter(boundary_featureSet, type_field + " IN @valid_types");
}

// Test if the feature has the value field, if it is missing either return
if (!HasKey($feature, value_field)) return;

// Get all the polygons the site address intersects and update the value from the first intersecting polygon
var intersectBoundaries = Intersects(boundary_featureSet, $feature);
for (var boundary in intersectBoundaries) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    value_field, boundary[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210716" Time="132009" Name="" export="">CalculateField "Site Addresses\Site Addresses" siteaddid SequentialNumber() "Python 3" "# Calculates a sequential number
# More calculator examples at esriurl.com/CalculatorExamples
rec=0
def SequentialNumber():
    global rec
    pStart = 1000
    pInterval = 1
    if (rec == 0):
        rec = pStart
    else:
        rec = rec + pInterval
    return "SID-" + str(rec)" Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210716" Time="132231" Name="" export="">CalculateField "Site Addresses\Site Addresses" siteaddid SequentialNumber() "Python 3" "# Calculates a sequential number
# More calculator examples at esriurl.com/CalculatorExamples
rec=0
def SequentialNumber():
    global rec
    pStart = 100
    pInterval = 1
    if (rec == 0):
        rec = pStart
    else:
        rec = rec + pInterval
    return "SID-" + str(rec)" Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210716" Time="132259" Name="" export="">CalculateField "Site Addresses\Site Addresses" siteaddid SequentialNumber() "Python 3" "# Calculates a sequential number
# More calculator examples at esriurl.com/CalculatorExamples
rec=0
def SequentialNumber():
    global rec
    pStart = 100
    pInterval = 1
    if (rec == 0):
        rec = pStart
    else:
        rec = rec + pInterval
    return "SID-" + str(rec)" Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210716" Time="133120" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the site address id fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint"), id_field + " = @id");
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210716" Time="133943" Name="" export="">CalculateField "Site Addresses\Site Addresses" capturemeth 'Plan or Drawing' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210716" Time="142954" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];    
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
}
else {
    // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210716" Time="160944" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;New Rule&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;test&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;5&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210716" Time="162618" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;New Rule&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210716" Time="162712" Name="" export="">CalculateField "Site Addresses\Site Addresses" country 'US' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210716" Time="162734" Name="" export="">CalculateField "Site Addresses\Site Addresses" stateabbreviation 'IL' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210716" Time="164655" Name="" export="">CalculateField "Site Addresses\Site Addresses" pointtype 'Building' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210719" Time="150559" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Road Name table
// It will compare the municipality to the municipality in the Master Road Name table

// Define the Site Address full name and municipality field
var fullname_field = "fullname";
var municipality_field = "municipality";

// Define the Master Road Name full name and municipality fields
var masterfullname_field = "fullname";
var mastermuni_field = "municipality";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;
var municipality = $feature[municipality_field];

// Search the master road name table for a row matching the fullname and municipality.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    
    //Attempt to find partial matches and return in error message
    var partialMatches = [];
    var fullname_parts = Split(fullname, ' ', -1, true)
    
    for (var i in fullname_parts) {
        if (Count(fullname_parts[i]) &amp;lt; 3) continue;
        
        var search_string = "%" + fullname_parts[i] + "%";
        var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " LIKE @search_string");
        for (var road in masterRoadNames) {
            var roadname = `${road[masterfullname_field]} (${road[mastermuni_field]})`
            if (!Includes(partialMatches, roadname)) {
                Push(partialMatches, roadname);
            }    
        }
    }
    
    if (Count(partialMatches) == 0) return {"errorMessage" : "Match in municipality not found. No partial matches found." };
    return {"errorMessage" : "Match in municipality not found. Partial matches: " + Concatenate(partialMatches, ", ")};
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210719" Time="150623" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Road Name table
// It will compare the municipality to the municipality in the Master Road Name table

// Define the Site Address full name and municipality field
var fullname_field = "fullname";
var municipality_field = "municipality";

// Define the Master Road Name full name and municipality fields
var masterfullname_field = "fullname";
var mastermuni_field = "municipality";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;
var municipality = $feature[municipality_field];

// Search the master road name table for a row matching the fullname and municipality.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    
    //Attempt to find partial matches and return in error message
    var partialMatches = [];
    var fullname_parts = Split(fullname, ' ', -1, true)
    
    for (var i in fullname_parts) {
        if (Count(fullname_parts[i]) &amp;lt; 3) continue;
        
        var search_string = "%" + fullname_parts[i] + "%";
        var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " LIKE @search_string");
        for (var road in masterRoadNames) {
            var roadname = `${road[masterfullname_field]} (${road[mastermuni_field]})`
            if (!Includes(partialMatches, roadname)) {
                Push(partialMatches, roadname);
            }    
        }
    }
    
    if (Count(partialMatches) == 0) return {"errorMessage" : "Match in municipality not found. No partial matches found." };
    return {"errorMessage" : "Match in municipality not found. Partial matches: " + Concatenate(partialMatches, ", ")};
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210719" Time="150631" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210719" Time="150749" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_description&gt;Site address has a null geometry&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Site address has a null geometry&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Road Name table
// It will compare the municipality to the municipality in the Master Road Name table

// Define the Site Address full name and municipality field
var fullname_field = "fullname";
var municipality_field = "municipality";

// Define the Master Road Name full name and municipality fields
var masterfullname_field = "fullname";
var mastermuni_field = "municipality";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;
var municipality = $feature[municipality_field];

// Search the master road name table for a row matching the fullname and municipality.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    
    //Attempt to find partial matches and return in error message
    var partialMatches = [];
    var fullname_parts = Split(fullname, ' ', -1, true)
    
    for (var i in fullname_parts) {
        if (Count(fullname_parts[i]) &amp;lt; 3) continue;
        
        var search_string = "%" + fullname_parts[i] + "%";
        var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " LIKE @search_string");
        for (var road in masterRoadNames) {
            var roadname = `${road[masterfullname_field]} (${road[mastermuni_field]})`
            if (!Includes(partialMatches, roadname)) {
                Push(partialMatches, roadname);
            }    
        }
    }
    
    if (Count(partialMatches) == 0) return {"errorMessage" : "No partial matches found." };
    return {"errorMessage" : "Partial matches: " + Concatenate(partialMatches, ", ")};
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210719" Time="150803" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the full name exist in the Master Road Name table
// It will compare the municipality to the municipality in the Master Road Name table

// Define the Site Address full name and municipality field
var fullname_field = "fullname";
var municipality_field = "municipality";

// Define the Master Road Name full name and municipality fields
var masterfullname_field = "fullname";
var mastermuni_field = "municipality";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;
var municipality = $feature[municipality_field];

// Search the master road name table for a row matching the fullname and municipality.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    
    //Attempt to find partial matches and return in error message
    var partialMatches = [];
    var fullname_parts = Split(fullname, ' ', -1, true)
    
    for (var i in fullname_parts) {
        if (Count(fullname_parts[i]) &amp;lt; 3) continue;
        
        var search_string = "%" + fullname_parts[i] + "%";
        var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " LIKE @search_string");
        for (var road in masterRoadNames) {
            var roadname = `${road[masterfullname_field]} (${road[mastermuni_field]})`
            if (!Includes(partialMatches, roadname)) {
                Push(partialMatches, roadname);
            }    
        }
    }
    
    if (Count(partialMatches) == 0) return {"errorMessage" : "No partial matches found." };
    return {"errorMessage" : "Partial matches: " + Concatenate(partialMatches, ", ")};
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210719" Time="150839" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_description&gt;Site address has a null geometry&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Site address has a null geometry&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will ensure the site address doesn't have a null geometry

var geom = Geometry($feature);
if (IsEmpty(geom)) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210719" Time="151508" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full name exist in the Master Road Name table
// It will compare the municipality to the municipality in the Master Road Name table

// Define the Site Address full name and municipality field
var fullname_field = "fullname";
var municipality_field = "municipality";

// Define the Master Road Name full name and municipality fields
var masterfullname_field = "fullname";
var mastermuni_field = "municipality";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;
var municipality = $feature[municipality_field];

// Search the master road name table for a row matching the fullname and municipality.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName"), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210719" Time="153352" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Invalid Full Road Name&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="085454" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address/municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr_field";
var municipality_field = "municipality";

// This function will return if the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id and fulladdr and municipality either before or after the update
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"]), id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality" + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + " = @municipality_orig" + ")");
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Marks site addresses as requiring validation if they have the same id or full address/municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="085524" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address/municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return if the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id and fulladdr and municipality either before or after the update
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"]), id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality" + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + " = @municipality_orig" + ")");
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Marks site addresses as requiring validation if they have the same id or full address/municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="090114" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple Site Address points with the same full address&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = $feature[municipality_field];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, municipality_field, id_field], false), fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality");
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="090259" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = $feature[municipality_field];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, municipality_field, id_field], false), fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality");
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="091103" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range or is on the wrong side of the road&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate the address point is inside the closest road's valid range is on the correct side of the road and matches the road's municipality

// Specify default search distance for related road (feet), 
// Site address that are greater than this distance from their related road will return an error
var search_distance = 1000;
 
// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var municipality_field = "municipality";

// Define the Road Centerline fields
var roadfullname_field = "fullname";
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var munileft_field = "munileft";
var muniright_field = "muniright";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [roadfullname_field, fromleft_field, toleft_field, fromright_field, toright_field, munileft_field, muniright_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];
var munileft = closest_road[munileft_field];
var muniright = closest_road[muniright_field];      
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
 
 // If the address municipality doesn't match the road left side municipality return an error
 if (munileft != $feature[municipality_field]) return false;
}
else {
    // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
 
 // If the address municipality doesn't match the road right side municipality return an error
 if (muniright != $feature[municipality_field]) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="091129" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the road's valid range,  is on the wrong side of the road, or doesn't match the road municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range,  is on the wrong side of the road, or doesn't match the road municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate the address point is inside the closest road's valid range is on the correct side of the road and matches the road's municipality

// Specify default search distance for related road (feet), 
// Site address that are greater than this distance from their related road will return an error
var search_distance = 1000;
 
// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var municipality_field = "municipality";

// Define the Road Centerline fields
var roadfullname_field = "fullname";
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var munileft_field = "munileft";
var muniright_field = "muniright";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [roadfullname_field, fromleft_field, toleft_field, fromright_field, toright_field, munileft_field, muniright_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];
var munileft = closest_road[munileft_field];
var muniright = closest_road[muniright_field];      
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
 
 // If the address municipality doesn't match the road left side municipality return an error
 if (munileft != $feature[municipality_field]) return false;
}
else {
    // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
 
 // If the address municipality doesn't match the road right side municipality return an error
 if (muniright != $feature[municipality_field]) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="091659" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Marks site addresses as requiring validation if they have the same id or full address/municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address/municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id and fulladdr and municipality either before or after the update
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"]), id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality" + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + " = @municipality_orig" + ")");
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="093133" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Marks site addresses as requiring validation if they have the same id or full address/municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address/municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"]), id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality" + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + " = @municipality_orig" + ")");
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="101710" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the id field
var id_field = "siteaddid";

// If the feature id is not blank or null return
If (!HasKey($feature, id_field)) return;
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("SiteAddressID")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the Site Addresses fields
var municipality_field = "municipality";

// Define the Geopolitical Areas fields
var name_field = "name";

// Define the type field and the valid types for a municipality in Geopolitical Areas
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Return if the geometry did not change
if (Equals(Geometry($feature), Geometry($originalFeature))) return;

// Test if the feature has the municipality field, if it is missing return
if (!HasKey($feature, municipality_field)) return;

// Get the intersecting Geopolictical Areas and update the value from the first intersecting area
var intersectingAreas = Intersects(Filter(FeatureSetByName($datastore, "GeopoliticalArea", [name_field, type_field], true), type_field + " IN @valid_types"), $feature)
for (var intersectinArea in intersectingAreas) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    municipality_field, intersectinArea[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="102235" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Marks site addresses as requiring validation if they have the same id or full address/municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address/municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality" + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + " = @municipality_orig" + ")");
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="102527" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Marks site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality" + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + " = @municipality_orig" + ")");
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="102610" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the site address id fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [id_field], false), id_field + " = @id");
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="102642" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the Site Addresses fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [id_field], false), id_field + " = @id");
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="102724" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full name exist in the Master Road Name table
// It will compare the municipality to the municipality in the Master Road Name table

// Define the Site Addresses fields
var fullname_field = "fullname";
var municipality_field = "municipality";

// Define the Master Road Names fields
var masterfullname_field = "fullname";
var mastermuni_field = "municipality";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;
var municipality = $feature[municipality_field];

// Search the master road name table for a row matching the fullname and municipality.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName", [masterfullname_field, mastermuni_field]), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="155126" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow /&gt;&lt;workflow /&gt;&lt;workflow /&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality" + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + " = @municipality_orig" + ")");
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="155154" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality" + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + " = @municipality_orig" + ")");
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210721" Time="162922" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the full address for a site address point by concatenating several other field values&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Define the full address field
var fulladdr_field = "fulladdr";
If (!HasKey($feature, fulladdr_field)) return;

// Define the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return {
    "result": {
        "attributes": Dictionary(fulladdr_field, Concatenate(combined_value, " "))                  
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="085038" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_description&gt;Full road name is not defined in the Master Road Name table&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Full road name is not defined in the Master Road Name table&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full name exist in the Master Road Name table
// It will compare the municipality to the municipality in the Master Road Name table

// Define the Site Addresses fields
var fullname_field = "fullname";
var municipality_field = "municipality";

// Define the Master Road Names fields
var masterfullname_field = "fullname";
var mastermuni_field = "municipality";

// If the fullname is blank or null return
If (!HasKey($feature, fullname_field)) return true;
var fullname = $feature[fullname_field];
If (IsEmpty(fullname)) return true;
var municipality = $feature[municipality_field];

// Search the master road name table for a row matching the fullname and municipality.
// If there is no matching record raise an error preventing the edit
var masterRoadNames = Filter(FeatureSetByName($datastore, "MasterRoadName", [masterfullname_field, mastermuni_field]), mastermuni_field + " = @municipality" + " AND " + masterfullname_field + " = @fullname");
if (Count(masterRoadNames) == 0) {
    return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="085902" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Invalid Road Name&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="090040" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the nearest road's valid range, is on the wrong side of the road, or doesn't match the road municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the road's valid range,  is on the wrong side of the road, or doesn't match the road municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate the address point is inside the closest road's valid range, is on the correct side of the road and matches the road's municipality

// Specify default search distance for related road (feet), 
// Site address that are greater than this distance from their related road will return an error
var search_distance = 1000;
 
// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var municipality_field = "municipality";

// Define the Road Centerline fields
var roadfullname_field = "fullname";
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var munileft_field = "munileft";
var muniright_field = "muniright";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [roadfullname_field, fromleft_field, toleft_field, fromright_field, toright_field, munileft_field, muniright_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];
var munileft = closest_road[munileft_field];
var muniright = closest_road[muniright_field];      
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
 
 // If the address municipality doesn't match the road left side municipality return an error
 if (munileft != $feature[municipality_field]) return false;
}
else {
    // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
 
 // If the address municipality doesn't match the road right side municipality return an error
 if (muniright != $feature[municipality_field]) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="090337" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = $feature[municipality_field];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var search_string = fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " IS NULL";
if (!IsEmpty(municipality)) {
    search_string = fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " = @municipality";
}
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, municipality_field, id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="090922" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = [$feature[municipality_field]];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var search_string = fulladdr_field + " = @fulladdr" + " AND " + municipality_field + " IN @municipality";
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, municipality_field, id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="091219" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = [$feature[municipality_field]];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var search_string = municipality_field + " IN @municipality" + " AND " + fulladdr_field + " = @fulladdr" ;
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, municipality_field, id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="091718" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = [$feature[municipality_field]];
var municipality_orig = [$originalFeature[municipality_field]];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var search_string = id_field + " IN @ids" + " OR (" + municipality_field + " IN @municipality"  + " AND " + fulladdr_field + " = @fulladdr" + ") OR (" + municipality_field + " IN @municipality_orig" + " AND " + fulladdr_field + " = @fulladdr_orig" + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="092424" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = [$feature[municipality_field]];
var municipality_orig = [$originalFeature[municipality_field]];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, " IS NULL", " IN @municipality"); 
var muniorig_query = iif(municipality_orig == null, " IS NULL", " IN @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="092503" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = [$feature[municipality_field]];
var municipality_orig = [$originalFeature[municipality_field]];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, " IS NULL", " IN @municipality"); 
var muniorig_query = iif(municipality_orig == null, " IS NULL", " IN @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="092719" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = [$feature[municipality_field]];
var municipality_orig = [$originalFeature[municipality_field]];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, " IS NULL", " = @municipality"); 
var muniorig_query = iif(municipality_orig == null, " IS NULL", " = @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="093135" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = [$feature[municipality_field]];
var municipality_orig = [$originalFeature[municipality_field]];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(IsEmpty(municipality), " IS NULL", " IN @municipality"); 
var muniorig_query = iif(IsEmpty(municipality_orig), " IS NULL", " IN @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="093340" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = [$feature[municipality_field]];
var municipality_orig = [$originalFeature[municipality_field]];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = " IN @municipality"; 
if (IsEmpty(muni_query)) {
    muni_query = " IS NULL";
}
var muniorig_query = iif(IsEmpty(municipality_orig), " IS NULL", " IN @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="093410" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = [$feature[municipality_field]];
var municipality_orig = [$originalFeature[municipality_field]];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = " IN @municipality"; 
if (IsEmpty(municipality)) {
    muni_query = " IS NULL";
}
var muniorig_query = iif(IsEmpty(municipality_orig), " IS NULL", " IN @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="093521" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = [$feature[municipality_field]];
var municipality_orig = [$originalFeature[municipality_field]];

return {"errorMessage" : Text(municipality) };

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = " IN @municipality"; 
if (IsEmpty(municipality)) {
    muni_query = " IS NULL";
}
var muniorig_query = iif(IsEmpty(municipality_orig), " IS NULL", " IN @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="093819" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, " IS NULL", " = @municipality"); 
var muniorig_query = iif(municipality_orig == null, " IS NULL", " = @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + municipality_field + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + municipality_field + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="094439" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var muniorig_query = iif(municipality_orig == null, municipality_field + " IS NULL", municipality_field + " = @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = [$feature[municipality_field]];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var search_string = fulladdr_field + " = @fulladdr" + " AND " + muni_query ;
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, municipality_field, id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="095606" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = $feature[municipality_field];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var search_string = fulladdr_field + " = @fulladdr" + " AND " + muni_query ;
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [fulladdr_field, municipality_field, id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="103727" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_description&gt;Address point is outside the nearest road's valid range, is on the wrong side of the road, or doesn't match the road municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the nearest road's valid range, is on the wrong side of the road, or doesn't match the road municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate the address point is inside the closest road's valid range, is on the correct side of the road and matches the road's municipality

// Specify default search distance for related road (feet), 
// Site address that are greater than this distance from their related road will return an error
var search_distance = 1000;
 
// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var municipality_field = "municipality";

// Define the Road Centerline fields
var roadfullname_field = "fullname";
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var munileft_field = "munileft";
var muniright_field = "muniright";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "RoadCenterline", [roadfullname_field, fromleft_field, toleft_field, fromright_field, toright_field, munileft_field, muniright_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];
var munileft = closest_road[munileft_field];
var muniright = closest_road[muniright_field];      
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
 
 // If the address municipality doesn't match the road left side municipality return an error
 if (munileft != $feature[municipality_field]) return false;
}
else {
    // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
 
 // If the address municipality doesn't match the road right side municipality return an error
 if (muniright != $feature[municipality_field]) return false;
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210722" Time="150127" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
if (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var muniorig_query = iif(municipality_orig == null, municipality_field + " IS NULL", municipality_field + " = @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["globalid"], false), search_string);
var globalIDs = [];
for (var siteAddress in siteAddresses) {
 Push(globalIDs, siteAddress.globalid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'globalIDs': globalIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210723" Time="114419" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var muniorig_query = iif(municipality_orig == null, municipality_field + " IS NULL", municipality_field + " = @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["objectid", id_field, fulladdr_field, municipality_field], false), search_string);
var objectIDs = [];
for (var siteAddress in siteAddresses) {
 Push(objectIDs, siteAddress.objectid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'objectIDs': objectIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210723" Time="124145" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var muniorig_query = iif(municipality_orig == null, municipality_field + " IS NULL", municipality_field + " = @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["objectid"], false), search_string);
var objectIDs = [];
for (var siteAddress in siteAddresses) {
 Push(objectIDs, siteAddress.objectid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'objectIDs': objectIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210723" Time="124220" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the Site Addresses fields
var municipality_field = "municipality";

// Define the Geopolitical Areas fields
var name_field = "name";

// Define the type field and the valid types for a municipality in Geopolitical Areas
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Return if the geometry did not change
if (Equals(Geometry($feature), Geometry($originalFeature))) return;

// Test if the feature has the municipality field, if it is missing return
if (!HasKey($feature, municipality_field)) return;

// Get the intersecting Geopolictical Areas and update the value from the first intersecting area
var intersectingAreas = Intersects(Filter(FeatureSetByName($datastore, "GeopoliticalArea", [name_field], false), type_field + " IN @valid_types"), $feature)
for (var intersectinArea in intersectingAreas) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    municipality_field, intersectinArea[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210723" Time="124417" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = $feature[municipality_field];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var search_string = fulladdr_field + " = @fulladdr" + " AND " + muni_query ;
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210723" Time="160145" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;New Rule&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;return true&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;abc&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;5&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210723" Time="160200" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;New Rule&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210723" Time="172224" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";
var capturemeth_field = "capturemeth"

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var addcapturemeth_field = "capturemeth";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// This function will Get a new id for the address point
function getAddressPointID() {
    // Define the name of the database sequence and the format for the id
    // Text on either side of the ${ ... } will be added to the id
    var sequence_name = "AddressPointID";
    var id = NextSequenceValue(sequence_name);
    return `ADD-${id}`;
}

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to default search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var addressptid = getAddressPointID();

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, addressptid
            )
    },
    'edit': [
        {'className': 'AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, addressptid,
                                        numpoints_field, 0, 
                                        addcapturemeth_field, $feature[capturemeth_field], 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210726" Time="091740" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;New Rule 2&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;return true&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;102&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;False&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;5&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210726" Time="091759" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;New Rule 2&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210726" Time="123827" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the Site Addresses fields
var municipality_field = "municipality";

// Define the Geopolitical Areas fields
var name_field = "name";

// Define the type field and the valid types for a municipality in Geopolitical Areas
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Return if the geometry did not change
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; Equals(Geometry($feature), Geometry($originalFeature))) return;

// Test if the feature has the municipality field, if it is missing return
if (!HasKey($feature, municipality_field)) return;

// Get the intersecting Geopolictical Areas and update the value from the first intersecting area
var intersectingAreas = Intersects(Filter(FeatureSetByName($datastore, "GeopoliticalArea", [name_field], false), type_field + " IN @valid_types"), $feature)
for (var intersectinArea in intersectingAreas) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    municipality_field, intersectinArea[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="102745" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field, if it is missing return
if (!HasKey($feature, id_field)) return;

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': {
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[stateabbreviation_field],
                                represent_field, represent_default)
            }
        }]
    }
}

// Test if the feature has the status field, if it is missing return
if (!HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    if (status != status_orig &amp;amp;&amp;amp; status != "Pending" &amp;amp;&amp;amp; status_orig != "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    // If the status currently or originally is Pending update the Postal Address
    else if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                    attributes[pstlcity_field] = $feature[municipality_field]
                }
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="102939" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field, if it is missing return
if (!HasKey($feature, id_field)) return;
if (!HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': {
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[stateabbreviation_field],
                                represent_field, represent_default)
            }
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    if (status != status_orig &amp;amp;&amp;amp; status != "Pending" &amp;amp;&amp;amp; status_orig != "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    // If the status currently or originally is Pending update the Postal Address
    else if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                    attributes[pstlcity_field] = $feature[municipality_field]
                }
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="103105" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field, if it is missing return
if (!HasKey($feature, id_field)) return;
if (!HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': {
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    if (status != status_orig &amp;amp;&amp;amp; status != "Pending" &amp;amp;&amp;amp; status_orig != "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    // If the status currently or originally is Pending update the Postal Address
    else if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                    attributes[pstlcity_field] = $feature[municipality_field]
                }
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="103134" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field, if it is missing return
if (!HasKey($feature, id_field)) return;
if (!HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': {
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    if (status != status_orig &amp;amp;&amp;amp; status != "Pending" &amp;amp;&amp;amp; status_orig != "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    // If the status currently or originally is Pending update the Postal Address
    else if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                    attributes[pstlcity_field] = $feature[municipality_field]
                }
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="103245" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field, if it is missing return
if (!HasKey($feature, id_field)) return;
if (!HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

var attributes = Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
                                
return { "errorMessage" : Text(attributes) }

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': {
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    if (status != status_orig &amp;amp;&amp;amp; status != "Pending" &amp;amp;&amp;amp; status_orig != "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    // If the status currently or originally is Pending update the Postal Address
    else if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                    attributes[pstlcity_field] = $feature[municipality_field]
                }
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="103504" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    if (status != status_orig &amp;amp;&amp;amp; status != "Pending" &amp;amp;&amp;amp; status_orig != "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    // If the status currently or originally is Pending update the Postal Address
    else if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                    attributes[pstlcity_field] = $feature[municipality_field]
                }
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="103800" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    if (status != status_orig &amp;amp;&amp;amp; status != "Pending" &amp;amp;&amp;amp; status_orig != "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    // If the status currently or originally is Pending update the Postal Address
    else if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                //if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                //    attributes[pstlcity_field] = $feature[municipality_field]
                //}
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="104021" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the status currently or originally is Pending update the Postal Address
    if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                //if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                //    attributes[pstlcity_field] = $feature[municipality_field]
                //}
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    else if (status != status_orig) {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="104230" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the status currently or originally is Pending update the Postal Address
    if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                //if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                //    attributes[pstlcity_field] = $feature[municipality_field]
                //}
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    else if (status != status_orig) {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return { "errorMessage" : Text(updates) }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="104457" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the status currently or originally is Pending update the Postal Address
    if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field, represent_field], false);
        for (var pstladdress in postalAddresses) {
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                //if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                //    attributes[pstlcity_field] = $feature[municipality_field]
                //}
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    else if (status != status_orig) {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return { "errorMessage" : Text(updates) }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="104611" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the status currently or originally is Pending update the Postal Address
    if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field, represent_field], false);
        for (var pstladdress in postalAddresses) {
            
            return { "errorMessage" : Text(pstladdress[represent_field]) }
            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes([represent_to_update], pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                //if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                //    attributes[pstlcity_field] = $feature[municipality_field]
                //}
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    else if (status != status_orig) {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return { "errorMessage" : Text(updates) }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="104740" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // If the status currently or originally is Pending update the Postal Address
    if (status == "Pending" || status_orig == "Pending") {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field, represent_field], false);
        for (var pstladdress in postalAddresses) {            
            // If the postal address is an owner/occupant or occupant update the postal address and status
            if (Includes(represent_to_update, pstladdress[represent_field])) {
                var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
                
                // If the postal city is blank or null, or the postal city is equal to the Site Address' original muncipality update the postal city
                if (IsEmpty(pstladdress[pstlcity_field]) || pstladdress[pstlcity_field] == $originalFeature[municipality_field]) {
                    attributes[pstlcity_field] = $feature[municipality_field]
                }
        
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': attributes
                })            
            }
            // If the postal address is not an owner/occupant or occupant than just update the status
            else {            
                Push(updates, {
                    'globalID': pstladdress.globalid,
                    'attributes': Dictionary(pstlstatus_field, status)
                })
            }
        }
    }
    
    // If the Site Address status has changed, but was not previously pending or currently pending just update the status of the Postal Address
    else if (status != status_orig) {
        var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlstatus_field], false);
        for (var pstladdress in postalAddresses) {    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="122959" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    
    // Get the related postal addresses
    var postalAddresses = FeatureSetByRelationshipName($feature, "SiteAddressHasPostalAddresses", [pstlcity_field, pstlstatus_field, represent_field], false);
    for (var pstladdress in postalAddresses) {            
        // If the postal address is an owner/occupant or occupant update the postal address and status
        if ((status == "Pending" || status_orig == "Pending") &amp;amp;&amp;amp; Includes(represent_to_update, pstladdress[represent_field])) {
            var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
            
            // If the postal city is blank or null update the postal city to match the Site Address municipality
            if (IsEmpty(pstladdress[pstlcity_field])) {
                attributes[pstlcity_field] = $feature[municipality_field]
            }
    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': attributes
            })            
        }
        // If the postal address is not an owner/occupant or occupant or the status is not Pending than just update the status
        else {            
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}
&lt;/expression&gt;&lt;category&gt;-1&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="130235" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the Site Addresses fields
var municipality_field = "municipality";

// Define the Geopolitical Areas fields
var name_field = "name";

// Define the type field and the valid types for a municipality in Geopolitical Areas
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Return if the geometry did not change
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; Equals(Geometry($feature), Geometry($originalFeature))) return;

// Test if the feature has the municipality field, if it is missing return
if (!HasKey($feature, municipality_field)) return;

// Get the intersecting Geopolictical Areas and update the value from the first intersecting area
var intersectingAreas = Intersects(Filter(FeatureSetByName($datastore, "GeopoliticalArea", [name_field], false), type_field + " IN @valid_types"), $feature)
for (var intersectingArea in intersectingAreas) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    municipality_field, intersectingArea[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateGeometryAttributes" Date="20210729" Time="135553" Name="" export="">CalculateGeometryAttributes "Site Addresses\Site Addresses" "usngcoord POINT_COORD_NOTATION" # # # "USNG (United States National Grid)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="140917" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Postal Address 1&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

return {
    'edit': [{
        'className': "PostalAddress",
        'adds': [{
            'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                            pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                            pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
        }]
    }]
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Postal Address 1&lt;/rule_name&gt;&lt;evaluation_order&gt;1&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="140936" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Postal Address 1&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];

return {
    'edit': [{
        'className': "PostalAddress",
        'adds': [{
            'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                            pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                            pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
        }]
    }]
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Postal Address 1&lt;/rule_name&gt;&lt;evaluation_order&gt;1&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210729" Time="141306" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Postal Address 1&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210802" Time="094256" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;county&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;40&lt;/field_length&gt;&lt;field_alias&gt;County Name&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Conversion Tools.tbx\FeatureClassToFeatureClass" Date="20210802" Time="095406" Name="" export="">FeatureClassToFeatureClass "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint" "C:\Solutions\Tasks\October2021\Address Data Management\Project\Test.gdb" SiteAddressPoint # "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,addressptid,0,20;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,rclnguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,status,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,GlobalID,-1,-1;created_user "created_user" false true false 255 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,created_user,0,255;created_date "created_date" false true false 8 Date 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,created_date,-1,-1;last_edited_user "last_edited_user" false true false 255 Text 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,last_edited_user,0,255;last_edited_date "last_edited_date" false true false 8 Date 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,last_edited_date,-1,-1;VALIDATIONSTATUS "Validation status" false true true 2 Short 0 0,First,#,C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1" #</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210802" Time="095441" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Test.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMStandardDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterField&gt;&lt;field_name&gt;OBJECTID&lt;/field_name&gt;&lt;field_alias&gt;OBJECTID&lt;/field_alias&gt;&lt;field_is_nullable&gt;False&lt;/field_is_nullable&gt;&lt;clear_field_alias&gt;False&lt;/clear_field_alias&gt;&lt;/AlterField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterField&gt;&lt;field_name&gt;Shape&lt;/field_name&gt;&lt;field_alias&gt;SHAPE&lt;/field_alias&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;clear_field_alias&gt;False&lt;/clear_field_alias&gt;&lt;/AlterField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\EnableEditorTracking" Date="20210802" Time="095640" Name="" export="">EnableEditorTracking "C:\Solutions\Tasks\October2021\Address Data Management\Project\Test.gdb\SiteAddressPoint" created_user created_date last_edited_user last_edited_date ADD_FIELDS "UTC (Coordinated Universal Time)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Rename" Date="20210802" Time="095913" Name="" export="">Rename "C:\Solutions\Tasks\October2021\Address Data Management\Project\Test.gdb\SiteAddressPoint" "C:\Solutions\Tasks\October2021\Address Data Management\Project\Test.gdb\SiteAddressPoint2" FeatureClass</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CopyMultiple" Date="20210802" Time="095942" Name="" export="">CopyMultiple "'C:\Solutions\Tasks\October2021\Address Data Management\Project\Test.gdb\SiteAddressPoint2' FeatureClass" "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address" SiteAddressPoint2 "SiteAddressPoint2 FeatureClass SiteAddressPoint2 #"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\EnableEditorTracking" Date="20210802" Time="100019" Name="" export="">EnableEditorTracking "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint2" created_user created_date last_edited_user last_edited_date ADD_FIELDS "UTC (Coordinated Universal Time)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210802" Time="100037" Name="" export="">UpdateSchema "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint2" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\ImportAttributeRules" Date="20210802" Time="100216" Name="" export="">ImportAttributeRules "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint2" "C:\Solutions\Tasks\October2021\Address Data Management\Project\siteaddressrules.CSV"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Rename" Date="20210802" Time="100939" Name="" export="">Rename "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint2" "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint" FeatureClass</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210802" Time="102625" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var muniorig_query = iif(municipality_orig == null, municipality_field + " IS NULL", municipality_field + " = @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", ["objectid"], false), search_string);
var objectIDs = [];
for (var siteAddress in siteAddresses) {
 Push(objectIDs, siteAddress.objectid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'SiteAddressPoint',
        'objectIDs': objectIDs
    }]
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20210802" Time="102706" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = $feature[municipality_field];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var search_string = fulladdr_field + " = @fulladdr" + " AND " + muni_query ;
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the Site Addresses fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "SiteAddressPoint", [id_field], false), id_field + " = @id");
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210802" Time="105959" Name="" export="">CalculateField "Site Addresses\Site Addresses" county 'DuPage' "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DisableEditorTracking" Date="20210802" Time="164345" Name="" export="">DisableEditorTracking "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint" DISABLE_CREATOR DISABLE_CREATION_DATE DISABLE_LAST_EDITOR DISABLE_LAST_EDIT_DATE</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210802" Time="164454" Name="" export="">CalculateField "Site Addresses" last_edited_user None "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20210802" Time="164537" Name="" export="">CalculateField "Site Addresses" last_edited_date None "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\EnableEditorTracking" Date="20210802" Time="164551" Name="" export="">EnableEditorTracking "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint" created_user created_date last_edited_user last_edited_date ADD_FIELDS "UTC (Coordinated Universal Time)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DisableEditorTracking" Date="20211018" Time="093703" Name="" export="">DisableEditorTracking "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint" DISABLE_CREATOR DISABLE_CREATION_DATE DISABLE_LAST_EDITOR DISABLE_LAST_EDIT_DATE</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20211018" Time="093754" Name="" export="">CalculateField "Site Addresses\Site Addresses" last_edited_user None "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20211018" Time="093843" Name="" export="">CalculateField "Site Addresses\Site Addresses" last_edited_date None "Python 3" # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\EnableEditorTracking" Date="20211018" Time="093857" Name="" export="">EnableEditorTracking "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb\Address\SiteAddressPoint" created_user created_date last_edited_user last_edited_date ADD_FIELDS "UTC (Coordinated Universal Time)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20211018" Time="100358" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/2.8.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateGeometryAttributes" Date="20211018" Time="101213" Name="" export="">CalculateGeometryAttributes "Site Addresses\Site Addresses" "usngcoord POINT_COORD_NOTATION" # # # "USNG (United States National Grid)"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\TruncateTable" Date="20211018" Time="102058" Name="" export="">TruncateTable "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample_1.gdb\Address\SiteAddressPoint"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20211020" Time="092750" Name="" export="">UpdateSchema "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management.gdb\Address\SiteAddressPoint" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    var id = $feature[id_field];
    
    // Get the related postal addresses
    var postalAddresses = Filter(FeatureSetByName($feature, "PostalAddress", [pstlcity_field, pstlstatus_field, represent_field], false), siteaddid_field + " = @id");
    for (var pstladdress in postalAddresses) {            
        // If the postal address is an owner/occupant or occupant update the postal address and status
        if ((status == "Pending" || status_orig == "Pending") &amp;amp;&amp;amp; Includes(represent_to_update, pstladdress[represent_field])) {
            var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
            
            // If the postal city is blank or null update the postal city to match the Site Address municipality
            if (IsEmpty(pstladdress[pstlcity_field])) {
                attributes[pstlcity_field] = $feature[municipality_field]
            }
    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': attributes
            })            
        }
        // If the postal address is not an owner/occupant or occupant or the status is not Pending than just update the status
        else {            
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20211020" Time="092808" Name="" export="">UpdateSchema "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management.gdb\Address\SiteAddressPoint" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    var id = $feature[id_field];
    
    // Get the related postal addresses
    var postalAddresses = Filter(FeatureSetByName($datastore, "PostalAddress", [pstlcity_field, pstlstatus_field, represent_field], false), siteaddid_field + " = @id");
    for (var pstladdress in postalAddresses) {            
        // If the postal address is an owner/occupant or occupant update the postal address and status
        if ((status == "Pending" || status_orig == "Pending") &amp;amp;&amp;amp; Includes(represent_to_update, pstladdress[represent_field])) {
            var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
            
            // If the postal city is blank or null update the postal city to match the Site Address municipality
            if (IsEmpty(pstladdress[pstlcity_field])) {
                attributes[pstlcity_field] = $feature[municipality_field]
            }
    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': attributes
            })            
        }
        // If the postal address is not an owner/occupant or occupant or the status is not Pending than just update the status
        else {            
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20230131" Time="133730" Name="" export="">UpdateSchema "C:\Solutions\Tasks\February2023\ADM\_info_data--AddressDataManagement\Address Data Management.gdb\Address\SiteAddressPoint" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    var id = $feature[id_field];
    
    // Get the related postal addresses
    var postalAddresses = Filter(FeatureSetByName($datastore, "PostalAddress", [pstlcity_field, pstlstatus_field, represent_field, "globalid"], false), siteaddid_field + " = @id");
    for (var pstladdress in postalAddresses) {
        // If the postal address is an owner/occupant or occupant update the postal address and status
        if ((status == "Pending" || status_orig == "Pending") &amp;amp;&amp;amp; Includes(represent_to_update, pstladdress[represent_field])) {
            var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
            
            // If the postal city is blank or null update the postal city to match the Site Address municipality
            if (IsEmpty(pstladdress[pstlcity_field])) {
                attributes[pstlcity_field] = $feature[municipality_field]
            }
    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': attributes
            })            
        }
        // If the postal address is not an owner/occupant or occupant or the status is not Pending than just update the status
        else {            
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return {
        'edit': [{
            'className': "PostalAddress",
            'updates': updates
        }]
    }
}&lt;/expression&gt;&lt;category&gt;4294967295&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20231128" Time="215332" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\vfeagins\Documents\Forms\AddressDataManagement\Address Data Management_Change.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;DelRec&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;10&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;YesNo&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Zip&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;5&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20231129" Time="115639" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\vfeagins\Documents\Forms\AddressDataManagement\Address Data Management_Change.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;GPSX&lt;/field_name&gt;&lt;field_type&gt;DOUBLE&lt;/field_type&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;GPSY&lt;/field_name&gt;&lt;field_type&gt;DOUBLE&lt;/field_type&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;PictureID&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;50&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;ParcelNum&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;20&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Occupant&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;250&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;OLD_ADDRESS&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;250&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20231130" Time="115904" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\vfeagins\Documents\Forms\AddressDataManagement\Address Data Management_Change.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;PD_L&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;10&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20231201" Time="103817" Name="" export="">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=C:\Users\vfeagins\Documents\Forms\AddressDataManagement\Address Data Management_Change.gdb&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;FileGDB&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;discrpagid&lt;/field_name&gt;&lt;default_value&gt;denco.org&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;PT_L&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;25&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;SN_L&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;80&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;ST_L&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;10&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;SD_L&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;10&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;PSAP&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;100&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;AddrCLASS_L&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;5&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;SiteTypes&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;DATE_ASS&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;10&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Source&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;75&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;X&lt;/field_name&gt;&lt;field_type&gt;DOUBLE&lt;/field_type&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Y&lt;/field_name&gt;&lt;field_type&gt;DOUBLE&lt;/field_type&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;CITY&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;5&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;CityCode&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Site_UID&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;254&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;StN_PostMod_L&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;12&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Apt&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;25&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;OLDLASTUPDATE&lt;/field_name&gt;&lt;field_type&gt;DATE&lt;/field_type&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;GC_EXCEPTION&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;75&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Hyperlink&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;254&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Comments&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;INT_EXCEPTION&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;75&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;RPID&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_length&gt;75&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231206" Time="103544" Name="" export="">Append 'C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites' C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\Denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,GlobalID,-1,-1;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Desktop\AddressDataMngmntTest2\OldDencoSetSmall.gdb\ArgyleSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231206" Time="140046" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231206" Time="145410" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\BartonvilleSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\AubreySites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231208" Time="110431" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CarrolltonSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="131316" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="131739" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorralCitySites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CookeCountySites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="132918" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeLewisvilleSite;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PropserSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HebronSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="134328" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TarrantCountySites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWU2Site,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNT2Sites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WestlakeSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="135237" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CoppellSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CopperCanyonSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="142244" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CrossRoadsSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DishSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HackberrySites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="144442" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrugervilleSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NewFairviewSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakewoodVillageSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="145534" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,DiscrpAgID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,DiscrpAgID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,DiscrpAgID,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PonderSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SouthlakeSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TWUSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="154730" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CelinaSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\WiseCountySites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="162156" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DallasSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DoubleOakSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="203349" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HickoryCreekSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\HighlandVillageSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="212729" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\JustinSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\KrumSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LakeDallasSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231210" Time="230424" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\NorthlakeSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\OakPointSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\UNTSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231211" Time="081424" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PilotPointSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ShadyShoresSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231211" Time="091827" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\PlanoSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProsperSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231211" Time="110836" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\ProvidenceVillageSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\RoanokeSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231211" Time="121839" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites;C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,SITEADDID,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,PREADDRNUM,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ADDRNUMSUF,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ADDRNUM,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ADDRRANGE,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,UNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,UNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ALTUNITTYPE,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ALTUNITID,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,FULLNAME,0,125,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,FULLADDR,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,PLACENAME,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,Country,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,State,0,2,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,County,0,40,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,MUNICIPALITY,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ESN,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,MSAG,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,POINTTYPE,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,CAPTUREMETH,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,STATUS,0,30,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,DelRec,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,Zip,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,GPSX,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,GPSY,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,PictureID,0,50,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ParcelNum,0,20,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,OCCUPANT,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,OLD_ADDRESS,0,250,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,PD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,PT,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,SN,0,80,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ST,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,SD,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,PSAP,0,100,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,ADDRCLASS,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,DATE_ASS,0,10,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,Source,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,X,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,Y,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,CITY,0,5,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,Site_UID,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,StN_PosMod,0,12,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,Apt,0,25,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,OLDLASTUPDATE,-1,-1,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,GC_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,Hyperlink,0,254,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,Comments,0,255,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,INT_EXCEPTION,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\SangerSites,RPID,0,75,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TrophyClubSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231211" Time="151628" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\CorinthSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231211" Time="190803" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FortWorthSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231213" Time="080008" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LittleElmSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231214" Time="075810" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\TheColonySites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231215" Time="220615" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FriscoSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231218" Time="040248" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\FlowerMoundSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231220" Time="000921" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\LewisvilleSites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231224" Time="215654" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\Denton1Sites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append" Date="20231231" Time="071110" Name="" export="">Append C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,SITEADDID,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,PREADDRNUM,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ADDRNUMSUF,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ADDRNUM,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ADDRRANGE,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,UNITTYPE,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,UNITID,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ALTUNITTYPE,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ALTUNITID,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,FULLNAME,0,125;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,FULLADDR,0,250;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,PLACENAME,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,Country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,State,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,County,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,MUNICIPALITY,0,50;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ESN,-1,-1;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,MSAG,0,50;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#;addrclass "Description" true true false 4 Long 0 10,First,#;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,POINTTYPE,0,5;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,CAPTUREMETH,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,STATUS,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#;DelRec "DelRec" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,DelRec,-1,-1;Zip "Zip" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,Zip,0,5;GPSX "GPSX" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,PictureID,0,50;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ParcelNum,0,20;Occupant "Occupant" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,OCCUPANT,0,250;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,OLD_ADDRESS,0,250;PD_L "PD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,PD,0,10;PT_L "PT_L" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,PT,0,25;SN_L "SN_L" true true false 80 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,SN,0,80;ST_L "ST_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ST,0,10;SD_L "SD_L" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,SD,0,10;PSAP "PSAP" true true false 100 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,PSAP,0,100;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,ADDRCLASS,0,5;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,DATE_ASS,0,10;Source "Source" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,Source,0,75;X "X" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,X,-1,-1;Y "Y" true true false 8 Double 8 38,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,CITY,0,5;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,Site_UID,0,254;StN_PostMod_L "StN_PostMod_L" true true false 12 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,StN_PosMod,0,12;Apt "Apt" true true false 25 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,Apt,0,25;OLDLASTUPDATE "OLDLASTUPDATE" true true false 8 Date 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,OLDLASTUPDATE,-1,-1;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,GC_EXCEPTION,0,75;Hyperlink "Hyperlink" true true false 254 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,Hyperlink,0,254;Comments "Comments" true true false 255 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,Comments,0,255;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,INT_EXCEPTION,0,75;RPID "RPID" true true false 75 Text 0 0,First,#,C:\Users\vfeagins\Documents\Forms\AddressDataManagement\OldDencoSetSmall.gdb\DentonCountySites,RPID,0,75" # # # NOT_UPDATE_GEOMETRY</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteAttributeRule" Date="20240122" Time="105808" Name="" export="">DeleteAttributeRule "C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Documents\ArcGIS\Projects\MyProject10\Denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint" 'Full Address';'Get Address From Nearest Road';Municipality;'Postal Address';'Site Address ID';'Update Validation Status' Calculation</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteAttributeRule" Date="20240122" Time="105856" Name="" export="">DeleteAttributeRule "C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Documents\ArcGIS\Projects\MyProject10\Denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint" 'Invalid Geometry' Constraint</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteAttributeRule" Date="20240122" Time="105940" Name="" export="">DeleteAttributeRule "C:\Users\vfeagins\OneDrive - Denco Area 9-1-1 District\Documents\ArcGIS\Projects\MyProject10\Denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint" 'Address Does Not Match Road';'Duplicate Full Address';'Duplicate ID' Validation</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240202" Time="163944">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;AddrCLASS_L&lt;/field_name&gt;&lt;domain_name&gt;SiteTypes_1&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240202" Time="164154">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;CITY&lt;/field_name&gt;&lt;domain_name&gt;CityCode&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240202" Time="165543">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;AddrCLASS_L&lt;/field_name&gt;&lt;domain_name&gt;SiteTypes&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240207" Time="090111">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;stateabbreviation&lt;/field_name&gt;&lt;default_value&gt;TX&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AssignDomainToField&gt;&lt;field_name&gt;addrclass&lt;/field_name&gt;&lt;domain_name&gt;SiteAddressClass&lt;/domain_name&gt;&lt;/AssignDomainToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteAttributeRule" Date="20240207" Time="105421">DeleteAttributeRule C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint 'Full Address';'Get Address From Nearest Road';Municipality;'Postal Address';'Site Address ID';'Update Validation Status' Calculation</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteAttributeRule" Date="20240207" Time="105449">DeleteAttributeRule C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint 'Invalid Geometry' Constraint</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240207" Time="112154">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the id field
var id_field = "siteaddid";

// If the feature id is not blank or null return
If (!HasKey($feature, id_field)) return;
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("SiteAddressID_1")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;evaluation_order&gt;1&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";
var capturemeth_field = "capturemeth"

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var addcapturemeth_field = "capturemeth";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// This function will Get a new id for the address point
function getAddressPointID() {
    // Define the name of the database sequence and the format for the id
    // Text on either side of the ${ ... } will be added to the id
    var sequence_name = "AddressPointID";
    var id = NextSequenceValue(sequence_name);
    return `ADD-${id}`;
}

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "sde2.DBO.RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to default search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var addressptid = getAddressPointID();

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, addressptid
            )
    },
    'edit': [
        {'className': 'sde2.DBO.AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, addressptid,
                                        numpoints_field, 0, 
                                        addcapturemeth_field, $feature[capturemeth_field], 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DisableAttributeRules&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;evaluation_order&gt;2&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This will calculate the full address for a site address point by concatenating several other field values 

// Define the full address field
var fulladdr_field = "fulladdr";
If (!HasKey($feature, fulladdr_field)) return;

// Define the fields to concatenate
var values = [$feature.preaddrnum, $feature.addrnum, $feature.addrnumsuf, $feature.fullname, $feature.unittype, $feature.unitid, $feature.altunittype, $feature.altunitid, $feature.secondaltunittype, $feature.secondaltunitid, $feature.thirdaltunittype, $feature.thirdaltunitid, $feature.fourthaltunittype, $feature.fourthaltunitid];

var combined_value = [];
// Loop through the field values and test if they are null or empty strings
// If they are not null or empty add them to an array
for (var i in values) {
    var value = values[i];
    if (IsEmpty(value)) continue;
    combined_value[Count(combined_value)] = value
}

// Return the field values concatenated with a space between
return {
    "result": {
        "attributes": Dictionary(fulladdr_field, Concatenate(combined_value, " "))                  
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;rule_description&gt;Calculates the full address for a site address point by concatenating several other field values&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Full Address&lt;/rule_name&gt;&lt;evaluation_order&gt;3&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the municipality the site address falls within

// Define the Site Addresses fields
var municipality_field = "municipality";

// Define the Geopolitical Areas fields
var name_field = "name";

// Define the type field and the valid types for a municipality in Geopolitical Areas
var type_field = "geotype";
var valid_types = ["City", "Minor Civil Division", "Town", "Township", "Village"];

// Return if the geometry did not change
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; Equals(Geometry($feature), Geometry($originalFeature))) return;

// Test if the feature has the municipality field, if it is missing return
if (!HasKey($feature, municipality_field)) return;

// Get the intersecting Geopolictical Areas and update the value from the first intersecting area
var intersectingAreas = Intersects(Filter(FeatureSetByName($datastore, "sde2.DBO.GeopoliticalArea", [name_field], false), type_field + " IN @valid_types"), $feature)
for (var intersectingArea in intersectingAreas) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    municipality_field, intersectingArea[name_field]
                )
        }
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;rule_description&gt;Calculates the municipality the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Municipality&lt;/rule_name&gt;&lt;evaluation_order&gt;4&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will create a new owner/occupant postal address when a new site address is created
// It will update the full address for any related occupant postal occupant addresses as long the site address status is pending

// Define the Site Addresses fields
var id_field = "siteaddid"
var fulladdr_field = "fulladdr"
var municipality_field = "municipality";
var stateabbreviation_field = "stateabbreviation";
var status_field = "status";

// Define the Postal Addresses fields
var siteaddid_field = "siteaddid";
var pstladdress_field = "pstladdress";
var pstlcity_field = "pstlcity";
var pststate_field = "pstlstate";
var represent_field = "represent"
var pstlstatus_field = "status"

// Define the defaults for Owner / Occupant
var represent_default = "Owner/Occupant"
var represent_to_update = ["Owner/Occupant", "Occupant"]

// Test if the feature has the id field and status, if either is missing return
if (!HasKey($feature, id_field) || !HasKey($feature, status_field)) return;
var status = $feature[status_field];
var status_orig = $originalFeature[status_field]

// If a new Site Address is being added, add a new related Postal Address
if ($editcontext.editType == "INSERT") {
    return {
        'edit': [{
            'className': "sde2.DBO.PostalAddress",
            'adds': [{
                'attributes': Dictionary(siteaddid_field, $feature[id_field], pstlstatus_field, $feature[status_field], 
                                pstladdress_field, $feature[fulladdr_field], pstlcity_field, $feature[municipality_field],
                                pststate_field, $feature[stateabbreviation_field], represent_field, represent_default)
            }]
        }]
    }
}

// If the Site Address is being updated, update the related Postal Addresses
if ($editcontext.editType == "UPDATE") {
    var updates = [];
    var id = $feature[id_field];
    
    // Get the related postal addresses
    var postalAddresses = Filter(FeatureSetByName($datastore, "sde2.DBO.PostalAddress", [pstlcity_field, pstlstatus_field, represent_field, "globalid"], false), siteaddid_field + " = @id");
    for (var pstladdress in postalAddresses) {
        // If the postal address is an owner/occupant or occupant update the postal address and status
        if ((status == "Pending" || status_orig == "Pending") &amp;amp;&amp;amp; Includes(represent_to_update, pstladdress[represent_field])) {
            var attributes = Dictionary(pstladdress_field, $feature[fulladdr_field], pststate_field, $feature[stateabbreviation_field], pstlstatus_field, status)
            
            // If the postal city is blank or null update the postal city to match the Site Address municipality
            if (IsEmpty(pstladdress[pstlcity_field])) {
                attributes[pstlcity_field] = $feature[municipality_field]
            }
    
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': attributes
            })            
        }
        // If the postal address is not an owner/occupant or occupant or the status is not Pending than just update the status
        else {            
            Push(updates, {
                'globalID': pstladdress.globalid,
                'attributes': Dictionary(pstlstatus_field, status)
            })
        }
    }
    
    return {
        'edit': [{
            'className': "sde2.DBO.PostalAddress",
            'updates': updates
        }]
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;rule_description&gt;Create a new owner/occupant postal address when a new site address is created&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Postal Address&lt;/rule_name&gt;&lt;evaluation_order&gt;5&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will mark site addresses as requiring validation if they have the same id or full address and municipality as the feature

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// This function will return whether the id, full address or municipality were updated
function isFeatureUpdated() {
 if ($feature[id_field] != $originalFeature[id_field]) return true;
 if ($feature[fulladdr_field] != $originalFeature[fulladdr_field]) return true;
 if ($feature[municipality_field] != $originalFeature[municipality_field]) return true;
 return false;
}

// If the edit was an update and the one of the defined properties was not updated, return
If (!HasKey($feature, id_field)) return;
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; !isFeatureUpdated()) return;

var ids = [$feature[id_field], $originalFeature[id_field]]
var fulladdr = $feature[fulladdr_field];
var fulladdr_orig = $originalFeature[fulladdr_field];
var municipality = $feature[municipality_field];
var municipality_orig = $originalFeature[municipality_field];

// Get site addresses that either have the same id or fulladdr and municipality either before or after the update
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var muniorig_query = iif(municipality_orig == null, municipality_field + " IS NULL", municipality_field + " = @municipality_orig"); 
var search_string = id_field + " IN @ids" + " OR (" + fulladdr_field + " = @fulladdr" + " AND " + muni_query + ") OR (" + fulladdr_field + " = @fulladdr_orig" + " AND " + muniorig_query + ")"
var siteAddresses = Filter(FeatureSetByName($datastore, "sde2.DBO.SiteAddressPoint", ["objectid"], false), search_string);
var objectIDs = [];
for (var siteAddress in siteAddresses) {
 Push(objectIDs, siteAddress.objectid);
}

// Mark the site addresses as requiring validation
return {
    'validationRequired': [{
        'classname': 'sde2.DBO.SiteAddressPoint',
        'objectIDs': objectIDs
    }]
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;True&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;rule_description&gt;Mark site addresses as requiring validation if they have the same id or full address and municipality as the feature&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Update Validation Status&lt;/rule_name&gt;&lt;evaluation_order&gt;6&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Invalid Geometry&lt;/rule_name&gt;&lt;rule_type&gt;CONSTRAINT&lt;/rule_type&gt;&lt;expression&gt;// This rule will ensure the site address doesn't have a null geometry

var geom = Geometry($feature);
if (IsEmpty(geom)) {
    return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Site address has a null geometry&lt;/error_message&gt;&lt;rule_description&gt;Site address has a null geometry&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = $feature[municipality_field];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var search_string = fulladdr_field + " = @fulladdr" + " AND " + muni_query ;
var siteAddresses = Filter(FeatureSetByName($datastore, "sde2.DBO.SiteAddressPoint", [id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Duplicate ID&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will validate that the site address ID is unique

// Define the Site Addresses fields
var id_field = "siteaddid";

// If the id_field is blank or null return
If (!HasKey($feature, id_field)) return true;
var id = $feature[id_field];
If (IsEmpty(id)) return true;

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var siteAddresses = Filter(FeatureSetByName($datastore, "sde2.DBO.SiteAddressPoint", [id_field], false), id_field + " = @id");
if (Count(siteAddresses) &amp;gt; 1) {
    return {"errorMessage" : `(${id})`}
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same ID&lt;/error_message&gt;&lt;rule_description&gt;Multiple site addresses with the same ID&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Address Does Not Match Road&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will validate the address point is inside the closest road's valid range, is on the correct side of the road and matches the road's municipality

// Specify default search distance for related road (feet), 
// Site address that are greater than this distance from their related road will return an error
var search_distance = 1000;
 
// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var municipality_field = "municipality";

// Define the Road Centerline fields
var roadfullname_field = "fullname";
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var munileft_field = "munileft";
var muniright_field = "muniright";

// If the road fullname is blank or null return
if (!HasKey($feature, fullname_field)) return;
var fullname = $feature[fullname_field];
if (IsEmpty(fullname)) return;

// The Road Centerline feature set
var roads = Filter(FeatureSetByName($datastore, "sde2.DBO.RoadCenterline", [roadfullname_field, fromleft_field, toleft_field, fromright_field, toright_field, munileft_field, muniright_field], true), roadfullname_field + " = @fullname");

// This function will find closest line segment to the feature. Limit search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will return the parity (Even, Odd, Both) given the from and to values of a side
function getParity(from, to) {
    if (IsEmpty(from) || from == 0 || IsEmpty(to) || to == 0) return null;
    
    if (from % 2 == 0 &amp;amp;&amp;amp; to % 2 == 0) return "Even";
    
    if (from % 2 != 0 &amp;amp;&amp;amp; to % 2 != 0) return "Odd";
    
    return "Both"
}

// Find closest road with matching road name to the site address
// If no road is found return an error
var closest_road = findClosestLine();
if (closest_road == null) return false;

// Get the address number is not a number return true as no further checks are necessary
var addrnum = Number($feature[address_field])
if (IsNan(addrnum)) return true;
var isEven = Floor(addrnum, 0) % 2 == 0;

// Get the address ranges and left and right parity from the road
var fromleft = closest_road[fromleft_field];
var toleft = closest_road[toleft_field];    
var fromright = closest_road[fromright_field];
var toright = closest_road[toright_field];
var munileft = closest_road[munileft_field];
var muniright = closest_road[muniright_field];      
var parityleft = getParity(fromleft, toleft);
var parityright = getParity(fromright, toright);

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

if (data["lineSide"] == "Left") {
    // If left parity is null return an error
    if (IsEmpty(parityleft)) return false;
    
    // If left parity is even and address number is odd return an error
    if (parityleft == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If left parity is odd and address number is even return an error
    if (parityleft == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the left side range return an error
    if (addrnum &amp;lt; fromleft || addrnum &amp;gt; toleft) return false;
 
 // If the address municipality doesn't match the road left side municipality return an error
 if (munileft != $feature[municipality_field]) return false;
}
else {
    // If right parity is null return an error
    if (IsEmpty(parityright)) return false;
    
    // If right parity is even and address number is odd return an error
    if (parityright == "Even" &amp;amp;&amp;amp; !isEven) return false;
    
    // If right parity is odd and address number is even return an error
    if (parityright == "Odd" &amp;amp;&amp;amp; isEven) return false;
    
    // If address number is not within the right side range return an error
    if (addrnum &amp;lt; fromright || addrnum &amp;gt; toright) return false;
 
 // If the address municipality doesn't match the road right side municipality return an error
 if (muniright != $feature[municipality_field]) return false;
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Address point is outside the nearest road's valid range, is on the wrong side of the road, or doesn't match the road municipality&lt;/error_message&gt;&lt;rule_description&gt;Address point is outside the nearest road's valid range, is on the wrong side of the road, or doesn't match the road municipality&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240207" Time="112510">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Duplicate Full Address&lt;/rule_name&gt;&lt;rule_type&gt;VALIDATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will validate that the full address is unique for the municipality

// Define the Site Addresses fields
var id_field = "siteaddid";
var fulladdr_field = "fulladdr";
var municipality_field = "municipality";

// If the fulladdr is blank or null return
If (!HasKey($feature, fulladdr_field)) return true;
var fulladdr = $feature[fulladdr_field];
If (IsEmpty(fulladdr)) return true;
var municipality = $feature[municipality_field];

// Search the site addresses feature class for records with the same full address.
// If there is more than one return an error
var muni_query = iif(municipality == null, municipality_field + " IS NULL", municipality_field + " = @municipality"); 
var search_string = fulladdr_field + " = @fulladdr" + " AND " + muni_query ;
var siteAddresses = Filter(FeatureSetByName($datastore, "sde2.DBO.SiteAddressPoint", [id_field], false), search_string);
if (Count(siteAddresses) &amp;gt; 1) {
    var ids = []
    for (var f in siteAddresses) {
        Push(ids, f[id_field]);
    }
    return {"errorMessage" : `(${Concatenate(ids, ", ")})`}
}
return true;&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;False&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;error_number&gt;1&lt;/error_number&gt;&lt;error_message&gt;Multiple site addresses with the same full address in the municipality&lt;/error_message&gt;&lt;rule_description&gt;Multiple site addresses with the same full address in the municipality&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;True&lt;/batch&gt;&lt;severity&gt;1&lt;/severity&gt;&lt;category&gt;0&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240208" Time="112519">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;AUTHENTICATION_MODE=OSA;HISTORICAL_TIMESTAMP=1/24/2024 5:00:00 PM&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableEditorTracking&gt;&lt;creator_field&gt;created_user&lt;/creator_field&gt;&lt;creation_date_field&gt;created_date&lt;/creation_date_field&gt;&lt;last_editor_field&gt;last_edited_user&lt;/last_editor_field&gt;&lt;last_edit_date_field&gt;last_edited_date&lt;/last_edit_date_field&gt;&lt;add_fields&gt;TRUE&lt;/add_fields&gt;&lt;record_dates_in&gt;UTC&lt;/record_dates_in&gt;&lt;/EnableEditorTracking&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240209" Time="103610">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AssignDefaultToField&gt;&lt;field_name&gt;country&lt;/field_name&gt;&lt;default_value&gt;US&lt;/default_value&gt;&lt;/AssignDefaultToField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240209" Time="144757">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;EnableAttributeRules&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/EnableAttributeRules&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240209" Time="153506">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the id field
var id_field = "siteaddid";

// If the feature id is not blank or null return
If (!HasKey($feature, id_field)) return;
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("SiteAddressID_495681")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;0&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240209" Time="153909">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence /&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240213" Time="100033">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Zip&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the Zipcode the site address falls within

// Define the Site Addresses fields
var Zip_field = "Zip";

// Define the Zipcode fields
var ZIP_field = "ZIP";

// Define the type field and the valid types for a Zipcode in Zipcode
var type_field = "ZIP";
var valid_types = Text;

// Return if the geometry did not change
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; Equals(Geometry($feature), Geometry($originalFeature))) return;

// Test if the feature has the ZIP field, if it is missing return
if (!HasKey($feature, ZIP_field)) return;

// Get the intersecting Zipcode and update the value from the first intersecting area
var intersectingAreas = Intersects(Filter(FeatureSetByName($datastore, "sde2.DBO.Zipcode", [ZIP_field], false), type_field + " IN @valid_types"), $feature)
for (var intersectingArea in intersectingAreas) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    ZIP_field, intersectingArea[ZIP_field]
                )
        }
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculages the zipcode the site address falls within&lt;/rule_description&gt;&lt;field_name&gt;Zip&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Zip&lt;/rule_name&gt;&lt;evaluation_order&gt;7&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240213" Time="101351">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Zip&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240213" Time="101534">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Zip&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the Zipcode the site address falls within

// Define the Site Addresses fields
var Zip_field = "Zip";

// Define the Zipcode fields
var ZIP_field = "ZIP";

// Define the type field for a Zipcode in Zipcode
var type_field = "ZIP";

// Return if the geometry did not change
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; Equals(Geometry($feature), Geometry($originalFeature))) return;

// Test if the feature has the ZIP field, if it is missing return
if (!HasKey($feature, ZIP_field)) return;

// Get the intersecting Zipcode and update the value from the first intersecting area
var intersectingAreas = Intersects(Filter(FeatureSetByName($datastore, "sde2.DBO.Zipcode", [ZIP_field], false), $feature)
for (var intersectingArea in intersectingAreas) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    ZIP_field, intersectingArea[ZIP_field]
                )
        }
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates the zip the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Zip&lt;/rule_name&gt;&lt;evaluation_order&gt;7&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240213" Time="101743">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Zip&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;// This rule will calculate the Zipcode the site address falls within

// Define the Site Addresses fields
var Zip_field = "Zip";

// Define the Zipcode fields
var ZIP_field = "ZIP";

// Define the type field for a Zipcode in Zipcode
var type_field = "ZIP";

// Return if the geometry did not change
if ($editcontext.editType == "UPDATE" &amp;amp;&amp;amp; Equals(Geometry($feature), Geometry($originalFeature))) return;

// Test if the feature has the ZIP field, if it is missing return
if (!HasKey($feature, ZIP_field)) return;

// Get the intersecting Zipcode and update the value from the first intersecting area
var intersectingAreas = Intersects(Filter(FeatureSetByName($datastore, "sde2.DBO.Zipcode", [ZIP_field], false), $feature)
for (var intersectingArea in intersectingAreas) {
    return {
        "result": {
            "attributes":
                Dictionary(
                    ZIP_field, intersectingArea[ZIP_field]
                )
        }
    }
}&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates the zip the site address falls within&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Zip&lt;/rule_name&gt;&lt;evaluation_order&gt;7&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240219" Time="084850">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Source&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;$feature.municipality&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates municipality the site address falls within based on field input for municipality&lt;/rule_description&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Source&lt;/rule_name&gt;&lt;evaluation_order&gt;7&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240219" Time="085419">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;DeleteAttributeRule&gt;&lt;rule_name&gt;Source&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;/DeleteAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240219" Time="085731">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Source&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;$feature.municipality&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates municipality the site address falls within based on field input for municipality&lt;/rule_description&gt;&lt;field_name&gt;Source&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Source&lt;/rule_name&gt;&lt;evaluation_order&gt;7&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240221" Time="170802">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AddAttributeRule&gt;&lt;rule_name&gt;Apt&lt;/rule_name&gt;&lt;rule_type&gt;CALCULATION&lt;/rule_type&gt;&lt;expression&gt;$feature.unitid&lt;/expression&gt;&lt;is_editable&gt;True&lt;/is_editable&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;True&lt;/triggering_events_update&gt;&lt;rule_description&gt;Calculates UnitID for the site address that has unit information.&lt;/rule_description&gt;&lt;field_name&gt;Apt&lt;/field_name&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;batch&gt;False&lt;/batch&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;category&gt;-1&lt;/category&gt;&lt;/AddAttributeRule&gt;&lt;ReorderAttributeRule&gt;&lt;rule_name&gt;Apt&lt;/rule_name&gt;&lt;evaluation_order&gt;8&lt;/evaluation_order&gt;&lt;/ReorderAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20240325" Time="172937">CalculateField "Site Addresses\Site Addresses" Zip 75007 Python # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20240407" Time="215336">CalculateField "Site Addresses\Site Addresses" discrpagid "denco.org" Python # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteField" Date="20240510" Time="000700">DeleteField C:\Users\vfeagins\AppData\Roaming\Esri\ArcGISPro\Favorites\denco-sql1.sde\sde2.DBO.Address\sde2.DBO.SiteAddressPoint PT_L;StN_PostMod_L;OLDLASTUPDATE "Delete Fields"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240531" Time="100325">UpdateSchema "CIMDATA=&lt;CIMFeatureDatasetDataConnection xsi:type='typens:CIMFeatureDatasetDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.2.0'&gt;&lt;FeatureDataset&gt;sde2.DBO.Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;SERVER=denco-sql1;INSTANCE=sde:sqlserver:denco-sql1;DBCLIENT=sqlserver;DB_CONNECTION_PROPERTIES=denco-sql1;DATABASE=sde2;VERSION=dbo.DEFAULT;AUTHENTICATION_MODE=OSA&lt;/WorkspaceConnectionString&gt;&lt;WorkspaceFactory&gt;SDE&lt;/WorkspaceFactory&gt;&lt;Dataset&gt;sde2.DBO.SiteAddressPoint&lt;/Dataset&gt;&lt;DatasetType&gt;esriDTFeatureClass&lt;/DatasetType&gt;&lt;/CIMFeatureDatasetDataConnection&gt;" &lt;operationSequence&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;AddNum_Pre&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;15&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;Add_Number&lt;/field_name&gt;&lt;field_type&gt;LONG&lt;/field_type&gt;&lt;field_precision&gt;10&lt;/field_precision&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;AddNum_Suf&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;15&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;St_PreMod&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;15&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;St_PreDir&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;10&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;RoadPrefix&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;St_PreTyp&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;50&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;St_PreSep&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;20&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;St_Name&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;254&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;St_PosTyp&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;50&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;St_PosDir&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;10&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;field_domain&gt;RoadPostDir&lt;/field_domain&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AddField&gt;&lt;field_name&gt;St_PosMod&lt;/field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&gt;&lt;field_precision&gt;0&lt;/field_precision&gt;&lt;field_length&gt;255&lt;/field_length&gt;&lt;field_is_nullable&gt;True&lt;/field_is_nullable&gt;&lt;field_is_required&gt;False&lt;/field_is_required&gt;&lt;/AddField&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240908" Time="184740">UpdateSchema C:\GIS\Denco911-GIS_sde.sde\SDE.Address\SDE.SiteAddressPoint "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the id field
var id_field = "siteaddid";

// If the feature id is not blank or null return
If (!HasKey($feature, id_field)) return;
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("sde.SiteAddressID_1_1_5")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;0&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";
var capturemeth_field = "capturemeth"

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var addcapturemeth_field = "capturemeth";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// This function will Get a new id for the address point
function getAddressPointID() {
    // Define the name of the database sequence and the format for the id
    // Text on either side of the ${ ... } will be added to the id
    var sequence_name = "sde.AddressPointID_1_1_5";
    var id = NextSequenceValue(sequence_name);
    return `ADD-${id}`;
}

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "SDE.RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to default search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var addressptid = getAddressPointID();

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, addressptid
            )
    },
    'edit': [
        {'className': 'SDE.AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, addressptid,
                                        numpoints_field, 0, 
                                        addcapturemeth_field, $feature[capturemeth_field], 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;0&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema" Date="20240908" Time="184807">UpdateSchema C:\GIS\Denco911-GIS_sde.sde\SDE.Address\SDE.SiteAddressPoint "&lt;operationSequence&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Site Address ID&lt;/rule_name&gt;&lt;rule_description&gt;Creates a new unique id when a site address point is created.&lt;/rule_description&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will create a new unique id when an site address point is created

// Define the id field
var id_field = "siteaddid";

// If the feature id is not blank or null return
If (!HasKey($feature, id_field)) return;
var id = $feature[id_field];
If (!IsEmpty(id)) return;

// Define the name of the database sequence and the format for the id
// Text on either side of the ${ ... } will be added to the id
id = `SID-${NextSequenceValue("sde.SiteAddressID_1_1_5")}`;

// Return the new id
return {
    "result": {
        "attributes": Dictionary(id_field, id)                  
    }
}&lt;/expression&gt;&lt;category&gt;0&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;workflow&gt;&lt;AlterAttributeRule&gt;&lt;rule_name&gt;Get Address From Nearest Road&lt;/rule_name&gt;&lt;rule_description&gt;Calculates an address number and full road name based on nearest road&lt;/rule_description&gt;&lt;error_number&gt;0&lt;/error_number&gt;&lt;exclude_from_client_eval&gt;True&lt;/exclude_from_client_eval&gt;&lt;severity&gt;-1&lt;/severity&gt;&lt;expression&gt;// This rule will calculate an address number and full road name based on nearest road
// A new address point will also be added at the closest point along the road

// Specify default search distance for related road (feet)
var search_distance = 1000;

// Define the Site Addresses fields
var fullname_field = "fullname";
var address_field = "addrnum";
var addressptid_field = "addressptid";
var capturemeth_field = "capturemeth"

// Define the Road Centerline fields
var fromleft_field = "fromleft";
var toleft_field = "toleft";
var fromright_field = "fromright";
var toright_field = "toright";
var roadfullname_field = "fullname";

// Define the Address Point fields and defaults
var id_field = "addressptid";
var pointtype_field = "pointtype";
var pointtype_default = "Driveway Entrance";
var addcapturemeth_field = "capturemeth";
var offdist_field = "offdist";
var offdir_field = "offdir";
var numpoints_field = "numpoints";

// This function will Get a new id for the address point
function getAddressPointID() {
    // Define the name of the database sequence and the format for the id
    // Text on either side of the ${ ... } will be added to the id
    var sequence_name = "sde.AddressPointID_1_1_5";
    var id = NextSequenceValue(sequence_name);
    return `ADD-${id}`;
}

// If the address number is not blank or null return
if (!HasKey($feature, address_field)) return;
if (!IsEmpty($feature[address_field])) return;

// If the geometry is null return
if (IsEmpty(Geometry($feature))) return;

// The Road Centerline feature set
var roads = FeatureSetByName($datastore, "SDE.RoadCenterline", [fromleft_field, toleft_field, fromright_field, toright_field, roadfullname_field], true);

// This function will find closest line segment to the feature. Limit search to default search radius.
function findClosestLine() {
    var candidates = Intersects(roads, Buffer($feature, search_distance));

    var shortest = [1e10, null];
    for (var line in candidates) {
        var d = Distance($feature, line)
        if (d &amp;lt; shortest[0]) shortest = [d, line]
    }
    return shortest[-1]
}

// This function will find the closest point on line_feature from point_feature
function closestPointInfo(point_feature, line_feature) {
    var vertices = line_feature["paths"]
    var x = point_feature["x"];
    var y = point_feature["y"];

    // Loop through each part of the geometry and each segment, tracking the shortest distance
    var shortest = [1e10];
    for (var i in vertices) {
        var part = vertices[i];
        var previous = part[0];
        for (var j = 1; j &amp;lt; Count(part); j++) {
            var current = part[j];
            var result = pDistance(x, y, previous["x"], previous["y"], current["x"], current["y"]);
            if (result[0] &amp;lt; shortest[0]) shortest = result
            previous = current;
        }

    }

    // Couldn't find anything
    if (Count(shortest) == 1) return null

    return {"distance": shortest[0],
            "coordinates": shortest[1],
            "isVertex": shortest[2],
            "lineSide": shortest[3]}
}

// This function will get distance between 2 points
function pDistance(x, y, x1, y1, x2, y2) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var param = -1;
  if (len_sq != 0) //in case of 0 length line
      param = dot / len_sq;

  var xx, yy;
  var is_vertex = true;
  if (param &amp;lt; 0) {
    xx = x1;
    yy = y1;
  }
  else if (param &amp;gt; 1) {
    xx = x2;
    yy = y2;
  }
  else {
    is_vertex = false;
    xx = x1 + param * C;
    yy = y1 + param * D;
  }

  var dx = x - xx;
  var dy = y - yy;
  return [Sqrt(dx * dx + dy * dy), [xx, yy], is_vertex, sideOfLine(x,y,x1,y1,x2,y2)];
}

// This function will get side of line segment that a point (x, y) is on based on the direction of segment [[x1, y1], [x2, y2]]
function sideOfLine(x, y, x1, y1, x2, y2) {

    var d = (x - x1) * (y2 - y1) - (y - y1) * (x2 - x1)
    if (d &amp;lt; 0) {
        return 'Left'
    } else if (d &amp;gt; 0) {
        return 'Right'
    } else {
        return null
    }
}

// This function will create point geometry from coordinates [x, y]
function createPoint(coordinates, spatial_ref) {    
    return Point({"x": coordinates[0], "y": coordinates[1], "z" : 0, "spatialReference": spatial_ref})
}

// This function will return the segment intersected and the distance along the line
function intersectDistanceAlong(sourceGeometry, interestedLine){
    var distanceAlongLine = 0;
    // Loop through the segments of the line. Handle multipart geometries
    for (var part in Geometry(interestedLine).paths) {
        var segment = Geometry(interestedLine).paths[part];

        // Loop through the points in the segment
        for (var i in segment) {
            if (i == 0) continue;

            // Construct a 2-point line segment from the current and previous point
            var firstPoint = segment[i-1];
            var secondPoint = segment[i]
            var twoPointLine = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [secondPoint.x, secondPoint.y]]], 'spatialReference' : firstPoint.spatialReference});

            // Test if the  point intersects the 2-point line segment
            if (Intersects(sourceGeometry, twoPointLine)) {
                // Construct a 2-point line segment using the previous point and the address point
                var lastSegment = Polyline({ 'paths' : [[[firstPoint.x, firstPoint.y], [sourceGeometry.x, sourceGeometry.y]]], 'spatialReference' : firstPoint.spatialReference});
                // Add to the total distance along the line and break the loop
                distanceAlongLine += Length(lastSegment);
                return [twoPointLine, distanceAlongLine]
            }
            // Add to the toal distance along the line
            distanceAlongLine += Length(twoPointLine);
        }
    }
    return null;
}

// This function will return the address number of the new site address point
// It determines this based on the from and to address range on the intersecting road and the direction of the offset
function getAddrNum(road, percentAlong, dir) {
    var addrNum = null;
    var from = road[fromleft_field];
    var to = road[toleft_field];    
    if (Lower(dir) == 'right') {
        var from = road[fromright_field];
        var to = road[toright_field];    
    }
    if (from == null || to == null) return null;
    var val = percentAlong * (to - from);
    var addrNum = 0;
    
    if ((Floor(val) % 2) == 0) addrNum = Floor(val);
    else if ((Ceil(val) % 2) == 0) addrNum = Ceil(val);
    else addrNum = Floor(val) - 1;
    
    return from + addrNum;
}

// Find closest road to the site address, return if no road found within search distance
var closest_road = findClosestLine();
if (closest_road == null) return;

// Find info about the closest point on the closest line to site address
var data = closestPointInfo(Geometry($feature), Geometry(closest_road));

// Calculate the distance along of closest point
var closest_point = createPoint(data["coordinates"], Geometry($feature)["spatialReference"])
var results = intersectDistanceAlong(closest_point, closest_road)
var distanceAlongLine = results[1];

// Get the new address number of the site address point based on the distance along the road and line side
var percent_along = distanceAlongLine / Length(closest_road)
var address_num = getAddrNum(closest_road, percent_along, data["lineSide"])

// Get a new id for the Address Point
var addressptid = getAddressPointID();

// Update the address number, full road name, and address point id of the Site Address
// Add a new related Address Point
return {
    "result": {
        "attributes":
            Dictionary(
                address_field, address_num,
                fullname_field, closest_road[roadfullname_field],
                addressptid_field, addressptid
            )
    },
    'edit': [
        {'className': 'SDE.AddressPoint', 
             'adds': [{
                        'attributes': Dictionary(
                                        id_field, addressptid,
                                        numpoints_field, 0, 
                                        addcapturemeth_field, $feature[capturemeth_field], 
                                        pointtype_field, pointtype_default, 
                                        offdir_field, data["lineSide"], 
                                        offdist_field, data["distance"]
                                    ), 
                        'geometry': closest_point
                    }]
        }
    ]
}&lt;/expression&gt;&lt;category&gt;0&lt;/category&gt;&lt;triggering_events_insert&gt;True&lt;/triggering_events_insert&gt;&lt;triggering_events_delete&gt;False&lt;/triggering_events_delete&gt;&lt;triggering_events_update&gt;False&lt;/triggering_events_update&gt;&lt;/AlterAttributeRule&gt;&lt;/workflow&gt;&lt;/operationSequence&gt;"</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20240930" Time="000457">CalculateField "Site Addresses\Site Addresses" PictureID "SID-" Python # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20240930" Time="002137">CalculateField "Site Addresses\Site Addresses" fourthaltunitid autoIncrement() Python "rec=0 
def autoIncrement(): 
 global rec 
 pStart = 503654
 pInterval = 1 
 if (rec == 0):  
  rec = pStart  
 else:  
  rec += pInterval  
 return rec" Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20240930" Time="003828">CalculateField "Site Addresses\Site Addresses" siteaddid "!PictureID! + !fourthaltunitid!" Python # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20240930" Time="005820">CalculateField "Site Addresses\Site Addresses" fourthaltunitid "" Python # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20240930" Time="082246">CalculateField "Site Addresses\Site Addresses" PictureID !PictureID!.replace("SID-", "") Python "txt = "SID-"
x = txt.replace ("SID-", "")

print(x)" Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20241004" Time="111117">CalculateField "Site Addresses\Site Addresses" rclnguid autoIncrement() Python "rec=0 
def autoIncrement(): 
 global rec 
 pStart = 504853
 pInterval = 1 
 if (rec == 0):  
  rec = pStart  
 else:  
  rec += pInterval  
 return rec" Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20241004" Time="111138">CalculateField "Site Addresses\Site Addresses" rclnguid autoIncrement() Python "rec=0 
def autoIncrement(): 
 global rec 
 pStart = 504853
 pInterval = 1 
 if (rec == 0):  
  rec = pStart  
 else:  
  rec += pInterval  
 return rec" Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20241004" Time="111336">CalculateField "Site Addresses\Site Addresses" rclnguid autoIncrement() Python "rec=0 
def autoIncrement(): 
 global rec 
 pStart = 504853
 pInterval = 1 
 if (rec == 0):  
  rec = pStart  
 else:  
  rec += pInterval  
 return rec" Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20241004" Time="112129">CalculateField "Site Addresses\Site Addresses" preaddrnum "SID-" Python # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20241004" Time="112658">CalculateField "Site Addresses\Site Addresses" siteaddid !preaddrnum!+!rclnguid! Python # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField" Date="20241004" Time="113649">CalculateField "Site Addresses\Site Addresses" rclnguid "" Python # Text NO_ENFORCE_DOMAINS</Process><Process ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Conversion Tools.tbx\ExportFeatures" Date="20241021" Time="114823">ExportFeatures "Site Addresses\Site Addresses" "C:\Users\vanessa.denco911\Documents\micro_Data\Data Requests\Pilot Point\10192024\DencoArea911PPointSitesOct2024.gdb\PilotPointSitesOct2024" # NOT_USE_ALIAS "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,Site Addresses\Site Addresses,siteaddid,0,19;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,Site Addresses\Site Addresses,addressptid,0,19;rclnguid "NENA Global ID" true true false 254 Text 0 0,First,#,Site Addresses\Site Addresses,rclnguid,0,253;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,Site Addresses\Site Addresses,discrpagid,0,74;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,Site Addresses\Site Addresses,preaddrnum,0,4;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,Site Addresses\Site Addresses,addrnumsuf,0,4;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,Site Addresses\Site Addresses,addrnum,0,19;addrrange "Address Range" true true false 50 Text 0 0,First,#,Site Addresses\Site Addresses,addrrange,0,49;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,unittype,0,9;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,unitid,0,9;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,altunittype,0,9;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,altunitid,0,9;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,secondaltunittype,0,9;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,secondaltunitid,0,9;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,thirdaltunittype,0,9;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,thirdaltunitid,0,9;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,fourthaltunittype,0,9;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,fourthaltunitid,0,9;fullname "Full Road Name" true true false 300 Text 0 0,First,#,Site Addresses\Site Addresses,fullname,0,299;fulladdr "Full Address" true true false 500 Text 0 0,First,#,Site Addresses\Site Addresses,fulladdr,0,499;placename "Place Name" true true false 250 Text 0 0,First,#,Site Addresses\Site Addresses,placename,0,249;country "Country Abbreviation" true true false 2 Text 0 0,First,#,Site Addresses\Site Addresses,country,0,1;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,Site Addresses\Site Addresses,stateabbreviation,0,1;county "County Name" true true false 40 Text 0 0,First,#,Site Addresses\Site Addresses,county,0,39;municipality "Municipality Name" true true false 100 Text 0 0,First,#,Site Addresses\Site Addresses,municipality,0,99;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,Site Addresses\Site Addresses,esn,0,4;msag "MSAG Community" true true false 35 Text 0 0,First,#,Site Addresses\Site Addresses,msag,0,34;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,Site Addresses\Site Addresses,usngcoord,0,49;addrclass "Description" true true false 4 Long 0 0,First,#,Site Addresses\Site Addresses,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,Site Addresses\Site Addresses,pointtype,0,29;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,Site Addresses\Site Addresses,capturemeth,0,29;status "Status" true true false 30 Text 0 0,First,#,Site Addresses\Site Addresses,status,0,29;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,Site Addresses\Site Addresses,GlobalID,-1,-1;created_user "created_user" false true false 255 Text 0 0,First,#,Site Addresses\Site Addresses,created_user,0,254;created_date "created_date" false true false 8 Date 0 0,First,#,Site Addresses\Site Addresses,created_date,-1,-1;last_edited_user "last_edited_user" false true false 255 Text 0 0,First,#,Site Addresses\Site Addresses,last_edited_user,0,254;last_edited_date "last_edited_date" false true false 8 Date 0 0,First,#,Site Addresses\Site Addresses,last_edited_date,-1,-1;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 0,First,#,Site Addresses\Site Addresses,VALIDATIONSTATUS,-1,-1;DelRec "DelRec" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,DelRec,0,9;Zip "Zip" true true false 5 Text 0 0,First,#,Site Addresses\Site Addresses,Zip,0,4;GPSX "GPSX" true true false 8 Double 0 0,First,#,Site Addresses\Site Addresses,GPSX,-1,-1;GPSY "GPSY" true true false 8 Double 0 0,First,#,Site Addresses\Site Addresses,GPSY,-1,-1;PictureID "PictureID" true true false 50 Text 0 0,First,#,Site Addresses\Site Addresses,PictureID,0,49;ParcelNum "ParcelNum" true true false 20 Text 0 0,First,#,Site Addresses\Site Addresses,ParcelNum,0,19;OLD_ADDRESS "OLD_ADDRESS" true true false 250 Text 0 0,First,#,Site Addresses\Site Addresses,OLD_ADDRESS,0,249;PD_L "PD_L" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,PD_L,0,9;SN_L "SN_L" true true false 80 Text 0 0,First,#,Site Addresses\Site Addresses,SN_L,0,79;ST_L "ST_L" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,ST_L,0,9;SD_L "SD_L" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,SD_L,0,9;PSAP "PSAP" true true false 100 Text 0 0,First,#,Site Addresses\Site Addresses,PSAP,0,99;AddrCLASS_L "AddrCLASS_L" true true false 5 Text 0 0,First,#,Site Addresses\Site Addresses,AddrCLASS_L,0,4;DATE_ASS "DATE_ASS" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,DATE_ASS,0,9;Source "Source" true true false 75 Text 0 0,First,#,Site Addresses\Site Addresses,Source,0,74;X "X" true true false 8 Double 0 0,First,#,Site Addresses\Site Addresses,X,-1,-1;Y "Y" true true false 8 Double 0 0,First,#,Site Addresses\Site Addresses,Y,-1,-1;CITY "CITY" true true false 5 Text 0 0,First,#,Site Addresses\Site Addresses,CITY,0,4;Site_UID "Site_UID" true true false 254 Text 0 0,First,#,Site Addresses\Site Addresses,Site_UID,0,253;Apt "Apt" true true false 25 Text 0 0,First,#,Site Addresses\Site Addresses,Apt,0,24;GC_EXCEPTION "GC_EXCEPTION" true true false 75 Text 0 0,First,#,Site Addresses\Site Addresses,GC_EXCEPTION,0,74;INT_EXCEPTION "INT_EXCEPTION" true true false 75 Text 0 0,First,#,Site Addresses\Site Addresses,INT_EXCEPTION,0,74;RPID "RPID" true true false 75 Text 0 0,First,#,Site Addresses\Site Addresses,RPID,0,74;AddNum_Pre "Address Number Prefix" true true false 15 Text 0 0,First,#,Site Addresses\Site Addresses,AddNum_Pre,0,14;Add_Number "Address Number" true true false 4 Long 0 0,First,#,Site Addresses\Site Addresses,Add_Number,-1,-1;AddNum_Suf "Address Number Suffix" true true false 15 Text 0 0,First,#,Site Addresses\Site Addresses,AddNum_Suf,0,14;St_PreMod "Street Name Pre Modifier" true true false 15 Text 0 0,First,#,Site Addresses\Site Addresses,St_PreMod,0,14;St_PreDir "Street Name Pre Directional" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,St_PreDir,0,9;St_PreTyp "Street Name Pre Type" true true false 50 Text 0 0,First,#,Site Addresses\Site Addresses,St_PreTyp,0,49;St_PreSep "Street Name Pre Type Separator" true true false 20 Text 0 0,First,#,Site Addresses\Site Addresses,St_PreSep,0,19;St_Name "Street Name" true true false 254 Text 0 0,First,#,Site Addresses\Site Addresses,St_Name,0,253;St_PosTyp "Street Name Post Type" true true false 50 Text 0 0,First,#,Site Addresses\Site Addresses,St_PosTyp,0,49;St_PosDir "Street Name Post Directional" true true false 10 Text 0 0,First,#,Site Addresses\Site Addresses,St_PosDir,0,9;St_PosMod "Street Name Post Modifier" true true false 255 Text 0 0,First,#,Site Addresses\Site Addresses,St_PosMod,0,254" #</Process></lineage><itemProps><itemLocation><linkage Sync="TRUE">file://\\D911-WS-VGMONT\C$\Users\vanessa.denco911\Documents\micro_Data\Data Requests\Pilot Point\10192024\DencoArea911PPointSitesOct2024.gdb</linkage><protocol Sync="TRUE">Local Area Network</protocol></itemLocation><itemName Sync="TRUE">PilotPointSitesOct2024</itemName><imsContentType Sync="TRUE">002</imsContentType></itemProps><coordRef><type Sync="TRUE">Projected</type><geogcsn Sync="TRUE">GCS_North_American_1983</geogcsn><csUnits Sync="TRUE">Linear Unit: Foot_US (0.304801)</csUnits><projcsn Sync="TRUE">NAD_1983_StatePlane_Texas_North_Central_FIPS_4202_Feet</projcsn><peXml Sync="TRUE">&lt;ProjectedCoordinateSystem xsi:type='typens:ProjectedCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.3.0'&gt;&lt;WKT&gt;PROJCS[&amp;quot;NAD_1983_StatePlane_Texas_North_Central_FIPS_4202_Feet&amp;quot;,GEOGCS[&amp;quot;GCS_North_American_1983&amp;quot;,DATUM[&amp;quot;D_North_American_1983&amp;quot;,SPHEROID[&amp;quot;GRS_1980&amp;quot;,6378137.0,298.257222101]],PRIMEM[&amp;quot;Greenwich&amp;quot;,0.0],UNIT[&amp;quot;Degree&amp;quot;,0.0174532925199433]],PROJECTION[&amp;quot;Lambert_Conformal_Conic&amp;quot;],PARAMETER[&amp;quot;False_Easting&amp;quot;,1968500.0],PARAMETER[&amp;quot;False_Northing&amp;quot;,6561666.666666666],PARAMETER[&amp;quot;Central_Meridian&amp;quot;,-98.5],PARAMETER[&amp;quot;Standard_Parallel_1&amp;quot;,32.13333333333333],PARAMETER[&amp;quot;Standard_Parallel_2&amp;quot;,33.96666666666667],PARAMETER[&amp;quot;Latitude_Of_Origin&amp;quot;,31.66666666666667],UNIT[&amp;quot;Foot_US&amp;quot;,0.3048006096012192],AUTHORITY[&amp;quot;EPSG&amp;quot;,2276]]&lt;/WKT&gt;&lt;XOrigin&gt;-123407700&lt;/XOrigin&gt;&lt;YOrigin&gt;-86123500&lt;/YOrigin&gt;&lt;XYScale&gt;35920690.11000888&lt;/XYScale&gt;&lt;ZOrigin&gt;-100000&lt;/ZOrigin&gt;&lt;ZScale&gt;10000&lt;/ZScale&gt;&lt;MOrigin&gt;-100000&lt;/MOrigin&gt;&lt;MScale&gt;10000&lt;/MScale&gt;&lt;XYTolerance&gt;0.0032808333333333331&lt;/XYTolerance&gt;&lt;ZTolerance&gt;0.001&lt;/ZTolerance&gt;&lt;MTolerance&gt;0.001&lt;/MTolerance&gt;&lt;HighPrecision&gt;true&lt;/HighPrecision&gt;&lt;WKID&gt;102738&lt;/WKID&gt;&lt;LatestWKID&gt;2276&lt;/LatestWKID&gt;&lt;/ProjectedCoordinateSystem&gt;</peXml></coordRef></DataProperties><CreaDate>20240908</CreaDate><CreaTime>18142000</CreaTime><SyncDate>20241021</SyncDate><SyncTime>11482100</SyncTime><ModDate>20241021</ModDate><ModTime>11482100</ModTime><scaleRange><minScale>150000000</minScale><maxScale>5000</maxScale></scaleRange><ArcGISProfile>ItemDescription</ArcGISProfile></Esri><idinfo><descript><abstract>Site address points represent the location of site or service delivery addresses.</abstract><purpose>Site Address Points</purpose></descript><keywords><theme><themekt>X-Ray</themekt><themekey>Addresses and Names</themekey></theme></keywords><spdom><bounding><westbc>NaN</westbc><eastbc>NaN</eastbc><northbc>NaN</northbc><southbc>NaN</southbc></bounding></spdom></idinfo><eainfo><detailed Name="PilotPointSitesOct2024"><attr><attrlabl Sync="TRUE">OBJECTID</attrlabl><attalias Sync="TRUE">OBJECTID</attalias><attrtype Sync="TRUE">OID</attrtype><attwidth Sync="TRUE">4</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">Internal feature number.</attrdef><attrdefs Sync="TRUE">Esri</attrdefs><attrdomv><udom Sync="TRUE">Sequential unique whole numbers that are automatically generated.</udom></attrdomv></attr><attr><attrlabl Sync="TRUE">SHAPE</attrlabl><attalias Sync="TRUE">Shape</attalias><attrtype Sync="TRUE">Geometry</attrtype><attwidth Sync="TRUE">0</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">Feature geometry.</attrdef><attrdefs Sync="TRUE">Esri</attrdefs><attrdomv><udom Sync="TRUE">Coordinates defining the features.</udom></attrdomv></attr><attr><attrlabl Sync="TRUE">addrclass</attrlabl><attalias Sync="TRUE">Description</attalias><attrtype Sync="TRUE">Integer</attrtype><attwidth Sync="TRUE">4</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">A general classification of how the structure or location represented by the site address point is used - FacilitySite Subtype Classification</attrdef></attr><attr><attrlabl Sync="TRUE">addressptid</attrlabl><attalias Sync="TRUE">Address Point ID</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">20</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">Unique address point identifier - Foreign Key</attrdef></attr><attr><attrlabl Sync="TRUE">addrnum</attrlabl><attalias Sync="TRUE">Full Address Number</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">20</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The full address number</attrdef></attr><attr><attrlabl Sync="TRUE">addrnumsuf</attrlabl><attalias Sync="TRUE">Address Number Suffix</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">5</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The address number suffix</attrdef></attr><attr><attrlabl Sync="TRUE">addrrange</attrlabl><attalias Sync="TRUE">Address Range</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">50</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">Address range when a point describes a set of addresses</attrdef></attr><attr><attrlabl Sync="TRUE">altunitid</attrlabl><attalias Sync="TRUE">Alternate Address Unit Number</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The alternate or secondary address unit designation</attrdef></attr><attr><attrlabl Sync="TRUE">altunittype</attrlabl><attalias Sync="TRUE">Alternate Address Unit Type</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The alternate or secondary address unit type</attrdef></attr><attr><attrlabl Sync="TRUE">capturemeth</attrlabl><attalias Sync="TRUE">Capture Method</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">30</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">Capture method for address point</attrdef></attr><attr><attrlabl Sync="TRUE">country</attrlabl><attalias Sync="TRUE">Country Abbreviation</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">2</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The country abbreviation the site address resides in</attrdef></attr><attr><attrlabl Sync="TRUE">discrpagid</attrlabl><attalias Sync="TRUE">Discrepancy Agency ID</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">75</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The agency, as defined by NENA Master Glossary, that receives the discrepancy report, should one be discovered</attrdef></attr><attr><attrlabl Sync="TRUE">esn</attrlabl><attalias Sync="TRUE">Emergency Service Number</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">5</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The Emergency Service Number the site address resides in</attrdef></attr><attr><attrlabl Sync="TRUE">fourthaltunitid</attrlabl><attalias Sync="TRUE">4th Alternate Address Unit Number</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The fourth alternate address unit designation</attrdef></attr><attr><attrlabl Sync="TRUE">fourthaltunittype</attrlabl><attalias Sync="TRUE">4th Alternate Address Unit Type</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The fourth alternate address unit type</attrdef></attr><attr><attrlabl Sync="TRUE">fulladdr</attrlabl><attalias Sync="TRUE">Full Address</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">500</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">Address information combined into one text field. In your community, this may include the following fields: PREADDRNUM, ADDRNUM, ADDRNUMSUF, FULLNAME, UNITTYPE, UNITID, ALTUNITTYPE, and ALTUNITID.</attrdef></attr><attr><attrlabl Sync="TRUE">fullname</attrlabl><attalias Sync="TRUE">Full Road Name</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">300</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The full name of the road including any prefix and/or suffix in mixed case format for Esri Community Map contributors</attrdef></attr><attr><attrlabl Sync="TRUE">msag</attrlabl><attalias Sync="TRUE">MSAG Community</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">35</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The valid service community name identified by the MSAG</attrdef></attr><attr><attrlabl Sync="TRUE">municipality</attrlabl><attalias Sync="TRUE">Municipality Name</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">100</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The name of the physical municipality the site address resides in</attrdef></attr><attr><attrlabl Sync="TRUE">placename</attrlabl><attalias Sync="TRUE">Place Name</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">250</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">A common name or vanity address for the site or service delivery address</attrdef></attr><attr><attrlabl Sync="TRUE">pointtype</attrlabl><attalias Sync="TRUE">Location</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">30</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">A general description of the physical location represented by the site address point</attrdef></attr><attr><attrlabl Sync="TRUE">preaddrnum</attrlabl><attalias Sync="TRUE">Address Number Prefix</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">5</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The address number prefix</attrdef></attr><attr><attrlabl Sync="TRUE">rclnguid</attrlabl><attalias Sync="TRUE">NENA Global ID</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">254</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The NENA Globally Unique ID</attrdef></attr><attr><attrlabl Sync="TRUE">secondaltunitid</attrlabl><attalias Sync="TRUE">2nd Alternate Address Unit Number</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The second alternate address unit designation</attrdef></attr><attr><attrlabl Sync="TRUE">secondaltunittype</attrlabl><attalias Sync="TRUE">2nd Alternate Address Unit Type</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The second alternate address unit type</attrdef></attr><attr><attrlabl Sync="TRUE">siteaddid</attrlabl><attalias Sync="TRUE">Site Address ID</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">20</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">Locally assigned site address point identifier</attrdef></attr><attr><attrlabl Sync="TRUE">county</attrlabl><attalias Sync="TRUE">County Name</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">40</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">stateabbreviation</attrlabl><attalias Sync="TRUE">State Abbreviation</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">2</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The state abbreviation the site address resides in</attrdef></attr><attr><attrlabl Sync="TRUE">status</attrlabl><attalias Sync="TRUE">Status</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">30</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The status of the site address</attrdef></attr><attr><attrlabl Sync="TRUE">thirdaltunitid</attrlabl><attalias Sync="TRUE">3rd Alternate Address Unit Number</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The third alternate address unit designation</attrdef></attr><attr><attrlabl Sync="TRUE">thirdaltunittype</attrlabl><attalias Sync="TRUE">3rd Alternate Address Unit Type</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The third alternate address unit type</attrdef></attr><attr><attrlabl Sync="TRUE">unitid</attrlabl><attalias Sync="TRUE">Address Unit Number</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The address unit designation</attrdef></attr><attr><attrlabl Sync="TRUE">unittype</attrlabl><attalias Sync="TRUE">Address Unit Type</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The address unit type</attrdef></attr><attr><attrlabl Sync="TRUE">usngcoord</attrlabl><attalias Sync="TRUE">USNG Coordinate</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">50</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale><attrdef Sync="TRUE">The USNG coordinate value</attrdef></attr><enttyp><enttypl Sync="TRUE">PilotPointSitesOct2024</enttypl><enttypt Sync="TRUE">Feature Class</enttypt><enttypc Sync="TRUE">0</enttypc></enttyp><attr><attrlabl Sync="TRUE">GlobalID</attrlabl><attalias Sync="TRUE">GlobalID</attalias><attrtype Sync="TRUE">GlobalID</attrtype><attwidth Sync="TRUE">38</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">created_user</attrlabl><attalias Sync="TRUE">created_user</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">255</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">created_date</attrlabl><attalias Sync="TRUE">created_date</attalias><attrtype Sync="TRUE">Date</attrtype><attwidth Sync="TRUE">8</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">last_edited_user</attrlabl><attalias Sync="TRUE">last_edited_user</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">255</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">last_edited_date</attrlabl><attalias Sync="TRUE">last_edited_date</attalias><attrtype Sync="TRUE">Date</attrtype><attwidth Sync="TRUE">8</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">VALIDATIONSTATUS</attrlabl><attalias Sync="TRUE">Validation status</attalias><attrtype Sync="TRUE">SmallInteger</attrtype><attwidth Sync="TRUE">2</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">DelRec</attrlabl><attalias Sync="TRUE">DelRec</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">Zip</attrlabl><attalias Sync="TRUE">Zip</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">5</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">GPSX</attrlabl><attalias Sync="TRUE">GPSX</attalias><attrtype Sync="TRUE">Double</attrtype><attwidth Sync="TRUE">8</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">GPSY</attrlabl><attalias Sync="TRUE">GPSY</attalias><attrtype Sync="TRUE">Double</attrtype><attwidth Sync="TRUE">8</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">PictureID</attrlabl><attalias Sync="TRUE">PictureID</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">50</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">ParcelNum</attrlabl><attalias Sync="TRUE">ParcelNum</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">20</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">OLD_ADDRESS</attrlabl><attalias Sync="TRUE">OLD_ADDRESS</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">250</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">PD_L</attrlabl><attalias Sync="TRUE">PD_L</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">SN_L</attrlabl><attalias Sync="TRUE">SN_L</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">80</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">ST_L</attrlabl><attalias Sync="TRUE">ST_L</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">SD_L</attrlabl><attalias Sync="TRUE">SD_L</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">PSAP</attrlabl><attalias Sync="TRUE">PSAP</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">100</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">AddrCLASS_L</attrlabl><attalias Sync="TRUE">AddrCLASS_L</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">5</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">DATE_ASS</attrlabl><attalias Sync="TRUE">DATE_ASS</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">Source</attrlabl><attalias Sync="TRUE">Source</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">75</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">X</attrlabl><attalias Sync="TRUE">X</attalias><attrtype Sync="TRUE">Double</attrtype><attwidth Sync="TRUE">8</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">Y</attrlabl><attalias Sync="TRUE">Y</attalias><attrtype Sync="TRUE">Double</attrtype><attwidth Sync="TRUE">8</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">CITY</attrlabl><attalias Sync="TRUE">CITY</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">5</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">Site_UID</attrlabl><attalias Sync="TRUE">Site_UID</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">254</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">Apt</attrlabl><attalias Sync="TRUE">Apt</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">25</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">GC_EXCEPTION</attrlabl><attalias Sync="TRUE">GC_EXCEPTION</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">75</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">INT_EXCEPTION</attrlabl><attalias Sync="TRUE">INT_EXCEPTION</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">75</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">RPID</attrlabl><attalias Sync="TRUE">RPID</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">75</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">AddNum_Pre</attrlabl><attalias Sync="TRUE">Address Number Prefix</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">15</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">Add_Number</attrlabl><attalias Sync="TRUE">Address Number</attalias><attrtype Sync="TRUE">Integer</attrtype><attwidth Sync="TRUE">4</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">AddNum_Suf</attrlabl><attalias Sync="TRUE">Address Number Suffix</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">15</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">St_PreMod</attrlabl><attalias Sync="TRUE">Street Name Pre Modifier</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">15</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">St_PreDir</attrlabl><attalias Sync="TRUE">Street Name Pre Directional</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">St_PreTyp</attrlabl><attalias Sync="TRUE">Street Name Pre Type</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">50</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">St_PreSep</attrlabl><attalias Sync="TRUE">Street Name Pre Type Separator</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">20</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">St_Name</attrlabl><attalias Sync="TRUE">Street Name</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">254</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">St_PosTyp</attrlabl><attalias Sync="TRUE">Street Name Post Type</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">50</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">St_PosDir</attrlabl><attalias Sync="TRUE">Street Name Post Directional</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">10</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr><attr><attrlabl Sync="TRUE">St_PosMod</attrlabl><attalias Sync="TRUE">Street Name Post Modifier</attalias><attrtype Sync="TRUE">String</attrtype><attwidth Sync="TRUE">255</attwidth><atprecis Sync="TRUE">0</atprecis><attscale Sync="TRUE">0</attscale></attr></detailed></eainfo><dataIdInfo><envirDesc Sync="TRUE">Microsoft Windows Server 2016 Technical Preview Version 10.0 (Build 20348) ; Esri ArcGIS 13.3.0.52636</envirDesc><dataLang><languageCode value="eng" Sync="TRUE"/><countryCode value="USA" Sync="TRUE"/></dataLang><idCitation><resTitle Sync="FALSE">sde2.DBO.SiteAddressPoint</resTitle><presForm><PresFormCd value="005" Sync="TRUE"/></presForm></idCitation><spatRpType><SpatRepTypCd value="001" Sync="TRUE"/></spatRpType><idPurp>The SiteAddresspoint layer has been created to help PSAP's (Public Safety Answering Point's) locate callers in the event of an emergency. The layer also have some points that are not part of the District but fall within Denton County (i.e. Carrollton, Celina, Dallas, Fort Worth, Frisco, New Fairview, Plano. Prosper, Southlake &amp; Valley View).</idPurp><idAbs>&lt;div style='text-align:Left;'&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;span&gt;Site Structure/Address Points for communities that are part of the Denco Area 9-1-1 District.The layer also have some points that are not part of the District but fall within Denton County (i.e. Carrollton, Celina, Dallas, Fort Worth, Frisco, New Fairview, Plano. Prosper, Southlake &amp;amp; Valley View). If Field GC1_ Exception has 999 this data is outside our District.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</idAbs><idCredit>City/Town of: Argyle, Aubrey, Bartonville, Copper Canyon, Corral City, Corinth, Cross Roads, Denton, Dish, Double Oak,, Flower Mound, Hackberry, Hebron, Hickory Creek, Highland Village, Justin, Krugerville, Krum, Lake Dallas, Lakewood Village, Lewisville, Little Elm, Northlake, Oak Point, Pilot Point, Ponder, Providence Village, Roanoke, Sanger, Shady Shores, The Colony, Trophy Club &amp; Unincorporated Denton County.</idCredit><searchKeys><keyword>Addresses</keyword><keyword>Address Points</keyword><keyword>Sites</keyword><keyword>Structures</keyword></searchKeys><resConst><Consts><useLimit>&lt;div style='text-align:Left;'&gt;&lt;div&gt;&lt;div&gt;&lt;p&gt;&lt;span&gt;Disclaimer: &lt;/span&gt;&lt;span&gt;&lt;span&gt;This GIS data was generated for internal 9-1-1 public safety purposes only and not as a commercial product or for any other purposes. This GIS data is continually being updated and refined and 9-1-1 service providers seeking to use this GIS data for 9-1-1 purposes should only use the most current and up-to-date version of GIS data. This GIS data represents public information, and if confidential layers or attributes exists, such confidential information has been excluded. No guarantee or warranty, expressed or implied, is given for the accuracy, availability, completeness, or applicability of the GIS data, and no liability is assumed for this GIS data. A requestor, user, or any other person or entity acknowledges and accepts all limitations and liabilities, express or implied, for the accuracy or the representation of this GIS data.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</useLimit></Consts></resConst></dataIdInfo><mdLang><languageCode value="eng" Sync="TRUE"/><countryCode value="USA" Sync="TRUE"/></mdLang><distInfo><distFormat><formatName Sync="TRUE">File Geodatabase Feature Class</formatName></distFormat></distInfo><mdHrLv><ScopeCd value="005" Sync="TRUE"/></mdHrLv><mdHrLvName Sync="TRUE">dataset</mdHrLvName><refSysInfo><RefSystem><refSysID><identCode code="2276" Sync="TRUE"/><idCodeSpace Sync="TRUE">EPSG</idCodeSpace><idVersion Sync="TRUE">5.3(9.0.0)</idVersion></refSysID></RefSystem></refSysInfo><spatRepInfo><VectSpatRep><geometObjs Name="PilotPointSitesOct2024"><geoObjTyp><GeoObjTypCd value="004" Sync="TRUE"></GeoObjTypCd></geoObjTyp><geoObjCnt Sync="TRUE">0</geoObjCnt></geometObjs><topLvl><TopoLevCd value="001" Sync="TRUE"></TopoLevCd></topLvl></VectSpatRep></spatRepInfo><spdoinfo><ptvctinf><esriterm Name="PilotPointSitesOct2024"><efeatyp Sync="TRUE">Simple</efeatyp><efeageom code="1" Sync="TRUE"></efeageom><esritopo Sync="TRUE">FALSE</esritopo><efeacnt Sync="TRUE">0</efeacnt><spindex Sync="TRUE">TRUE</spindex><linrefer Sync="TRUE">FALSE</linrefer></esriterm></ptvctinf></spdoinfo><mdDateSt Sync="TRUE">20241021</mdDateSt><Binary><Thumbnail><Data EsriPropertyType="PictureX">iVBORw0KGgoAAAANSUhEUgAAAMgAAACFCAYAAAAenrcsAAAAAXNSR0IB2cksfwAAAAlwSFlzAAAO
xAAADsQBlSsOGwAAIABJREFUeJzt3QW0bVXVB/B94YEi1jNAxQ5QShETMQFRURQwARUbW2zARrGw
uxUVO8FEMbHFwHqADTYgCoqg737jt773v2O+Pc659eIc3j1zjHPvib3XXnutGf8Za+1lP/vpL6a3
uf7W3dTUdDc1tVE3oQktdZqenm7/V6w4tVvWTU1173vf+7orXWmLruumRt23CU1o5DTVTXWbXmzT
7gpX2KJbNjXVdcuWbdzttttuEwGZ0ITQdNddcOEF3a9+/ZtuWftiQhOa0ECaCMiEJjTuAsIpmoL1
JjShMaNl4xIxWLlyZXttvPHGM99vtNH8omrOq0TY0m4+n3XWWd3lLne5dmxtN8JZhbT/Hs23L7P1
b6H3sybXnNBFXEDChJ/61Ke6Lbfcsn13qUtdqttmm226888/vzv00EO7gw8+uLv+9a8/Z1sYCVM9
4xnP6K5znet0r3vd67rHP/7x3f3vf/92jdNOO63bYYcdunvd617dZptt1o699a1v3V372tfuDjjg
gO5KV7pSa+dZz3pWd+aZZ3Z///vfuw9/+MPdtttu2930pjftHvKQh6zWb1QtXhWyCPaf/vSn7utf
/3p3z3ves/vPf/7TvelNb+rudKc7tfvxW645iLSlH9/+9re7vfbaa7VrDBvHNbHCxvtXv/pVu9+F
0PQSsPwjEZBoyF//+tfdk570pO7UU09tA32Xu9yl+8QnPtGdffbZjTle85rXdFe5ylW6D3zgA90u
u+wytL3vfOc73b777tv98Y9/nPnuXe96V/fFL36xe8c73tFd97rX7R784Ac3Js2k+j4M/fvf/759
d/e73321/p144ondW97ylu6YY47pdt11126fffbpbnSjG3Xf/e5323mEJ/T2t7+9+8c//tGE83a3
u127/v/+978mCL7/17/+1b7Tj9zz1a52tYFW4t///nd34xvfuDvjjDO6y1/+8t1jHvOY7s53vnP3
+c9/vvXjNre5zYygvv71r+8e9KAHtfeXuMQlFsyw2rnjHe/Yfe9732v3mTH46U9/2hTX6aef3u65
rxiqQvj+97/fhGvzzTef+Q65N+/de/oXuqgI1kgExOB4Xeta1+p+/OMftwG+yU1u0pjmiCOO6P78
5z93j3vc47pXvvKV3UknndQ08Gway7ksxiMf+cjuJS95STtmxx137N7whjfMQCqa/I1vfONq51UY
5v3WW2/dmPK8885bra+Y9NOf/nRjosMPP7y7/e1v334z8SDhwx72sCYgIYJ+7LHHdt/85je75z//
+a1twkWACb57GiYc3/jGN7oDDzywMSbhYm2e+9zntlf6qQ3C+YUvfKHd98te9rJuq6226r72ta/N
OfZ1DI2N95tsskkTSmP06le/uvWdcvnvf//bXexiF2vW9tKXvnRTWPq3//77d1e96lW7d7/73d3N
bnaz7la3ulVr7/3vf3/rs/5f8pKXbPOprUc84hHNQm266aZN0b3nPe9p/R3Up3GjkQlI/mOiN7/5
zd0rXvGK7jnPeU73sY99rA0YZjaY3u++++4zDDOIMNpTnvKU9v55z3te++882jBMeIc73KEJHy32
5Cc/uU08aFGFhID87ne/a/0KbHvVq17VPepRj5o5BqP7HYM6Rv8xEy1Msz/taU9r2heke+tb39ra
J0Qf//jH2/mYG6M8+tGP7rbbbrvu4he/+Ex/0S1ucYvukEMOadf44Ac/2AQE0/72t79tgiBfxbro
2xWveMVmrb7yla806zgXk1VfrTIlBv/yl7/cfsfUBM/7HXbYoVnB3/zmN90vf/nLNjch3z31qU/t
vvWtbzVlZFxifZ75zGe2+yIcrO0FF1zQxsq4mweowPkveMEL2jjc8IY3HFshGbmTDu9jMINGS9Is
BtfkGHwamOkmHAsdQIxZHfbDDjus/eeT/OEPf2hwLuS6GCAChblZo1ve8patDYxDi2J0MCcTuvPO
O3c/+clPZuADuHP00Ue3473/6Ec/2pjs2c9+drsHyoAG9SIgP/jBD1brszYxjX6sWLGiO+WUU5o1
ve1tb9sY0VgRFtYX/COMNDslMpefAkLxrWh632Fk1iBwE5188sndFa5whWbFTz755CbwFJWx498t
X768MTSL89KXvrSdI/jxxCc+cQZSHXTQQe37+93vfu0z62t8Yk2NByvsPvhY7mtcAxIjFxBax8uk
ZUADi3ymzQwkRgzNR1DqMfU9xxn0qpYDERgC8cAHPrBZFtrun//8Z7NqGFQfA/WQ8zESAWeNQA9O
PmbIff385z+fcdppeJoaXMPkggUEf7b+shxetC0fCxx1/gknnNA94AEP6F772te23wNZh5E+EFow
x/1vv/32DQIRgJe//OWtbYKsDW1f73rXawGT0047rSmIu971rjPBgsrIhItwPv3pT2/3Q2gotxqB
TCBGu1VxPfaxj22CaQzTx4kF6U1aHZD73ve+Ax3Br371q92RRx7ZGBDswrQmrz+YaS/C1Q/zYmRM
0NfYIbCFdudj8A/OPffcdh4mJzzarX2m9TAFyAT2+IxRMEPO00/a97Of/WzTyB/5yEdm7kk/5orQ
xfqxbpxgTArSwfQs0Je+9KU5hQNdeOGFzcEXteNHgbMYO8Rypg1t8wlF0Xbffffubne7W/uetSX0
8VuQcYoV0S+W9ZOf/GTzwWp0jYIhoObw5je/eXfOOec0GBkoOc40EgtSIx2swzWucY3mwF75yldu
39VB4zdwwpHBp+1YFvBCkSUCZWBdWtX3JiokVPzXv/61aV9Rs2EUIUCEEP4XFnaO9sOIVUhEzxCr
IaQMJoYIM0H10p48DKeeU0to+DvzIdfis3CIYfoXvvCFTUuDR2HWuaxHzk//+S0EG+TxG2jLWoBK
hIMQ8SnOOuusJswUh7FmAVmUF7/4xTN94xeBf6wCyyzaFnI+SOY8ysE83Oc+92mWy3wsWzZyADMn
jayHBpfmNSGf+cxnmoPL3DO9GOne9753gyCg19577z1jFd75znc2PwBTPvzhD29MgnE4rHC/dmgz
msrxLJMwK2ebozmMmTjDyDmsDeEguEcddVSL5mB+cIvVIIAiZt6zNPrnfJCDdtYGTdwnOPy4445r
TCfcC+ZEUYBg7mcYFk8YWi7lF7/4RcPwg47tC01fqP2/xz3u0drSD/dJo3OkRfAon7/97W/N4px3
3nkNdgoCGE9kDB1LiFgKwk8A+GEgKOEj/JQHYeKUs3SsoN8I01/+8pcW8malOPqDErvjQiMVYUxL
c4MAchXi/QjjcfqEHxNNysBJ7GFEE2VCmH7hyZDjOaKiTEy6CfGdSfLq+x6h/gT5zLphGEILajhf
eBNkAqH4KXwW/WD9aE/v9bufC7j61a/eXnIrfBz3Ds65N4nIOPYEcpij7eV+RfRmEyROcF87y/XA
/PpNeAkGxWHsaz8TUWIxDjvssGYF9txzzyZEwr2SsY4VbXM+C2tMBA0Iy49+9KMmIMbfb2CYe9Wv
+FzgnaCF60gIGy9t8zfHjUYW5sUYnEUOIcdRMioT63cOHzhh8MEJEZScS6hgcuYd8wYS0co0FRhz
2ctetlkiE/WEJzyh5Sn6mgoscM1QZWYYHzO4vvYxMMKcjhEWpfVZF0xHqxNeVoCwsCjukbDL59CY
7jPaXa6AYLsXoWXncIaHac8IhP8s2yAinLQ65eI/Mo6uj0lpbmSsWCBjePzxx7dIGXJfwuW51pFH
HjkzZqCYqCI4Bup67zd+Te0zQYyTnn7yNULGhOCxTpTchz70oTaGBGQcaaQQi+YEsTATSCUaJMv8
s5/9rOF++BWjc3ZDcVpFdsAe7WBCmpxTKTyc0KfzMbbyFT4CTcgKYFYacZDVAIMwGD8BlKPVfab5
TXoEihVI5ti5tOZ73/ve7qEPfWi7nwgCXE9oKuzh0LM22g4k0jbGyXXmGrtBZPwwZY0M0coUTJ8I
OGvBgtSseEjAYdddd23BBNAXdAQnKS3+g/5HgKrimc23SpKTcPANKR8w0xwFwo0bjUxAaGWaw8CA
LDe4wQ2aWRfOpfVpKBMtrMm/QHUCDW4lk8Sci8g4h6CAFD5jRKYfgUqceQIAS1dsjllNHi0KQtDy
ziVUhAszhXk5nMg1ac1o0tQzpa9wfWUg7/Uln0WBWCCwkPO7pvj7bW9722rX1x8ROmOdMcCchJki
MQYEFkQC35x3zWteswVN9tprr5n+JLeBCBylZV74KNpnzTE6a+Q87fBlHBPh46uJ8hlDiu+HP/xh
g3rGGEIYx1DvyKJY8D1tInqCQCXCAoaAOCIdarJMXAYYNBAF6Q9iPjve77CxwWeFOPMmxcTRboRA
TJ72h39BD+dV4RPdAUdAAJOJ6cAETIXhHQuiYLjUK4URwDtakQC6DwnHhEppd/fjd31QY4bxWBnR
OtZpTZkEs4GtaUObLClLEggJGiLwCoF5rIJEKMvKd2ChDzrooNYeqxZhc//G10t7cisUCQjLX1NR
gCgagiMgYIz5HBQh4ZEg5WsJzoCC+sdCyevU+VzSPghtbPBNmAGmsWhq2lukh4DA5KIpGBBOh/Fp
nj322GO1RBSixWlzERVYPD4La+Fc0RKwSHEfZuevaMv1lafUMgwCRRgCp4RIa9/BMP0XhfFCLIBo
Gk2NeT73uc81LUtAwzSV+SkIDEkYQStMov98Mf7PFltssWBGSRgZNDIGBA+jEmTQlUAQhFg012fJ
vaecCEKce9/ttttuTTnwxcApFqfmmIwZBZclCqxsSCTQePNdXM89agMyoCSQ3BC4DGrzk5yjz+NE
I7Mgl7nMZZrfIMch5i4ci2hSzKv+iZbnO9DEBtKAp3yEjyEBZZD5Mcy3F5hgkgkWZuCnyBtgWmFN
cAIzJ1wqPo8qDILPMULfqQ/B36mtCmHEfpEjzE6z0p60JoaimVmXF73oRe0YmXC5HdeTOKQkhEdZ
r4VaE4JLeSQrXqN/wq6sq7GQM/IdeOU7USTw1vjpJ2EFTZcvX96OE/XC3Jk73wkwcLCTo+qT+xQB
w/j8S4JrnnxP8RFI0UjEwrp2raLolrqA0CISUAabr4DxfU/jm2COLkYEByTdOIoqVx0jLi8nwSpU
JzO1VQbZoGuTGafFQJqUXjPzcPR+++23mkYkWJgVdmaRaEdtYw5tsgZyLMmIZyKr9dEGK8Ia8KuE
rsFHVhDzO5agUgiEjK+Daf13jnotPgDmokQyLmH4fE478bcyrsZIu6xfQuQERxhdWDn36yXClWSr
9lMmAwKCO1tuuWUTlECxXANRTCAjIdEHxzjPOZQSvwpRAITDPIGy8i+J4vVpPlUBSwZiMeeSehmQ
hAYxn/8mv8IokIdPARbIbTD3mAkji1JhBAJCkNQ6aY8AwMh9K+AzgRGdEqXhm9DYElkmXRLQZGpL
P1PkiGhbls0rDni9L/2Q3CSEjvHZNWhrfgA44R5ZEb/Fr6FNwQtw0H0kMCGaFMfaWhO5nay+zLoU
Y8HCuh7rY+wIOj9Kn1g2CVbj7bdhltH9g360PEs+XQIL/eO1AwaCTF6pWq7RMOfpDyFJqJdgJGR+
UaCRCQimhpUxYAaUVTFJcgI0l4nPb9ZQwOdwPhiQ6l7wizWB5Wlezp4KVJaDdrNGArP1JxkjKC6k
3TimCAN7iUiBEJxM8AAj0u4sGsbn3CtpAQ3DhPD6Tjvt1CxXqn1zr/wBzAliEPIs/uJrgZl90l9W
DAWKpbyjQpBYFuNBiwtwuC/tg5eCAPrJn4vFECGUBa9tpJ8ss9xUtYhTxVKGco5IHuXCqedssxqC
IcYAXNQHY4LMDcFjVd2b/taixnGlkYV5hXBp2pRm0KKiVOBASq77ZPJhWhEQ8CNk8DncyhpoKBiX
1jbR3mddRp1016NVQQJtYlxaHoFUSs4JIX8FPEl/TDIhMfH+g4dIUIDAEEiBAhPvWBZJv2lxfQCz
CBDBlHAbROCVPoIsnGj35/ogqRyO/iL9Exbn3PLHWCAKhpUSePAbyIVYmGh692bswTqCi7EFBlxT
n+s4bbnllg1ODSNKi0ICY8Fj5xBqllEkkTAYKxYa9HMfomzgnsDBuNNIS01MsDg6zcYZF/URKhTd
omloKOFUiUBwB3F6+Qa1bIRGZHUwFuFhOURuCBqBiUasmtm5HEwZXJAqJRcIbEMia6CWSQ2U4vxn
/YW+85c4/phW30Ai1wDtOPusBsuYCmTaXpSMLxPtnEVTmC1MjFgqFsa5KdMQHXM8v8yYGR9WWD85
6PHJEEYkLBREKme9RPJkxI0HH886EWScBDMqbbbZZqt9dr77RSyEsWapQmAW+AUBUA5ZfkxY+R/u
x3sQMNesicpBFmtJOumccFlZEwtf01S0pagKjRQm8Z8AgAqsDbiCOfNbkm3eswIYM7gd/NFmSEi2
Fu9h4NRqDavRkqsRzYGlkaw4xgzjiMaAYrLYBA10TIk7rU04MJBrqXbFjM7ly4ByLB3tLUTqe4xP
w8fhJ/gptWeFMCAhoFQwIViFBCz4Z66lEgGBMQSANamrMd07odeuCBWnGsPWshu0zTbbNMHsWxVW
knCwPoQa/A1pk2WQMxEQkQcB2ygE57EsBCihXpRgjSqEiZO+apCFWDmdBhRTp2yDQ2zSQBamGtOJ
kGAOjixGFGFxrAhRIjWJhmmT5fGd/IX/Qoh8FQkrFoaQVYHoM0YlcItgSqZhYNchsJaLura+EZC0
xxdxTdrSPbB0nFTaWk0YReA7+QXXFfGqBZmUBc3Pirp35HdWjWCqmg1MylpwvxNc2lxyD6ziG/z/
drJdu6br1C2VkHvgu/FLBimIFStWzJyT/0iRJp9MJJClZ/Wr4gFJQSrKj38IAhImAm/s05Zrg6XC
4dUXGicaGcRielkQ2h6swExMN61jYmmvlHTDyBjIgJo0mJxG9JvB5UhjPj4IH4Z2JEipGEW0aGL5
cxEIwx8Bv0AnmpjgySXwGzBbSluCuUVmQArXYxE4qxjDfYBhcjs0u+8xBX8rpS7GggDoOyZ3/2Fu
pE3RLffJkUbGg0Z2vuQqBeMcbdLOxomlxag+swJ8BP4QBvYezHJ+lgwbS+OGiTHzdttt10p6BDzk
pZLpBtnSL8IiZB2YJbIF2iLhbcdmIwh+YopR3Yf5oAiMXUUM4yQkIxMQ8AeeJxiiIDSsQQRnwCxm
WQbXYNGInEAMADLwNRxPQJhz/0EaZCKzpJavwBk2wVn+OoyCfeUUMDSnV16AdcCA2sRAjtEX/QYT
0yZ/BYTDaJjSTiesDkYEGTmloBfHtVbIahNlMRfrQqgqJhfBIuDuo1/XxYqkaBBjCm3L3INmBFGk
jJbP/Ys2sdIcdIJCkPQ5i8L8pxhYxhNPPLFZTcEMQY1YOsEJEIoldc/C0iJX4JbxgwhA4lh6ikpi
NpSdYyjDWguX3M040ch8EJqG5oB/OdQ0DeGgYcEvGpEzySlNhppmI1gYj9WBZTGCqBDNS9sx944X
msXks2kllgFzxCl3nGy98006BuGj0IAc+uQghDDBNtAl8X3nwtuY2/cYl7bkkBJa18ecmICAYxIM
Dftz5EMsBUXBcmFOzJayjWpVcs04/0LVxtDxlEjdAyw+CSJkPmNaY4ZxzUVgJn+AcBDY6enpFhCh
MKpyYZEilIjw+64KL6XC3zBu4F764gUqJ9qXpGYUJOE0L91Sz4OIZmB+kwFaZfMBDEbLxkHG5JkI
Jpozy/mlKWlbzq73GI7FoaVpRxBGBCsTQ4vyUTiCqUcS9QFvMHCy04STFqUJ40gSTHAKJTHnRSDq
PWG41HaFUfQRE7I4hAkTJ3fiJWEJEmZzNZYQZOtTtDfh1MdExPQDfBO25ZO5n2zhU89FvgNNwSzj
nULBbDwBnlEy/aXJ0yX5Z+zr1kr6IdhQxyG/gV7xN6qCMucEGCzmo/AV+YigHlgt0dstdYjF9yAY
oFTVPBl0/zE6IVKkKHRay6+RbK98CMZkMUR1wAsMAabVSlWWCiPSZsHImAPj+j7l64hGj1ZPWDOV
tiHf1zxGZaJ6DOiFkU06bZlFSxxjpd4cb/0A57K6cBAlgAG+ERAWgHKgFJKZTii87/CykoSdMGX3
SZa6bmBBMIwdrZ/z999//yY0ckEh54OW+qBd8zeIwEKWh2/CZ6xOvGtQFKKPAgVCy6lcGJQ4XZIC
QqN7YQraU/kFjY+JTLgIDjOdpaEGFq4HrcCPHA/fY0COM3iVeiXH02CZGAwukcYagG/OwWTgBaYD
mTiOfBprG2TNCQ3n1osvE4ZjpWhqCTS5j/7m2YjFIdT+8zUcr830h9ApddFHlpJDS0hqWDrkHG3Q
+tltBQwR7tUWq0NBGCsKAWPC/7mWc2hn1pfCAUkxunGItVYrZuxrhO+YY45Zrdwn9y8IIQdkwZVc
jVA3BRQBcD8YX/SPYNbxEUkMLDXOBANMpBgqWhgXGvnm1SYAkwm/Cm+mXJwFwCzwsnAi5sawhIqm
4w+wBCYKo4mmmBQMENIGTQdKaZ/PwlllkcAK/gsGBqliIUxakogYUKQNJRvv5br8AZqQs6otEK+S
z5iGT6Bt9ypB6JqibfqGcSgC/gXYknDnoNonmjyZfoEDAhVhBUtZUn3B1Kk01o4knfsVgdM+eCN3
MmhHFL5RzsscrVy5soVoOfTmyXf8D/8Jk0iYsWANUotGYIwJ8tl1WRJlPBRb7pGC8Z9gU3rZoXGc
aKSZ9GgW2DnJMbBKHRQzLrmECU0wJqhEsCSoaLDsSIL5wlhwNMhF4GioMB9GZPJpTkLGpPuun80F
30wo68J6wO2iYso/+BQYBoO4TvyH9Iumd5wIFsbkEyTLT3NjYvel77Q9a8B6iQK5d0lA7Uj8qbat
S331DTQiYCAeywJq6SPrF6vpHgkSwpygJGVRcz65VxaXgtEuKBiBrsdl21Hfswr6KPSNybMgrApc
kq8+8zVEwvrQj+JzH2CvqFfC+TXnsmSjWMKL4BEMTVtXrRVmF9kw0QSlalYThPFpclYhky4CRDtz
usEA3xvsJKc4g7C2JB3IwzGF/8GStO98EITwySPwT5j+bIqNYbVrcgmu30SiQBTE0mFMk+44jJtd
4Fkr95tyjjjjhImj63h4P9XDrGe0csXwPmN678HMKAbCxYKyxASP8Po/iGp4VX5JJj7WETyjdD61
ahO8VACnDwTX7+ASi+B+WRGQuF9DJzxuLgiuQEKI/+KcrGEHy1hD/a3BjyVrQTC/wQl2rc/MCBOI
2EiO0eS+E62h6TAdrSQOn9wAElLN7uPV+afhaG0YPBAKg3PuwQ2fU1lMyPgcmMP34vwYD1P7zBoI
hWISPoyoCziVokTwgkVkoQgQDcni6As4xYIkRMoPohyElbPFkWtgcG3rL8tCQWAg57BWmM196gch
Sybc9Vg8QYka9OgTiCryJ7yutIUlowBE+FghltJ7VBddaUsIm9UiGGBeLJoXf0J0ChTkcJtT/iTr
BfZp0/06X/jcmBFo9xkl4LdxopEJCE1rUhJHZ65ZFUJisJhwDE/TYEpJRRoK8zhO+JTmazexbFnT
+DA4zA3WJFKFWA5QIKFEQuJcTI5oQA4lRhP3z0IpL5OrDks/snDL9yAbAcf0oIv2+EJKPrLLOc3p
2mL+KXEnDGE2USWYW6gTYXrHYxIWBRPLFaSkxDksB6GLBZU3INQYVlusY3+NfZ849PI8xjLHOQcE
NE4YP5tibNSrUwM9MTpFlVWPiBUl1Mhv5jPEapobisLx8aUEF1RbU4RgMKGZLLkt2ogDSxuaHNBC
RCkwQoSFqQVpMKlBBQNALkwKCiVDrDREPsF/v2M0ViOhW4xAa2Ni2hMsIpS0IQfdxAgIVOdY2yAO
uBZN6ViRKZZMuJZQSdARHFZDnzm0qQ4geCxkfAFCH0c3LwwniJACR1hc+xQCwScEhIpvxsEGqSgK
QsO6sJZ8HtdkhYzlXMSBZr2yAUXmxIvG59tg3BDlQFj5TSmWdN8UAThoHCNQ2lMPJudEeYBM5iHC
gcyB9/rPIgqu8H1Y9ImArBpEZh0TMK8mOdvmZBDBHVqo+iYmLlEP+QOQJmFMoUOwy2eMVcvXwSgC
JTHGOggIMP9ZU4LRvQiX7DVszJLRfKAWgeKnREBrHoWA8yGEaAm4UC7Bp+WzxqLmI2hufY/Pwhci
HKBXtDWrwLoQeJDNvWBmjEXACBWFwtpwfp2bbVLBK9ZlNnKNVCPX8Y1yYsHAtwMPPLDBWRYyi8AI
EIH2e87vCxnLmhWN4CqrRiEZJ33LpnMcf4pIkCTJx0mYdxXRuOLoGInWRXlCEmtBA2NSTh9Nnk0U
MCyGYjFo2pSDZNtKk1WFA9GGEpOgGziTyl6RpQofQBXH0IiBCLRcdu/grNKkoJn30YrgAaH0Pg+f
IZSYoY+p3YcIWAQEfBQiBRkpDL+nLir4X/vCzPwmzGlsCLG2Cb0wMeUh6MGSYEBWdjaYlTGN4IK7
qqhpchFDbe+xxx7tdxYyfWFBql/SFzJESbDijvXKxt0sLAWR/cXMvf/JvbDw2Yp0SfsgNAvn20Ty
Bzh4ef4Hs63ADhk82tFE0Ziyv+AKqJJF/5gf3BDZ4rQz77QsBzTrx01KJrE+ygz1w5mpNEWsGmEl
kNlvN9XEYEra4MALCmAsgutYSUtWRQIy1+C4sxh9xsUU6Ut9zIL/2WStluYQGJoc9CKkHGtM6F5p
bkJDoBItq/dalwfkWiwwAWUt9J91ZXGvvGq3/WTCEf8jZTf9cUt/lewLLPA7wCz3LZRtTswTS8s6
JmGpBsvvBJH1zCPulqyAGDBRGWSAwIho7Jpwy4DTymBFdh4ED2TVWRCfRUhYCM55dkFMeYn3THn8
kUHlIDSoNkWsaGZwioal2TAZbR/4kEphAup6BCPFfKxKYBkHVrkK/4D/ox8wfF/bVuaNNUrELMe6
PpjCb1Aenv2koiDcKxgUxnUvrBEo5/gQSFmFhnZn5byH/1lszErYKIeTTjqp/UbICac5o3yMUQ3n
GjeyvVnnAAAgAElEQVQMHuUiuQo6gWGElV9EYAkkC8cCEwTf8WEEF0QjWU65oHGikQgIZqH5+ALZ
ZBkZQJOa8od8Z+AxCF+AM2jS6iIlA8s8c6CzrajIE2EjPL6XpaX9mHrCVLEzDQnz821MGuugkphA
DqoRq5soZG+t7McLWmEQmpiFDPFHQsOgj+/7S15zvUS6OOsslHvLlqEEErwCEQmOc/gBLG29VtrW
XvYQqxZU/oOlolDMwZ577tkCHO4jz10UJUy1rbYJL6iM0QmF4AiYZvyNI0skn2Q8XIs1ZFXia0XY
8gQvyoq/sqQFRE6CxqCpIiARBGs/El2qvgTtGQ3pfBq6Fg0yzyANS5QnO7Ea/I1KGJrVotkxE8c7
zAfG0aSgSt0Ers+s+qKfjs+GETV6REBmE4KFfM/5xvih5EMQyMKapAASE+bZ8LS0e8Gote2U0bAU
jjNO/LgIPwGIj3H88cfP7InldyFyIWJCkDaNoUgjWMTysqjGFMQkkKKDoJTvCYTABv/E/BNuyVqC
7HdQGjwbJxqJgBhMmtDkYTQYnONJg8PQQp21etZ/E8N6YHqwIA+fcZzvwCn/M9EmArE0IiQgh/80
VBbq0MIiX6EIaX4fxLTJNnvRjIRY1Cq/VcjEGSeggg8pLJwPRQCEuZ3bZ/D6mbA7HowjHCFCU/fz
yrmsQN3ZHkysbQ7q401XbRXEAkc40kcWmqCyNuBXInyBZ6wUhUKQzQVLy/9IWDjj7Pgq/N1SXw9i
YjCoxUpMOiYzAXwNzE8DZUsdhNE4d7QU6le99n0M5j1PfuUXyA6HEZJgRDQojcY6sUQmnAXhFw1y
qCth3iyb7R/nM6GvSceFCIhj9WU+K+wcn1WIYTB+26DnprMCNHk2CRcBm41OOumkmcdWZ2EZyuo/
57OeWUtT7z8BA+/BKLCUlaA46nFIQGDcVhOOTEBAIGYXI8pl5KE02cqHaSYclbFMAMvDfCtnoJFh
XbiXhmKuwSy/Y8o8XyQVvXwLGllIOXtiOTe7gph8GWB4XsiWZall2iYQEybChepTbwdR8hHzFYxQ
vW5/QwnwKNo5JHHYr4JVdqLP1tDoRyJWiMaXn+iHw+u2pOn3Tjvt1ObJmJoXkEtpOmebL0KItQ2y
9oniI5Cslnl0PKVDcOsujJlnKKHW5S1ZAcGUXpgaTlbrBBJwPvuaFp7noIvGyLj6zeQSIFpSJh2U
YHFS44QhTALnnPAx5yJIIABIIrri+lXjBU/rA4jVX1WHCeQh+D4pblwo468NAnUIsP6wAARdHigV
uFULc5A52BQKiwrWugcQy/t+/wVOjEs/UHDeeefNOP/IdWLJh5FjOeDZz4ul1c+sADXvhIxyE43U
J6H+cRKOkQmIjLBoicGSiTYpJow/Up+njeRJCElW2hlAFgimDZNmyWc0kaw4GEWoQLk8L0MOA/Nz
5uUOWA1Ch+RPWBka0vUECkIm2XksVqxdmFFoNOX24v4mn/BWx3ptUyyTa3DGqxbukwAE6AhmigJ6
WY7MsZZvSmLUeKbwc1hbG60qu69Qrn9cErpyKkLDxkzOhhURcBAdFBRwLfMONo8zjURAMCIm4muA
RBhVRAsckOHOZgvxLRwTMjl5WE0Is4MLfBiOHkeRIygP4bjsYO43Fkc+wDXz0FATBW7JKYAv8Wdi
zVJgmNBu+iEwIAoj8kLohEI5otnrd30QaCUPI38wiKmNJ0FieVg/WluSlsVmXSgriVqfBU34G7L7
/IRTTz21tWlsjFetV6M0RJ7yKIUaBjcm2hTdM3aO8xI65muaDxBL9GrcaSQCIm4umZXHDIfZDXr2
TcLgIiN8FeachhPeFS/nVJtQmJaDKGtLc4mvB7/7DGuLqad9WozFEO3hNGrXd3IGYJdiQbAgZStV
m8ozEADkeuCbwjr9kjQUHk2x37qkCEG0OR+OYKd0pU/8k+SVWIwsa3UvFIFQdRx1UJSlxuD8uU03
3bQJPt8tVjhjKfuePA+LTrj4e8aBIuKvuQZr5fxaHU34+DTmZ9gDSZe0gNBIJhgmVb7NweOgY/xs
+4/RmWdOMYhgUGkeWgf2NrksjuiUV/9BlRgfU5sw0AqxMilXl/2Fy/kh2bwaw3Mqa12XfiplkVgD
2yTTMFqYjH8EHhIYTFKTnOuKON/ZfAFJGPatRz5zegmPEHqKOcHF7DhJoyc0KzcCkoE/2UV+xx13
bPeX0PAgv4sPAdYaZ5aD/5c2QVfjXPtnHhVWjlNJyVgJCBNOa7EkBCLPosDkhAHzZw12VgQm4lLX
nINUrI4J8igDJLQIQhEMjM6007CZQJMOGrEemMw1aEcwBCMQNn4FS8BpBdP4QUKjLFhdXUhQCXge
0VbXoCyUOMGy7WBcknN1mW11vHMfxkY/3XOFOch7AiyAoR1WD1RlEQhxHvZZI2a0O2tKGHx/8MEH
z2xl5Hp1+6DUdPnPghg/Y92PuhFGfgZlRiD5aHzP1J+NO41EQDAsrW2tRcjEgipwbn73P1taCr/S
hpzuECwdaxLNJoSb9dMc02zfk9ojkxrtCwrwgzAmaAf2sSCEzko95xCIPMMEhJBoxASgFSEDAwk7
uACa1PXpCyH9pihYJ9aolv9XJ7zuah+hTKl/9dWQe6kCADLxQ1Jq09+NxfGUTpTQAQccsJrA8dko
GvNkHIyfiCLY6jXIB3INFkQ42DjzmSy9HaeK3bFMFGaTBswQ8x/BMBlMex6yggFpvLpmQhspszDh
2f/W6jSFjNrlmNZrJvpTJ51g5Pnf/A+/8Y1YOZYowpHr0nyumWgNAeO7sIQsUEo4Bm0FNBdhfu3x
kRK2dU3+mPdJSuYJU44JY+qXPE4N84qqcZR9J/8DPjnWGAlW9CNRLKs2hI59d9RRR612DMviv5A5
RSC0bt5YXYIKYrLGrHcVYvcE5oHLrAgozSKjcUwOjs2uJogQSEbxMTJYytphV0IEz8pJqKIFfURl
CAazLvrkWILBxIuomASM4b/wJUYiLPwdDIhMHuYHmUAKcX9RINibsLEGJh9DuZ5J5dSzbgSA/0JY
CUQy+qxYhKMyx3wz6FX7xtHPeRSEsXGfAhEgp+WtoFgNyfY1OMjD4vKtUnqTmiolIJQKJaJqAIMr
xSE8rDZLcu6557ZwPOuWB5KmX6w0a0d4QUzH8Q8JR/++3A8hYcHALUuTCcm4rT8fu32xhBEJBoxf
v8e0NCLNbKJofklFC3r8ToObZCXpPotUiZaEQUAdkROTSMOBQeAQoQnDwvyslCiQtk0sWJXy8PRP
3F6uJmXYNJ9Ij3BulsMGj9OeBBZF2MHCWLLZrMqgWqgwP+jne3CSMlFWjzF99n2WzupvdgnJubWs
o7ZrfLzq9fhxrIF7pVCOO+64BqUoA/4MKMfCx5oRPExuTPI46b4ycCy4yAfKI+yyICv3Gx8utWTj
lCwcmYBYuATPxh+gsQ14tBS8T+vRmjQTzSYpZhIJh5BkHrwiZIgRTaKkHdhE6AiICc36de2JbLEK
hEwIOQm9CA7LRBD5HoSIAJhAmzF4T5AwBGuRFXfOI2QcYtGwyiQRmEGMMx/LojhQFM14YV7VAiwI
AYHja00aK2tMF0qBS4nO1UDIvvvu2wQRhGQJwCzMTXnJXeXpVMMoeREZc0IiNGz+BF30X1DGmKnZ
qsWW3VLfF4vWz+PVkIgJbRWiCRN7z367NHkeICNxRbhMHiYB1bzyrO+6qwbH0GeTK1uPuVOKUvuE
wC3HwOMIMzgfU4JRKdHIA2H4Ae6FsBEYTKAaOX5SQqqVWAEwrl53GGFaAYpQchaURhJtxoYwz/f5
J33ia7hO3wJMTU01AaUQ5EvAqPgmPs9HwB1jbBxP0GXYBVcoMEuN+TssvHIjx/BHx4lG5qRjLkwG
72IqUApOxUwy7QaRxjfAfANQqO7Oh4SFDSym4Uwz+/wTmomQ1I3XCKAolgnK7u6ohkZDggWYAGOA
XQSAP+Q8loWfYh2IkCULx0IhPotEJk3IUrmvbHFTaSG5kjBtghXDjuEEs2ALtSDOrdv39On8889v
SiI1VSJQqYyer0WkiJQQxTGnVFh3CosipABE4PhULP2wDbGXnA/CUbSjCTMuJ2KQOcMGlDbEkPA7
eEN7Z+PmOhG0Thicmc6O64mUKdTLZ1ApBY0mXHvgFG3G1wDVaH/anXYjUM4X3eLIsnZ5gI7oEUgD
9hFKwpJlxLle/g8qhZ/vGFUa5sMkhL0Yp5cfFWd/UL+mp6ebz8CCmivh2kHCET9sUBv9+i4rMFl/
AQTQWXjbOCrzGSf/Y6QCYiBAF8IAy0pg0bZZ9ETLGDQaPA+R7IdP62DS+lmznsmW9cb42jAJhBBE
Q8qu4WCYmPMIOtXEHIzPUc169DxLkd+jP3C6jDb8TEDytKlqmeB61i+rDddV9W/6lz2l9I+Qg5uD
xqqS+6+PfhjU9jnnnNOiZxRabctCKlEpAQvjO+x8wgsR1GpgEcksvspK0XETjpELCOL4GmjRFszL
2RXWFXXiYINJ8DXLYtL7GeP8F3qljfLZpLIWQsE0FQaqppsfkvO9QCWZc9qSA1+f05HrwcpCo2CB
YkvnIILH+rAghB7DgXLyAgIH/JrZHhS6phTGE/nTR5DP/bN+uY9kvXN8Mu01WTuIdtlll+Y71PEw
zlknAh4ZD8qsXyaPQFFzDFaCzCwtCAoVIM6+fmb9z5IWkL4DiDjYBhGcqouQHMtxpBVNBl+lZpVT
xZv9n+B9ESY+gOQYATN5aq362ei+3yHKkvMU99X+agPjgWfCwo7zvXKTJPPyEmTI+nDC4qUmTE4n
pR2DaL4RrfmMrzKUrOugBIS2CbCxGjT2/Xmpv++8884tkIKBaxGoMa1raarf02dygQQKULRL+JhV
yz5ojjW3ghvKXMzfkn+ATorlgltBG74AU03zYrBMmMReigKreVbqwDfBdHVyOfIiWYocaXCh3/rw
ziokFa4REK9BGkwEBjxgferDZEKiYxKSomlxZGvbML6knqCECtk+Za3J2hASbYB1hDrRL/2Q+TZm
9VnprsXCqVejzcHHOsbmY+utt57J1Oc3SkEFLuhZIamwOwcbvGNNc7z5TY0apSVTz88TXKF0CIgQ
NoFmkfWRFVzSEIuGi0Mr640wH+GgoTlxKIws0SSawszL9ppYE1S1GJybTeH4FCYv66b7O5TTeJx5
vkMiXWBY1qBXhpBxF8Xqb+KMaOds+gDWBDbU47wXuiQgoQoPCcegSNpiydgQZhYZbKFcBCLqArA6
FqxM3SEmfacwDj300FZ5m74ZA5BLKY/9iiukMtb8Lf6eGjgCwyfkjGfL2FTvUjg+813StggXn3Dc
YNZIIBZIJSyLaBfhXYyGGQmHHATmzaCxDLLFhAOjCbOapJSOoLofLZhmoJU0yC4nxi+qJYQsxIgx
CCMLA69j8AgTjMwXArdErgZFpGBnAQZt5NFl8jSDrIA2BSC0T5PzY7Kt0KAM+mJJ/0BNGh6jslyz
MZxx4eflXP0UIsfI5mHzzTdv/4XgjRELIVIGMvbbJQggG+UkeMFCON89E05OvrZELFl/QmOca+5r
HOuy1quARAuLDikNCVODWNlpxO/ZyoaG7jOOc0RMhj2FqPoZLAXMq7wB3BCxMWmEk1OfZ5PkuoEM
Msba4Fhi5j78gfO1GVKykUjbbIQBwQolG5QEpVAZbU2FpEb4KBHanuVVOSCaV7cMNTYUQKxXdsAX
UcyzQaanp1vQwSv5IIGUvh/nXP6Keckz1VmgkPAwBUJoEGed0KSEpk/jZEXWO8Ry87S/QadNBm1N
w4/IxtJeLIzJZEH4Fpgxmm9Q+0K0zDdBoKlch+ZTzIg42yaM4ziMKX2vTKRml/3HRFnCm+/zTMD5
UAQXwdogHri4mOrf+fgjmNV716xPwa1W0XgpHhSk6LcRyl7DeeBQzWvwY0QafVaFUPMxGT9WB4wF
l/mGLHl+R+B1HwYu6TAvCxATnEFkmuUTUgKSwWNh4GqYFu6lEUVEUq5RmStBgEA4n5n26pxzSJn5
YY6x72k5DFVDoya/lrAMIserW6Kt61qUSj47DnTkK2SlYo3gzdY3jFw3zx5ExiT7HNPmnOXaBocY
Y4OKruvYYc/muPDCC1vOwnVBRBZeICT9TCje52wNW+81uRTnSrpKsNaARx4HzV9KiU+31GuxDDYG
qQKT3UEGhR3tuSsKJGwI64I/knSEJIzYPxeMYW2cn+d+EDaWhBDGmR1EGBC8SkTFddV/OUdtmEhM
nFR+EesG+wscwPEiRzVA0L8f5FiCyCop4dAnDjWGFkFyb4PGQp9UEMznOSCO114etBmSt+CDYG7R
Q+HoYbTJJps0SEyARLf4NuAvqCxwApqCcoFMg3w2RaDGPU/1ChkfUFMoOrvJjxONrBYLtAJhREoM
Eozre05eivOq1mcVxMgz4KCWrDZGYf5r28hxJkz5CQhDEDA5IeHc8wNq+xxTjK9PmB/z0KqiNbC3
8GP8kTwijhUy6TSsOijQEPMSGDCCrzLIEvSLAo0BWKK2DJSk3QmbqJxr6lNtB6Tr52DqYxNyjfyn
vYVTBSTquCI1a/OhbVY9ZZivYd258yk0+SCfCaF7MC7+Y3rjKH9lbCnAPoRDWcpr7MeRRiIgJlOE
SmQHE0oQGSRMhoFr9aoJzlNn85wKpliYWKSJuQd9tAkyYAbMSdNJQMncws1KUfzOnwF/WAMh0TxB
1wpCmjTLXZPbAM9MLp9HzZLQKd8F1BKBsyzVtdyPdpTjg0vZIGG+jjchIyDGgUMt0gZ6sUzujZAr
oBQQYHkIeKwTWIKB/S4h2F+WG1hGqFgrAr+YRy2vXLmyFWFSSJmHEJgWiEgxyb7z//pPvb2o0UgE
BBOAJzQlRgBHaEvxc0zhd0wMgplIwoFMSJ6LYYKCsTExre14cAvz55nh2qL1CJn6KXVRBEV1L6FA
hEaES7kLhzVJLTBHhW4m3gYGkmA0J6akfeMHVYdWxS+NTfBFy+B1FnBQuUm0uWtl95VaIp/NGdy7
+7DfsJC0e+E0IxhebgEMSui7X1bC0om8gaZ51PVCaGpVTZWcDqhbQ+xJ+qbPhJHlS2Fn/4lU2YQj
31NSFJDxNRdLOoqFmGQTxCyLMMlVwLU1Dg7T0sqc7eQMDByLYcI50KwNjU1T5YmteVIVwkyYCOwR
c8dUGNY2QwQikMSksDopTfcdfA8ywcUE2bFgnQVdQrXKsx3HotCoWdcScn+0aI6RBxhWj+WYLKwC
rQilewuJQKVUxHhk93sEmmJa/csjs+V4WMO6mpGFIUgieGtKxx13XPPF6vasrm8OJB0pLuNkPkWr
QGOKS4i4/2g4904pstbmYdxovScKaXdxdgIAr9L+JjUaMBEeE8yhYwX4EXlIDabDRBgeXAA5WAJC
FthGW2oHg8vaEyoRFBorjy6o5Dqpxk0/ESjFEoBptCKYhhmzkhCjuBeMAgrVUo0QwQe5hjnUNf/i
vgUVWDfKw5iI+MhQI1AuVbPundWMEOba/DJjSxm4TwlXAQBRv1jHNaGpVQxN6biW61JyrBPFEUFH
7gvs85qtPdFM9V7jZDlGZkFAJ4PLYczDG2sEow4SP0C0RHhXsinkHBgf42EeAmBLGiFLmg0MEmHB
nDRvX7tXymMOTG59/BsiUH6Ts6F51RFVaEBg+AM0Z0j/MaVcCSiiL+nzbBQmJ4j8KD4WGCpIkN/5
R/pjLGSgWQTfC5G6TwKgDbBGhl+SFGwVafJ9fZzEYumMM85oARZKAyy2NJo1VmYz1273g4gf6X7G
UThGVmpiQjncYAcoYsBtRIAyUHIJ1otjfivYWA3QKDu1067OJUTMOAuDsfgOQqUsFWiiNBuTwMwY
B9MlCsMZJ2S0q5CxNmldlsf1vGhLGpkgYDi/sxislHAz30CSTXvgm/+SnLmXRJj8h7NZEoI2SGDA
EnBE+xhHvicwMELJUqbmjMOc67AoGE0blI0sugiS3xLqXhu01VZbzSR39c34UESLrQKQkxpHaDUS
AYmWFAGyis/n7E6eZBaHjZbOwik4WlQnRX1MuFAo+JNiRNoUc1cNadDVDmXjOZuWEYK63BVc8QL1
hItpbZ8dl43b8nw92lubrs+iiQTVNRa5vwiDvso98I9E5TjG8gmEYxgRCAJCOLTj2u6h/5iGQeNK
exOOhF+THDVG2Up1bdMJJ5wwszv+mpC5X5sFmxdpAfHCBLSuqBN4RatictqedqpRD5BMMg0u548Q
HhaElvRbVs6BGyxIHujC5wBxRF7ALRNA+BCmZl1gZxaBT+H6qQiulbse3aYtlorF0jahDVUhEQXj
sLMscHd+S1t8gUEPmgm5F311D6AVgRTZmks79ysJco/uBzw0dnH6o1TWBjNuscUWM1vCpj33b/2H
MPR8yHnqtyilcaSRJQr5Fpwzsf9gZ6HBfuY5a6Al+lIRyxmn4Q2s4+H91Ef53eIbwhNNDr7xITAK
6yUapXCOFWDJ+BKYiWPL2eT0EwbnsjggGaEIw9cdG1OyD2oR4MCNlLz4DPKBXdpQUTxMSPSXwCY8
6rqLhS7pqzC6MUwGXF/Wlqbefvvtm5VTY+W+CLXrSB7Ol8BZ1i7bui5pAakLlGB45RwYQfmH9c7K
SYZFeMAGeQcQJcfJN4ikKITzAkUcLyJCCFgJTMoCYUr+jJJ6OJ4wmEjWgfC4lmyuRVjKIsA6/opw
LgHqF/rB4iJaIm/KNWh7Iecq4HwnsIllA3/AQNDQe/c8iEAyuRrWJDmWNR1vfTZ+mFjYGxMbEyHi
uRKGK1dBxr5QaZOFBt/AQMLnGixgHms3Gxk//iSrOs6PQFjvEAvROoimFqbMcybqI4+r5kzpNC0N
82J61gBjY0IRrf7WNbS8yecHiLDQUPwd7QsQRMsnLxDGx5wqgUP27M2DY2KRCBDoJbnnXlglEM99
aDsROX3KjosEzv0JIgx6xHT6gLlYyvhKa6Lt+2Uu3gtNs7DC0vNZf3H44Yc3ywgK99sW3ACXWWER
xP5OjbP1y5hQFOMsHCOBWAYQNILRMXv8gkwm5mRq+SJhDkkkgsRRpgFZAZErFoImGuSEZl2J9jGk
c7SHgXO9XJP1Eb4kCCnqSz4mwhHyXl2WKJFMOajnXJib0NCmYIOEHouBlNCAH9k6lbVkvfhhVcvn
WKHe9G2xZfDJblMK9RnuvgMvqx81jM4+++x2Hyx3X0CQoIowuUBIHlQ0X0gI9vJVKBEKp0bqxmnh
1HoP8xoIWhRzYZj6GwGg4fsFdxgdJMhOgmBRqEZ4aKXkHRLN0R7tntV1/SwuZgWTtC/HwA9yjFIS
pQ9CvDC8BUh8JhAJVOG0O4dwgkIgHUczkTRtw+ZWNbJyIJ6MPNwuBJ1d4wdRHuG2WP8jhOGqcOQ7
UTjKhQMf363OT2j58uXNyg+zYo5PPdqg/ma8++cbR0WpUAABBpOFe7M17JJeUWiCslt5P4HHShAG
TjuIVB8aCXJw7GfTqLRRngHCkaehafpUippMbYEwgVG0tRCp81gCkSgCyBfgqNuBQ6GgxCa/hVAT
VNfQtpeCPDAEBKxb/2dhVxhE1h1j5Gm9w2hNBWNYG/U79wz/g1tgF2sALkoAVobeaBZtXp/P3if+
hYVxoBz/TEGpmjRzwv+ifJTEqPRleWN9WOy1ETq+SK8oFHKkgWlr/kVqoGSgRavgcNEXWs4E8TmE
hAkO5hzGQHVnPxNEs4kEYXiOuerdPFeDRWEVOJWYm1YHb0C/bP0jwuY8cI+GAzVYFlZLmYdEpyBD
qlvdRyY62rPvF3mtDQFYWyTBaJ1Hys7dQ/ISfXJPxp9lFiWkVPLo5hpe9l55EB/NeAemCqGDsKmg
ECLmu4QorSy9XtICIu+B0QgCB1sSD7yS3xA5orWjxQKtOHOYeq59k2hEzAz6eBECPo3J4BMQGHCn
VrPqg8gYgaq7IGIAJSjaFLEhGFlTgcAqn+Fpwqfcpe9TVNKeXA8YuJiyjHVF7lm+hWWXKKXZs0Jw
ampqZqkt6Efbp26N5aRYqnAg4y3yl0cxJOJlHiMcQROsluW2gijmatxoJHkQJj1rm7O2nJPL9MLF
yR77Xf5AJIlGwogGlsMrO529nCozglkmVVuES4SFBmN9ZOdNEj/A75zDVOmaeFAsAsL5VKKiLZaE
RdOXCAALpRyGgGhHqHeux4o5N8806ftZaNDiqnVNuWYtX8fYNq7Yb7/9mpUXzh7UX8JRKb+x+GrB
KhECvmC1ruaZILLas61oXFJOOu2ZbfTrYKf83UTJJ8C2LArtxYmm5fNwS0xmAvkE2dChXiOlK3yO
+B8sE6EjVPF3OPXZg4sv4jNIJVxJKMMUGJ8GrJZNoEGBIEiCgUDAZJVnu/8aQWN1sna+5hrWp5AM
8un4I8LfZ5555syj8vQpz04fRgvtt/kwl3yh2dbELykBSTi1focqk3OQQRGmPg9swaSiQH7DVAZW
orGGRGuho0QkLR/GEy2B/00w3JvHs+X6fs8TdkEH0RsMkfM548LFoljWY6jbEsfPE5lk4FnFQQm1
QePQT76J7AzLj6xLGhShIvzC1xtvvHGDv+6dYkv+am1QhWWgbaz5bP1aEhBL/D0VvJVAIyFRWpXF
oNk5wUwzSOY7kAc0MqjJKdh8WWaYg+8z5xmTsz4V00ZICAFHUB/UYrEKoiaxDtriuIJVsuey9WFo
MI2QYhgOuwVAIAhrxN/RDisnWkV4CCl/a1D4E2UbIjQss74+KA8CyntraPRxxYoVrchSZQIonGrl
NbVwfUGg6FyXwjLmBEaydRyEZL1n0kEf0Qz41sBg0uxUwg8AmQgHHwAjWrAkfEp4+CHMMU1r4jh8
2YaHtktizXUIk/Pz0Bbfawfz047xgVgj+Q/WSvvZREFFrehU2sNAuQb4RyBARef4HjTEQGL6fBz3
mQqBYQwy6OE665v0JULsPtwT6EgJ3XDVptcUjRWBsz1oZ7FkfLPuPwLBKtcdb5aMgBjgRDesXWs5
JzQAAAk/SURBVLBaLs80j5bORgCiGjC9c0RFMCWmlQ9RtsG6OJ4jTvs634T6PbkQCTwCYs2HuiPR
KMfFuQ8k8hKvp/UJBc2uDZqMQDL/mBms0q5jCZUkpHbUWwkysEpx1LUjb8OSJcFZaZxCvdVxVotG
aYnenXjiiS2Mm2DJunyEQ4QDXM1WsfX7JSEgML0SC9EoprSun+hPFCsRLYzBaTLa3wYOHMc4lxzk
PPiTY2mxEY3H0Qxs4osITWbfLVBJklLEClMLbRJE0MsahzwPPIKKqs8gQ05AwQAwJJvQaSvb49DA
oAl/RuZ6XIWjUsZUMtP9HH300c0HkShNdHBd9T3tyoVkF/pRC8dIqnk5s1lxF4pgxFGVIwGR1DTJ
xoogccZZF7VVoJMsNf+AZWCVtJFnd/QdYBNu2WlCuZKDBA9jK7VghfgPzDrrJh+Q1XkhTA7OCW1y
4LNvcA0QEJx6P4hQx8LxjWSQRxHOnYv6/fH5lFNOaUuahcpT/rIuif8n4z4OgjHSzas5gagyM+FJ
FCePhsa0ShMws+gTrc05lxkHgUAkESv+SphuUGkEB58wWFgFXhEk8Ckak5bMbinZ7M0KQ1Aj++6C
GgSnnwjMNQkZWMVpF9/3CsHUiI8iQqSN6p/UtsaNLrjggqYYbJIxqDp4MZQ550eCvbLrikiFecdt
d8WRZNKZUEzLX/ASdgV5ON2wPM2l5ITACMdy6kEVA8oEYz5YVR0PeERoQKphmsd5omFgmspdVoJG
5B+wCHnGh/PlVmTEfc8/ClNkJ5NhpH9C1QIP/BBFkP0HwWAAlgexhCJqkmS1knXc6PTTT2/jL9Su
atd9GUPRujV1pI11ylfQkl8wVUnJtZcICp9A5CfPlgB7aHQMBtrETxFd4sNwmuVThFdpttRC1Tqo
+pnVkPHGlBid88kfEdcXNdNmNLskYSxZLN4wBva9km1OfTZ9i9ZlIWIp6/ERYn33wnxK991bfZiO
ioL66IXqp81HczvevRrfZMlz/YU423vttVcbL300T/w2yxUWs0NKSvCTf2Kllf8kmVt3ju+W+u7u
IYxkvQfnW9TJhIqJG6SEVUOy26AROMNfUVxowlgcvopwYdY5sEoCASIiiiOFdrMpG1xN47NaWdBE
U6KarHN9EzqsbirLb4cV9s2HaGa5HILJ52HtCI42CTCLw6rqax6HNl8SiuajZQfJCFe2Xp0Pbbvt
tk3Q+E/mJptPL2bNRhQNiEshsByE1VxVmDkRkEIiPzQ8X4NV4FOIPtH42Vi5DlhqdgwkB1jiTj0P
h542D7bNOgZRKIt5tJUFTCwVx5PQEEyFktVahJzjd1XFqeXKEtrkXNZ0cU/OF2lTYlOZSU4FIwsp
6/ugx8ANI+eDLNo1PoIc2TBvvsKBJAgpobrxnT4sJuQbK8yvi2+nnxRdVltCEuZPGQoBAqNHKTAj
tyAhkalMvoGkuWbTJtFGnDzvK8wS3QrWh/O9+sQfYb2YeecQTJMuwpa1KspKUH0SFCYWTROqlkkn
QKJX68LBFhYnxEjOSD1Z6tHmIv0B2fhoggOxkAuh6VVrZ0BTjroCUUy8Nsm4snL950hmvPU9q0GX
tICgDMJ8dx7v70kVgv1ZDk4kJpYdFl7FbCqB+RxKWkSXrAIUMiZghIMlwoSsh5xGP2SMaDmvQBYY
XdKQwIF5HHXtrw24kHvUL9CQzyV5qW3BBtE9kIXz7DsQKFsXEexURS+GplblQuSGWPdk2wUhvF8b
Jft9364PtQg5ARkVjZWArA0ysHC9CFUdaNAonytcEQioBYtIeHc+TBUBydoSQiZ/Q+slzLu2MHWu
BRqyBjaikKsBQ1g7MNF1swbD9wSdD7ZYmlqlzVU0yCHxDRWRihoOssrrgkTMRLtGRRucgPR9gj5z
1s95P4iB58PUg64lLL0unrWXawmRBz7W0CiI6BVB8j3BXRMBWblKu4v4qTLg9OsHSyuSWB8DvS7I
eFqmCw1IC4yCNjgBWeqEqQhQikHXlm907rnntmgf2Lq+Ik3p+7Ciz/VBEwHZwAhTyUqLPNWc0ELz
H336fnkO5CC/bF2R62RH/fV53dBEQDZAUtPEn0o4WpXzsIeVLtQfOeSQQ1roF8RiodYHcdS95L7W
d55kIiAbEAWSCMumuBAzScDOxVS1+mC2rP3JJ5/cErCCAVk/s64o1+frEEjkmsLvFMD6EJSJgGxA
FAbvb743GyPlN4lE+SN+hhKXrNPpBzM46nIhdXeXdUW13xFUoe7+o6TXJU0EZAOjlKiIOinQtMXR
XPVbKpXlb7KGX7haXuXYY49tkTFJUYvFRLDkf+SW1lflsf7IR2UHzfW9+8lEQDYwwsQYXfkG59ai
rexFVa1KyJZHqgny9OAcpzZsn332mSkslGOx3EDCEMRKBfS6JteWtJX/YTnykNb15YdMBGQDpJTh
SOxJFirjUVqjcqA+AQthdAI1aKFZzb+wJKoRkk1Xpr+Y8pWFUPpIwNXPjYImArKBUphdZTCi9fkZ
eb5hrXWaT2Roure4jeVZmwKi+oHFq9YtfVJ4alOPUTxDfSIgGygNqhJQaAlKqU5OjZZarvkIyEal
akB2u+6puzaIcFQBrPehkjjVxJMw74TWKdmzS+mGpQEKIAnLQmh61Vatc5X5D/J3Zjsu7wmHBVRW
XyqXkcG3dsQaoFHQxIIsIQozyilYBbkYyDI1NdXKTebaBXKhAkIA7H2mELJuQTrqBVQTAVmitCZ4
fvvtt28Ov6UDFjdJTGYZgSUFeRhR1tv3/ReU72X5WTTVyXykSqMoLenTRECWKC2W8f636jHSdmpX
Zq+6OKsW+RF2frGfmQiaquY8Mcr1LIJjvQiVp0sRCG0Ero1aGAbRREAmtCDaeNViNovErJux0wmh
sXWSDf3qU8OElu2GKSCg9N5+ZPXZ8YMy5eNGEwGZ0KJoq622ahtkqPMiIDav4ENkx0zkv7L7GpUa
Zi3G0XqgiYBMaNF0xBFHtOLFPONEWYtdMT3LvjL8OD21dqE0EZAJLZqWL1/eNge3v5kiRmvH83Ck
DYUmAjKhRdPU1NTME3tVAm+INBGQCa0xTW1AFqNPEwGZ0IRmoYmATGhCcwmIxM7/F4tddKMNE5rQ
2qLplStXPZau65b5s/fed++mpiRuJgIyoQl1BGOTTTqu1f8B9N4WseFApCkAAAAASUVORK5CYII=
</Data></Thumbnail></Binary></metadata>
