AnsweredAssumed Answered

related table query - relatedQuery.objectIds

Question asked by SJCity on Feb 23, 2016

Hi all!

I'm trying to query a related table, but I can't figure out what I am missing.

I have a feature layer (buildings) with a related table (contacts for the building), related through the UNIQUE_ID field (buildings) and the Bldg_ID3 field (contacts table) . When the building is clicked, the query is looking for a match in the OBJECTID field in the contacts table instead of a match in the Bldg_ID3 field (foreign key)


For example: clicked building has UNIQUE_ID = 254 --> query results in contact with OBJECTID = 254 instead of Bldg_ID3 = 254.


I double checked the relationship class in our SDE, and it's fine, it also works in a webbuilder map and ArcMap, but it doesn't work correctly in my javascript app.

What am I missing here??

Any help would be greatly appreciated.

map.on("click", function (event) {      
        queryMapClick = new Query();
        queryMapClick.geometry = pointToExtent(map, event.mapPoint, 10);
        var deferred = buildingLayer.selectFeatures(queryMapClick, FeatureLayer.SELECTION_NEW);
        deferred.addCallback(function(result) {
            console.log("result ", result[0]);
            if (result.length > 0) {                
                dom.byId("bID").innerHTML = result[0].attributes.UNIQUE_ID;
                dom.byId("bDescription").innerHTML = result[0].attributes.DESCRIPTIO;
                dom.byId("bAddress").innerHTML = result[0].attributes.ADDRESS;
                var relatedQuery = new RelationshipQuery();
                relatedQuery.outFields = ["Bldg_ID3","Feature","Name","Phone1","Phone2","Email","int1"];
                relatedQuery.relationshipId = 0;
                relatedQuery.objectIds = [result[0].attributes.UNIQUE_ID];
                // coded attempt.. query won't find any records
                // relatedQuery.setDefinitionExpression = "Bldg_ID3 in (10)";
                console.log("relatedQuery ", relatedQuery);
                buildingLayer.queryRelatedFeatures(relatedQuery, function(relatedRecords) {                 
                    console.log("relatedRecords ", relatedRecords);
    }); // end map.on