Select to view content in your preferred language

Not able to query related record

1227
4
09-02-2013 01:53 AM
DeepikaJain
Occasional Contributor
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
Frequent Contributor
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
Occasional Contributor
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
Frequent Contributor
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
Frequent Contributor
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