Esri / local-government-desktop-addins

A series of ArcGIS Desktop Add-ins used in the ArcGIS for Local Government editing maps.
Apache License 2.0
61 stars 56 forks source link

Attribute Assistant is unable to apply rules and update parcel fabric records when GlobalID field is present #71

Closed pavezina closed 8 years ago

pavezina commented 8 years ago

At line 2548 of the “AttributeAssistantEditorExtension.cs”

… if (pFLyr != null) //make sure there's at least one valid fabric feature layer { int iObjClassID = inObject.Class.ObjectClassID; ITable InMemTable = AAState._fabricInMemTablesLookUp[iObjClassID]; IRowBuffer pRowBuff = InMemTable.CreateRowBuffer(); IFields pIncomingFlds = inObject.Fields; for (int i = 0; i < pIncomingFlds.FieldCount; i++) { IField pFld = pIncomingFlds.get_Field(i); 2548: if (pFld.Type == esriFieldType.esriFieldTypeOID || pFld.Type == esriFieldType.esriFieldTypeGeometry) continue; object val = inObject.get_Value(i); pRowBuff.set_Value(i, val); } …

I think it’s missing the check for the GlobalID. If this is not there, you get an error message that “Field is not Editable”.

if (pFLyr != null) //make sure there's at least one valid fabric feature layer { int iObjClassID = inObject.Class.ObjectClassID; ITable InMemTable = AAState._fabricInMemTablesLookUp[iObjClassID]; IRowBuffer pRowBuff = InMemTable.CreateRowBuffer(); IFields pIncomingFlds = inObject.Fields; for (int i = 0; i < pIncomingFlds.FieldCount; i++) { IField pFld = pIncomingFlds.get_Field(i); 2548: if (pFld.Type == esriFieldType.esriFieldTypeOID || pFld.Type == esriFieldType.esriFieldTypeGeometry || pFld.Type == esriFieldType.esriFieldTypeGlobalID) continue; object val = inObject.get_Value(i); pRowBuff.set_Value(i, val); } …

MikeMillerGIS commented 8 years ago

Thanks, I added it and it will be included in the next release

MikeMillerGIS commented 8 years ago

Will be delivered in the 10.4 release