Not able to query related record

1097
4
09-02-2013 01:53 AM
DeepikaJain
New Contributor III
Dear All

I want to query related record of a feature during identify using ArcGIS Javascript API 3.5
This is how I am working on it:
var relatedQuery = new esri.tasks.RelationshipQuery();
          relatedQuery.outFields = ["*"];
          relatedQuery.relationshipId = 1;
          relatedQuery.objectIds  = 2102;
        var layerinfo = baseLayer.layerInfos;
       
    //   map.layerIds
        var layer = layerinfo[4];
        
            layer.queryRelatedFeatures(relatedQuery, function(relatedRecords) {
            alert("related");
          

})

but it gives error that "the object doesnot support this property or method". I have multiple mapservices in my map.
Please help!

Thanks
Deepika
0 Kudos
4 Replies
VinayBansal
Occasional Contributor II
Dear All


var relatedQuery = new esri.tasks.RelationshipQuery();
          relatedQuery.outFields = ["*"];
          relatedQuery.relationshipId = 1;
          relatedQuery.objectIds  = 2102;
        var layerinfo = baseLayer.layerInfos;
       
    //   map.layerIds
        var layer = layerinfo[4];
        
            layer.queryRelatedFeatures(relatedQuery, function(relatedRecords) {
            alert("related");
          

})


Thanks
Deepika

related query obectIds property is an array....
relatedQuery.objectIds = [2102];

Also make sure that related table is added in the map service you are referring.....
0 Kudos
DeepikaJain
New Contributor III
Hi

Thanls for the help, I tired the workaround but still I get the same error. Is it that the task works only for feature service layers and not for map service layers. The related data is there in the same mxd which is published as a service and if I query through REST endpoint, I do get the results.
0 Kudos
VinayBansal
Occasional Contributor II
Hi

Thanls for the help, I tired the workaround but still I get the same error. Is it that the task works only for feature service layers and not for map service layers. The related data is there in the same mxd which is published as a service and if I query through REST endpoint, I do get the results.


Yes queryRelatedFeatures works for FeatureLayer.

                   var relatedQuery = new esri.tasks.RelationshipQuery();
                    relatedQuery.objectIds = [2012];
                    relatedQuery.outFields = ["*"];
                    relatedQuery.relationshipId = 1;                    
                    relatedQuery.returnGeometry = false;
                    var myFeatureLayer = new esri.layers.FeatureLayer(<<mapServiceURL>> + "/" + <<layerId>>, {
                        mode: esri.layers.FeatureLayer.MODE_SELECTION
                    });
myFeatureLayer .queryRelatedFeatures(relatedQuery, function (relatedRecords) {
//Code after records are found
});
0 Kudos
JasonZou
Occasional Contributor III
var layerinfo = baseLayer.layerInfos;

// map.layerIds
var layer = layerinfo[4];

layer.queryRelatedFeatures(relatedQuery, function(relatedRecords) {


layerInfo cannot be used to query related records. Two options:

  1. Use QueryTask.executeRelationshipQuery(parameters,callback?,errback?)

  2. Create a feature layer for layerinfo[4], and then queryRelatedFeatures(relQuery,callback?,errback?). Sample.

0 Kudos