<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<metadata xml:lang="en">
<Esri>
<SyncOnce>FALSE</SyncOnce>
<ArcGISFormat>1.0</ArcGISFormat>
<DataProperties>
<lineage>
<Process Date="20190923" Time="144945" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20190923" Time="145035" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20190924" Time="111752" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20190924" Time="111800" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Addresses - Site Address Points" addrnum !fulladdr!.split(' ')[0] PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190924" Time="111847" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Addresses - Site Address Points" addrnum !fulladdr!.split(' ')[0] PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190924" Time="111908" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Addresses - Site Address Points" addrnum !fulladdr!.split(' ')[0] PYTHON3 # "Long (large integer)"</Process>
<Process Date="20190925" Time="130841" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191022" Time="133653" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191031" Time="145305" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191115" Time="140415" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191118" Time="125441" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191118" Time="125452" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses" fullname !fullname!.replace("Trlee","Tree") PYTHON3 # Text</Process>
<Process Date="20191118" Time="125631" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses" fulladdr !fulladdr!.replace("Trlee","Tree") PYTHON3 # Text</Process>
<Process Date="20191118" Time="125658" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191118" Time="155753" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191118" Time="155819" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses" stateabbreviation "IL" PYTHON3 # Text</Process>
<Process Date="20191118" Time="155837" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses" country "US" PYTHON3 # Text</Process>
<Process Date="20191118" Time="155901" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191118" Time="162504" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">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 Date="20191119" Time="153325" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\ImportAttributeRules">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 Date="20191119" Time="154745" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">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 Date="20191120" Time="164558" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" capturemeth "Plan or Drawing" "Python 3" # Text</Process>
<Process Date="20191126" Time="092333" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191127" Time="115847" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191127" Time="115906" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191127" Time="120642" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191127" Name="Delete Rows" Time="121320" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteRows">DeleteRows "C:\Solutions\Tasks\January2020\Address Data Management\Data Reviewer\Address Data Management\Address Data Management 2.gdb\Address\SiteAddressPoint"</Process>
<Process Date="20191211" Time="135254" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20191211" Time="135429" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">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 Date="20210615" Time="161010" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210616" Time="160400" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210616" Time="161115" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210618" Time="100849" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210618" Time="101406" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210618" Time="104035" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210618" Time="104448" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210618" Time="105309" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210618" Time="105415" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210618" Time="105451" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210618" Time="113407" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210622" Time="165911" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="114429" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="114817" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="115815" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="115957" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="144847" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="144941" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\EnableEditorTracking">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 Date="20210625" Time="144947" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="145400" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="150258" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="150305" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="150739" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="151309" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="151416" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="160455" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="160517" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="161009" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="161713" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="164814" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210625" Time="164847" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="103046" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="103437" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="103617" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="103948" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="104041" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="104228" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="104251" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="105316" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="105352" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="105458" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210628" Time="130402" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210630" Time="161711" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210630" Time="162004" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210630" Time="163722" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210630" Time="164057" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210630" Time="164340" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210630" Time="164556" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210630" Time="164718" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210630" Time="165247" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="090905" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="090914" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="130742" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="130953" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="131112" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="131413" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="132732" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="133543" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="134047" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="134716" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="135247" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="135648" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="135929" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="140023" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="140045" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="140057" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="140224" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="140331" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="140550" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="141009" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="141226" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="141357" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210701" Time="162742" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210702" Time="101238" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210702" Time="105203" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210702" Time="105637" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210702" Time="110109" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210702" Time="110246" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210702" Time="143239" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210702" Time="153632" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="095545" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="095948" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="100030" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="110938" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="135342" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="135930" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="140124" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="140149" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="140451" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="141037" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="141451" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="162305" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="165631" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170119" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170205" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170307" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170332" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170357" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170402" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170440" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170508" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170541" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170555" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170611" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170627" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170646" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="170708" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171053" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171246" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171459" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171540" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171635" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171802" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171819" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171829" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171837" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171918" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171935" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="171948" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="172147" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="172220" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="172311" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210706" Time="172331" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="084600" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="084620" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="084631" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="084731" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="084918" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="092845" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="093106" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="100821" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="101357" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="102130" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="102147" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="102944" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="103141" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="104357" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="114840" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210707" Time="120559" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="125558" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="125950" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="130613" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="132836" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="133037" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="133119" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="133229" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="133250" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210713" Time="133435" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210714" Time="154159" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210714" Time="160512" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="114726" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="132607" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="133226" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="133349" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="133405" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="134847" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" capturemeth 'Plan or Drawing' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210715" Time="165511" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="165517" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="171528" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="171611" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="171618" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" municipality 'Test' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210715" Time="171630" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="171647" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" municipality 'Test' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210715" Time="171938" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="172002" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" municipality 'Test' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210715" Time="172053" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210715" Time="172213" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" municipality 'test' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210716" Time="101951" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210716" Time="102137" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210716" Time="102341" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210716" Time="102740" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210716" Time="132009" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">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 Date="20210716" Time="132231" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">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 Date="20210716" Time="132259" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">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 Date="20210716" Time="133120" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210716" Time="133943" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" capturemeth 'Plan or Drawing' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210716" Time="142954" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210716" Time="160944" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210716" Time="162618" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210716" Time="162712" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" country 'US' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210716" Time="162734" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" stateabbreviation 'IL' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210716" Time="164655" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" pointtype 'Building' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210719" Time="150559" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210719" Time="150623" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210719" Time="150631" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210719" Time="150749" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210719" Time="150803" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210719" Time="150839" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210719" Time="151508" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210719" Time="153352" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="085454" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="085524" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="090114" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="090259" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="091103" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="091129" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="091659" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="093133" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="101710" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="102235" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="102527" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="102610" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="102642" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="102724" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="155126" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="155154" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210721" Time="162922" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="085038" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="085902" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="090040" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="090337" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="090922" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="091219" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="091718" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="092424" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="092503" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="092719" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="093135" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="093340" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="093410" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="093521" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="093819" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="094439" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="095606" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="103727" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210722" Time="150127" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210723" Time="114419" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210723" Time="124145" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210723" Time="124220" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210723" Time="124417" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210723" Time="160145" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210723" Time="160200" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210723" Time="172224" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210726" Time="091740" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210726" Time="091759" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210726" Time="123827" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="102745" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="102939" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="103105" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="103134" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="103245" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="103504" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="103800" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="104021" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="104230" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="104457" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="104611" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="104740" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="122959" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="130235" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="135553" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateGeometryAttributes">CalculateGeometryAttributes "Site Addresses\Site Addresses" "usngcoord POINT_COORD_NOTATION" # # # "USNG (United States National Grid)"</Process>
<Process Date="20210729" Time="140917" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="140936" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210729" Time="141306" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210802" Time="094256" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210802" Time="095406" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Conversion Tools.tbx\FeatureClassToFeatureClass">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 Date="20210802" Time="095441" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210802" Time="095640" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\EnableEditorTracking">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 Date="20210802" Time="095913" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Rename">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 Date="20210802" Time="095942" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CopyMultiple">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 Date="20210802" Time="100019" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\EnableEditorTracking">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 Date="20210802" Time="100037" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210802" Time="100216" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\ImportAttributeRules">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 Date="20210802" Time="100939" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Rename">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 Date="20210802" Time="102625" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210802" Time="102706" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20210802" Time="105959" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" county 'DuPage' "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210802" Time="164345" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DisableEditorTracking">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 Date="20210802" Time="164454" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses" last_edited_user None "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210802" Time="164537" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses" last_edited_date None "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20210802" Time="164551" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\EnableEditorTracking">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 Date="20211018" Time="093703" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DisableEditorTracking">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 Date="20211018" Time="093754" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" last_edited_user None "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20211018" Time="093843" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" last_edited_date None "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20211018" Time="093857" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\EnableEditorTracking">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 Date="20211018" Time="100358" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20211018" Time="101213" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateGeometryAttributes">CalculateGeometryAttributes "Site Addresses\Site Addresses" "usngcoord POINT_COORD_NOTATION" # # # "USNG (United States National Grid)"</Process>
<Process Date="20211018" Time="102058" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\TruncateTable">TruncateTable "C:\Solutions\Tasks\October2021\Address Data Management\Project\Address Data Management Sample_1.gdb\Address\SiteAddressPoint"</Process>
<Process Date="20211020" Time="092750" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20211020" Time="092808" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\Toolboxes\Data Management Tools.tbx\UpdateSchema">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 Date="20220816" Time="162243" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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.0.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing 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;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;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;workflow&gt;&lt;DisableAttributeRules&gt;&lt;rule_name&gt;Postal 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;Update Validation Status&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 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;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 Date="20220816" Time="170249" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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.0.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing 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;AlterField&gt;&lt;field_name&gt;rclnguid&lt;/field_name&gt;&lt;new_field_name&gt;sitenguid&lt;/new_field_name&gt;&lt;field_type&gt;TEXT&lt;/field_type&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 Date="20220816" Time="170911" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,C:\Users\kesume\Downloads\AddressDataManagementNew\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20220816" Time="171053" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\UpdateSchema">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.0.0'&gt;&lt;FeatureDataset&gt;Address&lt;/FeatureDataset&gt;&lt;WorkspaceConnectionString&gt;DATABASE=N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing 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;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;Municipality&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;Postal 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;Update Validation Status&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 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;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 Date="20220818" Time="134346" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" unittype "BLDG" "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20220818" Time="134504" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" unittype "BLDG" "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20220818" Time="134928" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CalculateField">CalculateField "Site Addresses\Site Addresses" altunittype "UNIT" "Python 3" # Text NO_ENFORCE_DOMAINS</Process>
<Process Date="20220919" Time="164220" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CopyFeatures">CopyFeatures "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint" "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Take2AddressDataTest.gdb\SiteAddressPoint" # # # #</Process>
<Process Date="20220920" Time="132228" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\CopyMultiple">CopyMultiple "'C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Take2AddressDataTest.gdb\SiteAddressPoint' FeatureClass" "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Take2AddressDataTest.gdb\Address" SiteAddressPoint_1 "SiteAddressPoint FeatureClass SiteAddressPoint_1 #"</Process>
<Process Date="20220920" Time="132309" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Rename">Rename "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Take2AddressDataTest.gdb\Address\SiteAddressPoint_1" "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Take2AddressDataTest.gdb\Address\SiteAddressPoint" FeatureClass</Process>
<Process Date="20220921" Time="161708" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint"</Process>
<Process Date="20220921" Time="162328" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint' "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\gis.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\Address Data Test.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20220921" Time="164027" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\gis.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint"</Process>
<Process Date="20220921" Time="164236" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\gis.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20220921" Time="171359" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20220921" Time="171522" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "C:\Users\kesume\Documents\ArcGIS\Projects\Address Data Test\gis.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20220921" Time="172302" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint"</Process>
<Process Date="20220921" Time="172318" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'Site Addresses\Site Addresses' SiteAddressPoint "Input fields must match target fields" # # #</Process>
<Process Date="20220921" Time="172922" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint"</Process>
<Process Date="20220921" Time="173000" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20220922" Time="082847" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20220922" Time="082920" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20221013" Time="104156" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20221013" Time="104226" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20221019" Time="103827" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20221019" Time="103920" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20221103" Time="082739" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20221103" Time="082801" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20221121" Time="175759" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20221121" Time="175828" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20221222" Time="114142" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20221222" Time="114210" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230112" Time="134046" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230112" Time="134115" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230202" Time="115105" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230202" Time="115237" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230206" Time="085552" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230206" Time="085716" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230306" Time="152932" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230306" Time="153020" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230313" Time="141159" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230313" Time="141240" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230320" Time="140616" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230320" Time="140733" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230320" Time="140922" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230320" Time="141001" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230321" Time="172306" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230321" Time="172338" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230322" Time="104518" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230322" Time="104554" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230404" Time="093225" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230404" Time="093304" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230511" Time="155943" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230511" Time="160017" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230512" Time="165219" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230512" Time="165305" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230530" Time="105408" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230530" Time="105448" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230601" Time="092416" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230601" Time="092452" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230605" Time="094458" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230605" Time="094532" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Input fields must match target fields" # # #</Process>
<Process Date="20230706" Time="091307" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230706" Time="092418" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20230808" Time="110240" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230808" Time="110408" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20230830" Time="164002" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230830" Time="164051" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20230905" Time="164622" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230905" Time="165508" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20230926" Time="170603" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20230926" Time="170740" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20231009" Time="141013" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20231009" Time="141059" ToolSource="c:\program files\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # #</Process>
<Process Date="20231012" Time="090416" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20231012" Time="090509" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20231017" Time="142009" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20231017" Time="142134" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20231017" Time="142741" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20231017" Time="142834" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20231018" Time="102929" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPoint</Process>
<Process Date="20231018" Time="103014" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20231101" Time="151232" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20231101" Time="151343" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20231109" Time="113941" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20231109" Time="114109" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20231120" Time="143227" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20231120" Time="143327" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20231206" Time="115807" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20231206" Time="115906" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20231208" Time="123506" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20231208" Time="123642" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240118" Time="093050" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240118" Time="093146" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240130" Time="155311" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240130" Time="162600" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240208" Time="125324" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240208" Time="125425" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240213" Time="093012" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240213" Time="093114" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240227" Time="153135" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240227" Time="153243" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240312" Time="092414" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240312" Time="092524" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240321" Time="104507" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240321" Time="104601" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240417" Time="140737" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240417" Time="140846" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240425" Time="154255" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240425" Time="154459" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240426" Time="162721" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240426" Time="162813" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240506" Time="172726" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240506" Time="172859" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240520" Time="164551" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240520" Time="164744" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240521" Time="170753" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240521" Time="170919" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240528" Time="131952" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240528" Time="132647" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240604" Time="161236" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240604" Time="161425" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240617" Time="102013" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240617" Time="102112" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240624" Time="124943" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240624" Time="125117" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240702" Time="114759" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240702" Time="114903" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240709" Time="163802" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240709" Time="163857" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240722" Time="120004" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240722" Time="120423" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240730" Time="093621" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240730" Time="093838" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240802" Time="165350" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240802" Time="165518" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240826" Time="174254" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240826" Time="174400" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240828" Time="170950" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240828" Time="171116" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
<Process Date="20240830" Time="163027" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\DeleteFeatures">DeleteFeatures SiteAddressPointSDE</Process>
<Process Date="20240830" Time="163221" ToolSource="c:\users\kesume\appdata\local\programs\arcgis\pro\Resources\ArcToolbox\toolboxes\Data Management Tools.tbx\Append">Append 'N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint' "N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\AddressDataSolution.sde\sde.SDE.Address\sde.SDE.SiteAddressPoint" "Use the field map to reconcile field differences" "siteaddid "Site Address ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,siteaddid,0,20;addressptid "Address Point ID" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addressptid,0,20;sitenguid "NENA Global ID" true true false 254 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,sitenguid,0,254;discrpagid "Discrepancy Agency ID" true true false 75 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,discrpagid,0,75;preaddrnum "Address Number Prefix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,preaddrnum,0,5;addrnumsuf "Address Number Suffix" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnumsuf,0,5;addrnum "Full Address Number" true true false 20 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrnum,0,20;addrrange "Address Range" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrrange,0,50;unittype "Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unittype,0,10;unitid "Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,unitid,0,10;altunittype "Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunittype,0,10;altunitid "Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,altunitid,0,10;secondaltunittype "2nd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunittype,0,10;secondaltunitid "2nd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,secondaltunitid,0,10;thirdaltunittype "3rd Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunittype,0,10;thirdaltunitid "3rd Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,thirdaltunitid,0,10;fourthaltunittype "4th Alternate Address Unit Type" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunittype,0,10;fourthaltunitid "4th Alternate Address Unit Number" true true false 10 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fourthaltunitid,0,10;fullname "Full Road Name" true true false 300 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fullname,0,300;fulladdr "Full Address" true true false 500 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,fulladdr,0,500;placename "Place Name" true true false 250 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,placename,0,250;country "Country Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,country,0,2;stateabbreviation "State Abbreviation" true true false 2 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,stateabbreviation,0,2;county "County Name" true true false 40 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,county,0,40;municipality "Municipality Name" true true false 100 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,municipality,0,100;esn "Emergency Service Number" true true false 5 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,esn,0,5;msag "MSAG Community" true true false 35 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,msag,0,35;usngcoord "USNG Coordinate" true true false 50 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,usngcoord,0,50;addrclass "Description" true true false 4 Long 0 10,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,addrclass,-1,-1;pointtype "Location" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,pointtype,0,30;capturemeth "Capture Method" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,capturemeth,0,30;status "Status" true true false 30 Text 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,status,0,30;VALIDATIONSTATUS "Validation status" true true false 2 Short 0 5,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,VALIDATIONSTATUS,-1,-1;GlobalID "GlobalID" false false true 38 GlobalID 0 0,First,#,N:\GIS\GisData\Kennedy\ArcGIS\Projects\Addressing Data Management\Address Data Management.gdb\Address\SiteAddressPoint,GlobalID,-1,-1" # # # NOT_UPDATE_GEOMETRY</Process>
</lineage>
<itemProps>
<itemLocation>
<linkage Sync="TRUE">Server=gis; Service=sde:sqlserver:gis; Database=sde; User=SDE</linkage>
<protocol Sync="TRUE">ArcSDE Connection</protocol>
</itemLocation>
<itemName Sync="TRUE">SiteAddressPoint</itemName>
<imsContentType Sync="TRUE">002</imsContentType>
</itemProps>
<coordRef>
<type Sync="TRUE">Projected</type>
<geogcsn Sync="TRUE">GCS_NAD_1983_2011</geogcsn>
<csUnits Sync="TRUE">Linear Unit: Foot_US (0.304801)</csUnits>
<projcsn Sync="TRUE">NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102_Ft_US</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.0.0'&gt;&lt;WKT&gt;PROJCS[&amp;quot;NAD_1983_2011_StatePlane_Idaho_Central_FIPS_1102_Ft_US&amp;quot;,GEOGCS[&amp;quot;GCS_NAD_1983_2011&amp;quot;,DATUM[&amp;quot;D_NAD_1983_2011&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;Transverse_Mercator&amp;quot;],PARAMETER[&amp;quot;False_Easting&amp;quot;,1640416.666666667],PARAMETER[&amp;quot;False_Northing&amp;quot;,0.0],PARAMETER[&amp;quot;Central_Meridian&amp;quot;,-114.0],PARAMETER[&amp;quot;Scale_Factor&amp;quot;,0.9999473684210526],PARAMETER[&amp;quot;Latitude_Of_Origin&amp;quot;,41.66666666666666],UNIT[&amp;quot;Foot_US&amp;quot;,0.3048006096012192],AUTHORITY[&amp;quot;EPSG&amp;quot;,6449]]&lt;/WKT&gt;&lt;XOrigin&gt;-17463800&lt;/XOrigin&gt;&lt;YOrigin&gt;-46132600&lt;/YOrigin&gt;&lt;XYScale&gt;2438.40487680974&lt;/XYScale&gt;&lt;ZOrigin&gt;0&lt;/ZOrigin&gt;&lt;ZScale&gt;99999.999999999985&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;103033&lt;/WKID&gt;&lt;LatestWKID&gt;6449&lt;/LatestWKID&gt;&lt;/ProjectedCoordinateSystem&gt;</peXml>
</coordRef>
</DataProperties>
<CreaDate>20220921</CreaDate>
<CreaTime>13263100</CreaTime>
<SyncDate>20220919</SyncDate>
<SyncTime>16421900</SyncTime>
<ModDate>20220919</ModDate>
<ModTime>16421900</ModTime>
</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>
<accconst/>
<useconst/>
<status>
<progress/>
<update/>
</status>
<spdom>
<bounding>
<westbc>NaN</westbc>
<eastbc>NaN</eastbc>
<northbc>NaN</northbc>
<southbc>NaN</southbc>
</bounding>
</spdom>
</idinfo>
<eainfo>
<detailed Name="SiteAddressPoint">
<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">sitenguid</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>
</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">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">SiteAddressPoint</enttypl>
<enttypt Sync="TRUE">Feature Class</enttypt>
<enttypc Sync="TRUE">0</enttypc>
</enttyp>
<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>
</detailed>
</eainfo>
<dataIdInfo>
<envirDesc Sync="TRUE">Microsoft Windows 10 Version 10.0 (Build 19044) ; Esri ArcGIS 13.0.0.36056</envirDesc>
<dataLang>
<languageCode Sync="TRUE" value="eng"/>
<countryCode Sync="TRUE" value="USA"/>
</dataLang>
<idCitation>
<resTitle Sync="TRUE">Site_Addresses</resTitle>
<presForm>
<PresFormCd Sync="TRUE" value="005"/>
</presForm>
</idCitation>
<spatRpType>
<SpatRepTypCd Sync="TRUE" value="001"/>
</spatRpType>
<idAbs/>
<searchKeys>
<keyword>COTF</keyword>
<keyword>SIte Addresses</keyword>
<keyword>City of Twin Falls</keyword>
</searchKeys>
<idPurp>Site addresses for the city of Twin Falls</idPurp>
<idCredit/>
<resConst>
<Consts>
<useLimit/>
</Consts>
</resConst>
</dataIdInfo>
<mdLang>
<languageCode Sync="TRUE" value="eng"/>
<countryCode Sync="TRUE" value="USA"/>
</mdLang>
<distInfo>
<distFormat>
<formatName Sync="TRUE">File Geodatabase Feature Class</formatName>
</distFormat>
</distInfo>
<mdHrLv>
<ScopeCd Sync="TRUE" value="005"/>
</mdHrLv>
<mdHrLvName Sync="TRUE">dataset</mdHrLvName>
<refSysInfo>
<RefSystem>
<refSysID>
<identCode Sync="TRUE" code="6449"/>
<idCodeSpace Sync="TRUE">EPSG</idCodeSpace>
<idVersion Sync="TRUE">8.2.10(10.3.1)</idVersion>
</refSysID>
</RefSystem>
</refSysInfo>
<spatRepInfo>
<VectSpatRep>
<geometObjs Name="SiteAddressPoint">
<geoObjTyp>
<GeoObjTypCd Sync="TRUE" value="004"/>
</geoObjTyp>
<geoObjCnt Sync="TRUE">0</geoObjCnt>
</geometObjs>
<topLvl>
<TopoLevCd Sync="TRUE" value="001"/>
</topLvl>
</VectSpatRep>
</spatRepInfo>
<spdoinfo>
<ptvctinf>
<esriterm Name="SiteAddressPoint">
<efeatyp Sync="TRUE">Simple</efeatyp>
<efeageom Sync="TRUE" code="1"/>
<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">20220919</mdDateSt>
<Binary>
<Thumbnail>
<Data EsriPropertyType="PictureX">/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADIASwDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACioleRs/InBw
fmP+FOEh3bWRl9D1B4/z1oAfRRWXJqM2n3Eg1CP/AEUkmO6iU7UHo45IPv0+lAGpRTUdJY1kjZXR
hlWU5BFOoAKKq6jeDT9OuLtk3iFC23ONx7DNWh0560AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBFczi2tJrhgSIkZyB3wM1hi9vtb0tiumhEc
kBlu9rowPB+7wcjNaur/APIFvv8Ar3k/9BNN05LKzsYobYQQxhQdqYAzigDL0bXWJuLXUoXtLm0j
U3HmFdmSCd4I9eaW28YaTeX6ae4nhml4RZ4iof0/Op4RHN4qv14ZTZQA4P8AtyVR0jSLLSPFMwtI
/KE1pvZOMKd/QelAHRxEBnUk7ixIU9cfn0qXrXNya7O3jT+xvIT7KsW8yH72/buGK0tL1OO+06C5
VzIHiWQqMM6gj+IDv16CgBj6VJaSNNpMqW5bloHUmFz64H3T7j8jT4tTminit9RtRbvKdsciPvjZ
vTOAQfqPxrRVlbO0g44PtUN5aR31pJby52uOo6qeoI9weaAMzxOS2lw2463F3BF+BkBP6A1tVzDX
r3GraVpl6QLu3neSQngSBUO1x9Sw/EEdq6egAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKAKWsf8gS//AOvaT/0E1BDoGjGCMnSbHO0f8u6en0qX
WyRoOoEdfs0n/oJqOJtZSJQYrB8AciR1/Taf50AU9OtrSw8VahDawQ26G0gbZGoUE7pMnA/CsiaC
w1AavfIkLzpewolwmN68xg4I6dTS6jb6ndanq8qQ26XEdnGgeJ2Zh/rD8vy5zz7dBzWN4e1K5uPD
d5DBaw7YrqJnBkYPlpBgcjtgDk9KAOzfwzYC5a98y7+04P7z7Q+emPX0Arxaz1rUtKvFntbpo5FQ
L8pBBXqAfX8a9ek8XKt1cWUmk3q3MK/vFDRYGRkYO/nrXmlzpelPoUM1pDfHUWRMr50LIzHGcKGL
/QYoA9B8O+K4LyzhOpXEKu65WbeMrz918fdPHBOARjvXR2mp2t2JhHMrtC7RvgYyRjOB1714bYaR
rAu7cWsEolmUyRBGX5gvrz0+tdHs1HRm8qxt7ywvWjlluSHRw8a/d4L8YB5PX0oA7u+trPU/EyJd
QJLBbWbb/Nj4BZxjk9PuHmrp0ma3AOn6jPAF/wCWc376P8m+YfgRXn2na1dQXRXS47q41e6RzOJz
EFZ+MbecgAbuM88e9atn8QIYJItP1Cyunvlfy5VTYF8zJyB82Opx1xQB1T3OrQEKV06dunEzRH8i
G/nS/wBo6hbkPe6cPJPV7WQylPqu0HH0zWVcT39vp39o6q6wW3noPssUZ+SMvj5sE7j93oO3vVdf
EttYGdbi2vLR4wrkRoGGxvull6L1HI545oA0Y/GFk+qixa3uk3lQkhTIOc4yAcr0J5HTniugDA9C
DXBWt/Hd+Inu9K0MXysg824BEYyR3BHPP1OO1XNU8W2lmktuYtmr7vKSG3JJBbHJZlA6kcc9qAOy
oqlpE89zpFrLclDM0Y3sjAqx9QRxg9au0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQBn66caBqH/XvJ/6CamS/s9i/6XB0/wCeg/xqDXv+Rf1DP/Pu/wDI0v8AY+lC
Pc+nWWAMkmBeP0oAy21bTrPVNWkuLuBVdYlXLA7jtPArM1280mx0me9iaVH1B4Gby8ZARgQ2P4Tj
9e1alhpWkz6xqgFhZSRqYtoESkDK844qLXtDt4LYTWSx26tLCkkIj/dv+8UBtoxhh69xwaAPMfFG
ptdX0iw3JntZxHOHkVDJnZjBYAdOmKwYiVkVwASpB5GR+NdX4v8ACV3o95JcW9uW01SNkuQTk84I
zng57dKzF0zZbxPeWzQebEptz5bnzu7Nx6A5/AUAaul6rdalqCb7PSoHYeXvmtAIQDzk+hyMfjip
r27vF0AfbZbXELSpDE8e7IYDG05zjBJX6fSuUu3jRxHbzmWMLjPl7R6/U8561of2pa/ZlhaxhuJt
kitcODk7uhA7bccfU0AUryPyruWKS28iRCB5cZJHTk5JJ9/xrS0C6udHvV1BYElgUbyzIrgdQNx/
hPHqDVRykVk9yl0ovvtGxfLZgwTb1GOMdqr/AG5ls5LYKMSOru6u2Wxnrn6/pQB6Zr+vS3unK32d
fsEsSTJdAYYhXUsApznHHt9az1EWp3Fmj3sd0kjIoO8eeu+UEkje2D8v8PY9q4dLu9kaOJppGt1A
AjaRvLVSRwfQetemeENC0HUtHtb17b/TslmIuW3qQxAPBGPbigCb+1b3R9W1OztIIZLK3bzm85ym
xSqszA855JJGM8981XbTdK8Sa/pepXNs4F9aSO0YdsbkKgHIx2J9O1bWn6PaSX2qqxuiFuFUYu5R
x5adfm5696qXOlaZp/iHT4TNLbwG1nxuvJFwd0fAJbjqeKAOqiijhiWKJFSNBhVUYAHtT6oWdhax
stxb3FxKMHBa6eRT+BJFX6ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAzfEGf+Ee1DHXyHxn6U2S21ea2eJrmx2uhU/wCjuOCMf36PEjFfDOpsDgi2c5/A1j6D4w06
Swhj1DUYUuRHudpZUAyWIxx3wB+YoAj8OaZq2k3Oo2q3tvcsrR7pJo2BPy8Dg9hV7W/7W/s5fMNl
t8+H7ofOfMXH61HZeItFXVtSkbVbII7R7WMygNhO3NGteItFm09Vi1WzdhcQttWZScCRSeM+lAFi
+vtVtJIYX+wM02/A2OQAqliTz7AfjXIX2j61r95p1xZPDFG1usm63PlpBu6jGSc4UDjr+FbPirWd
DutKeWPUpWmjwEWzuSjNkjPHQ8c8+lMtdf0uLwrpdrFqcUMpECTBZNrqMjfz24zQB5PeRiG5eEgh
4yVcnuQfpUCsyHKkg+orrPEtnY38/n6Zq41C53FWjMbea4ycYwMNgd/aucvNOvdPZVvLSa3LDK+Y
hXP0zQAqj7QJpmkj/dKp2yMdzcgYXH+cVZgt47y0Ek1wkLRgRJvcLnOT0AyR70ulCF8Q/Z7x5pyY
x5LqFcY4XBH97BPPT861b/w81pYXgl0++jlh8oxjMRCluDuI5OTnGPbNAEujotro90ls8bTXflxH
/SELq6yDlU4JHIrsvD+n61o93LM1rc3cTpsxLOgKsD1HtXnNhZ6zZ3duYrW6t97o294GII3Lg4xy
M7eK9r0cXi2EAvW3TlWaRhGEUknPTqOtAGVp1/qK3uqEaPIxa5BYCdPlPlpx1/zmqerK+qeILCO/
0BplW3mKwvLGcndH83XHH9a1tLmLazrNvvKt9oDDCH/nmg5OMfrT5gR4usctu/0O4I46fPFQAtvd
3VrBHBDoE8USDaqJJFgD/vqtgcgcY9qKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAyvEzBfDOosTtAgbn04rnNHurLxFqFqiXU/m2yLMx2j95sY4+cndj5+mBXQ+
KE8zwzqEfPzxFePfiudHgC4iLSw63L5uzYgaIBcY6HB9e9AHS2EaHV9VJRf9ZGOn+wKbr6xpp0bb
VGLmDnH/AE1WqtjbakdR1MDUIgwlTcTbZz+7X/a4qv4ms9Uk0fy/7RiJeeFVxBswTIuDncaANTVo
5WudPdT+7SVy4C5/5ZPg57en41W0i2iufC+nxXMAmie1hXa2COnXn0qxPa6kLeQnU14U8C2Hp9aw
ftN5pHhPS72XUo0tlSEMDa7tqkDng5OPagDE8bWdjbXFqFtbiKK2hLk2u0eUxcDLY45GfxxWHatc
6ppWpWwe/n0eDLW7OodoyvIz/dGOuOKlv7vSNdv3afVorKL5lMkdky+d83VgD17807SNNm0601W8
t7iE2E9vLDHcSqQJAGwAOchjjpQBow+HonmvbS7LytHMrZXTnbGUByCjDA5PHtmodOnsfD9xdQ3W
kR3QwrESwOrqMkBgHDdeO46iuqutF1ma7trgJZSYG19ksseVCkDJByRnHryfrWNdeGNV1LVr2ONr
SIRiMOhuZmBOMggnmgC3NoVnZ6CbpYo5JXMGHkg3bf3g/hHPIIyAcnpWmreHra3Ak01nIUs8n9nS
Y3d+CueT0AqC9XWbHSLO2uV093EkEQkN04aRg69tnc9fxrXDa+rAiy0/gY/4/JPb/Y9qAKGgafpN
/wD2hMtpbSJ9pwpEeAPkTIA7c5qnNounaf4vhadXliuYJSsQiLLGQ0YAAUcd+T61c0ubWxcanss7
Bibs783LjB2J0+TkYxTZpta/4SizJsbLzfsc21RdNgjfHk52denagDorWxtrIMLaFYw33sd6sVDa
tcPArXUUcU3OVjkLgfiQP5VNQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFAGV4kYJ4evWPQJngZ7imnxJpwXrc5x3tJf/iaf4i/5AF19F/9CFag6UAcro/iO0Mt5Lde
dHLK0bMgtpDg+WuR931zRr+t6XeadHAXlZWuYdym3kGVEik/w+lbOn/8hHVf+u6/+i0qPxAcWdt/
1+Qf+jFoAxp28LfZ5dsMm7acfuZuuPpXOa5qMd74IsNOgNxLcOkQYGNlRAq/TBr0e9lAsZyASdjD
HQ9DzVfR4SdH01/McBbaL5QePu/5/KgDwma2keVN8HkqzZKKhBVc4yQa7GyXR4tFubSW/M4t45zb
b5QE3F2AIA7kAHknqK72S2iuvFFwsoJAsEXhiMhnfI4+lc62m3Oi+D5NNuNOaRFSUtNC6sq5fK5z
hjjA7UAb9vc6NA6yR62jMo4WTUNynjuC1VNE1SJdR1KTUNQsPOcxn91MNgG08Anrj1rpfKjxzGv5
VkWsUX9sayfLT5fKxwOPkoANUvbK9sxFaXtjLcLJHIiG4UbirhsZ5xnFP03xFY31mJZbi2t5N7o0
TTqcFWK9eMg4yKravDYWs0MhZVurqe3RQzdQsinCj8SeKv6fpwtmvBLHGyyXDSRnaPukA8/jmgCl
o+o2IuNUJvLf5rwkfvV5GxOetE15bN4tsmFxCVFlOCQ4xnfFTdL021nvr6eSFSYryQKu0Y5VBzx7
UXGn2Z8WWSG0gKmynJXyxgnfF7fWgDfVldQykEHoQaWmxxpFGscaKiKMBVGAPwp1ABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAZPiVd/h67XJGQoyDgj5hUw0+5AAG
r3v/AHzEf/ZKh8Stt8PXbYJwFOB1PzCj+3PXS9T/APAf/wCvQBXsLG4N9qQGqXYInUEhYuf3adfk
qPW7K4W2tc6pdvm7hGGWLj5xzwlLZ+ID9ovVmstQYLN8m2zOVBVTg478/lio9W1UXUNusWn6kSlz
FI2bNx8qsCe1AF690+4FlcOdVuyREx5SL0P+xUemWN5/ZNns1WdR5CYXyoyB8o4+7TL7XoW0+5UW
WpDMTDJs3AHB9qNP160i061jeC/UrEi/8eUpHQei0AVYbbUD4gnxqbmT7JAWYQL0LvxjAxjk0eIr
TV10icDUVlgZGEwMCqQMHGMe+BUdvrFmNduWbz8fZbdebWXqGcnjbn8TVnW9dsJdFukVrjcU4zay
gfmVoASws9eto5LeTU8RROUhd7bzGdMDBJDZ7kfhUFpb6s2pauYtWt9wMe5za5DfuxjHz8Vpr4o0
hpTEtxIZBnKC3kyMYzxt9x+dZmn67p51TVJYpZHimMbKwhf+5/u0ALrGnatJDayzajZyNHcwmM/Y
yCrF1Gf9ZWhqU2q6fpa3H2yz3RH9/I1s20qWAyBv4wOTyag1XVre5s4YbOVHuWuIdiyKygkSKeeP
anW3iO3lhWLUrd4HZnilJiYwggkYLEAcgZ/GgCjoLaxdR3s9pf6a8b3bnf8AZ3IY4HI+fpTGbX38
XwxM9mkiWkuyVrdtjrujzgCQnOcdcd+tT6Rquladf31il3ZJas/nwskgAG7gpjsRtz9DVoX1pe+L
bE2tzFNts5w3lsDj5o+tAG3AJhAguGjabHzmNSFJ9gSakoooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigDK8Sf8gG4+qf+hrWrWR4mG7QLhSSAzRg4OD99am/saD/n
5v8A/wADJf8A4qgBdO/4/tU/6+V/9FR0ur3T2tmjRojyvNHHGH+7uLAAn6daoWGkxNd6kPtN6Nty
BxdPz+6Q8889ai1rS444rPFzenN5EPmuXP8AF9etAF+e21e4gkge5sgkilGYQtkAjHHzVDrXh9dV
0+2hiupLa4tGV4J1PKkDHI71JdaYIrWaRL6/DIjMP9IJ5A96i0/T5rjTLWd9UvxJJCjtiRepAJ6r
QBBo2l61ba1Le6ldQzCSARsY26kHK/LsGMZbuetaHiEZ0C9BzjyznBxVFLS6bW57P+178RR28cg5
jzlmYH+D/ZFM1vS500a6Y6tfuNn3H8vB9jhKAEttP1PS7y6e20+1uVeVmjmmvGEgUhcg5Qn+Ed+1
S+HllTUNUSW1itSjRKIoX3qo2cYOB/Kr0ulzyys41e/jB/gTy8D/AMczVJ9AvIftM9nrV4LqbBJk
WIqSBgZwnp6UAXtZ/wCPOH/r6g/9GrV88g4rnNV06/jtYi2t3Dj7TCAGhi6+YuDwvbrV7+zdV/6D
sv420f8AhQBleHtGRL6/eaK1ZYrwlDHGUZXAGOcnIwx4J/nWpdf8jXpv/Xtcfzjqjo93PZSalBJb
Xd44vGLTRxoATtXtuFaF1Yz6hNaX8FxJZTxI6BZIlc4YjORnr8o70AatFRwJJHAizS+bIB8z7du4
/TtUlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAZHidivh+cqp
cho8KDyf3i8c0n9ral/0Lt7+E8H/AMXTvEn/ACBX95Yf/Ri1rUAc1Y6rfrc6iV0G9YtcgkCWH5T5
aDB+f2z+NRazql68VmH0K9jxdxEZkhOSG6DD9TW1p3/H1qn/AF9f+0o6i137mnj/AKfof50AVrzW
bo2NwG0HUlzEwzmEgce0lN0zWJE0u0T+x9SIWFBuEaEH5RyPmrYvv+Qfc/8AXJv5Go9JOdGsT628
f/oIoAxINW/4qW8kOn34zawrt8nJHzSckA9Kl1nVlk0qZPsV8u4qMtbkD7wq7EMeKrr/AGrOI/k8
lP1840K7b+6m78jn+lAB/bMf/Pnfj/t1f/CmRa/azNIqQXpMbbHAtXO04BwePQitWsnShs1fWo/W
4R/ziQf0oAoeINQW50xVtrac3SzxNB51o4UPvGOWAA9Oo61Vs9Z12PWoYdVjMMBiZyqWRYvggcFH
fBGf85Fb2t/8eCf9fMH/AKNWprqwW5vbK63bXtXZh8udwKlSPbqD+FAGXpl/FbzagZYbxRLdGRD9
jl5Uqoz931BrXs76C/jaS3LlVYod8bJyOowwFWKzdG/497kel3N/6GaANKiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGSxRzJslRXXIOGGRkHI/Wn0UUANWNEL
lVClzuYgdTgDJ/ACkkhjm2+YitsYOuRnBHQ0+igBGUOpVgCpGCD3pI0SKNY41CooCqo6ADtTqKAI
xBELk3GweaUCFv8AZBJA/MmieCO5geCZQ8cilWU9wakooAOgqJLeKO4lnRMSS43tk844FS0UARzw
R3MYjlXcoZWxnHIII/UCpKKKACooLeO2V1iXAd2kPOeScmpaKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKAP/2Q==</Data>
</Thumbnail>
</Binary>
</metadata>
