Line split not retaining field of type GUID

650
2
08-25-2020 06:09 AM
VishApte
Esri Contributor

I have a geodatabase feature class "WaterPipe" that has a column "AssetID" of type Guid. But this is not a "globalid" field. This column "AssetID" is primarily used to establish a foreign key to third party Enterprise Asset Mgmt system. When asset is created in GIS, AssetID is set to same value as GlobalID using Attribute Rule on Create as below.

if (IsEmpty($feature.AssetID)) {
   if (IsEmpty($feature.GLOBALID))
  {
    return Guid();
  }
  else return $feature.GLOBALID;
}
else return $feature.AssetID;

The requirement is when a line is split in ArcGIS Pro, the two sections of the line need to retain the original "AssetID" value. However, this is not happening. One piece has original AssetID and second piece has AssetID reset to GLOBALID. Only way I can think of this happening is due to Attribute Rule above finds $feature.AssetID empty when execution begins. If I disable attribute rule, "AssetID" field is empty on second piece. For any Text or Integer field, the value is retained on both pieces after the split but not the "AssetID" field. Is it a restriction on GUID column type? 

Cheers,

Vish   

0 Kudos
2 Replies
HusseinNasser2
Esri Contributor

Sounds like a bug, on split (assuming update-insert split policy) the original feature geometry is updated and a new feature is inserted with all the original feature attributes. This also respects fields with domain with specific domain policy.  The fact that the new feature assetId is empty means that this is not the case.

I just tried your repro case on fileGDB and it seems to be working.

Which platform is this? Geodatabase/Pro/Server all release version so we can identify and repro

Thanks! 

0 Kudos
VishApte
Esri Contributor

Hussein Nasser Thanks for testing and video. I was testing in a UN water model with SQL Server 2019 at the backend and ArcGIS Enterprise 10.7.1. I will create a small video like yours showing the problem. 

I changed the AssetID data type to text instead of GUID and it worked.

On a different issue, I need to add attribute rule that prevents edit of some attributes by UN edit users. These attributes are maintained by Asset Management System through integration. I was wondering if there is a global variable in arcade that denotes current username which I can use to set-up a constraint?

Cheers,

Vish