AnsweredAssumed Answered

ArcGIS Pro SDK OpenRelationshipClass does not return results

Question asked by ThomasHorner on Aug 27, 2018
Latest reply on Nov 1, 2018 by RRuh-esristaff

I have been struggling with this issue for hours now and am wondering if anyone else has encountered this.

I have a feature class (ADDRESS_MANAGER.GIS_INF_ADDRESS_P) and a table (ADDRESS_MANAGER.GIS_TBL_ADDRESSCARD_B).

Using ArcCatalog, I have verified the IDs of the feature class is 987 and the address card table is 981. I have verified the relationship exists from the feature class to the address card table (Relationship = ADDRESS_MANAGER.AddressCardHasAddress / Label = AddressCard / Origin=ADDRESS_MANAGER.GIS_INF_ADDRESS_P).

However, no relationship classes are returned when I run this code:

var sourceId = sourceTable.GetID().ToString(); // returns "987"var destId = destTable.GetID().ToString(); // returns "981"IReadOnlyList<RelationshipClass> relationshipClasses = geodb.OpenRelationshipClass(sourceId, destId);

I have verified the geodb object does indeed point to the geodatabase that holds both of these layers -- geodb is set directly from the feature class. Both layer IDs are correct, and there is definitely a relationship class between them. I am porting old ArcObject code over that did something similar, and I cannot figure out how to actually get this RelationshipClass anymore without hardcoding a reference to it.

This is ran in QueuedTask.Run per the documentation. Additionally, when I try to use geodb.OpenDataset<RelationshipClass> with any sort of relationship name (either the qualified full name, full name, or alias) I get a ArcGIS.Core.Data.GeodatabaseCatalogDatasetException: The item was not found exception. It doesn't seem to matter if I set up geodb by opening the appropriate SDE file, or if I set it from the feature class (the geodb is an enterprise geodabatase -- Oracle)

This is in ArcGIS Pro 2.2 - using C# / .NET 4.6.2

Outcomes