JoinData in JavaScript from Feature Layer in GPServer to SQL Table

361
0
10-05-2017 11:21 AM
MeleKoneya
Occasional Contributor III

I have a Geoprocessing Server that creates stops and routes from an input of point features.   The GP Server uses a Map Service to display the results.    I am able to get the stops added as a Feature Layer from the GP Server's map service and view attributes and add graphics from the stops.

What I would like to do is to join that Stops Feature Layer to a SQL table in a Map Service that has a Dynamic Workspace so that additional information on the stops can be viewed.

I followed an example from GitHub,  developer-support/joinDataSource_show_All_data_fromDataGrid.html at master · Esri/developer-support ...  but am not able to view the joined FeatureLayer's attributes.    It does not look like any features are added,  but it does look like the FeatureLayer is being created as I don't get any errors but something is not right because after loading the layer,  I am trying to view the attributes but it shows no graphics.

Am I not applying the JoinData properly?   Is it possible to join from my GP Server Feature Layer to a SQL Table from a dynamic workspace in another layer?

Thanks for any help solving this issue.

Mele

function showStopResults(results) {
//define the layer's data source from a table 
var rightTableSource = new LayerDataSource(); 
rightTableSource.dataSource = new TableDataSource({ 
workspaceId: "FireInspectWorkspaceID", 
dataSourceName: "FireInspect.dbo.viewMapScheduledInspections" 
}); 

//point to the joined Table related to specific FeatureLayer ID 
var leftTableSource = new LayerMapSource({ 
mapLayerId: 1 
}); 
//create a layerDataSource to storage on the fly "join" data 
var joinDataSource = new JoinDataSource({ 
joinType: "left-outer-join", 
leftTableKey: "Name", 
rightTableKey: "FireInspect.dbo.viewMapScheduledInspections.ID_String", 
leftTableSource: leftTableSource, 
rightTableSource: rightTableSource 
}); 

//query the feature layer with layerDataSource and list out all data in grid 
var layerDataSource = new LayerDataSource(); 
layerDataSource.dataSource = joinDataSource;
joinFeatureLayer = new FeatureLayer("http://vmascesri01:6080/arcgis/rest/services/Fire/FireInspections/MapServer/dynamicLayer", { 
mode: FeatureLayer.MODE_ONDEMAND, 
outFields: ["*"], 
source: layerDataSource, 
id: "datalayer" 
}); 

//This function works with an array of FindResult that the task returns




map.addLayer(joinFeatureLayer);
on(joinFeatureLayer, "load", function(evt)
{
alert('!');
} 
)
//create array of attributes
var items = arrayUtils.map(results, function (result) {
var graphic = result.feature;
graphic.setSymbol(marker);
map.graphics.add(graphic);
return result.feature.attributes;
});
}
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
Tags (1)
0 Kudos
0 Replies