I am struggling with trying to use a Map Service that is created by Geoprocessing Service for it output to join to a table in another service.
My map service created with routing results has a stops layer and the map service supports dynamiclayers. Another map service has a dynamic workspace with dynamiclayers enabled. I am trying to join from the map service with the Route Stops to the Map Service with the Workspace.
I cannot add a dynamic workspace to the Geoprocessing Service map service in ArcCatalog or Manager so I am wondering if what I am attempting to do is even possible. The documentation on doing this is not very informative.
When trying to create my dynamiclayer I get the
Unable to create table for 'leftTableSource' / 'rightTableSource' dynamic dataLayer with 'id': -1. error message.
Below is how I am trying to create my dynamiclayer in ArcGIS JavaScript and what is being passed to ArcGIS Server.
Thanks for any assistance. I am at a dead end.
Mele
<SPAN class="keyword token">function</SPAN> <SPAN class="token function">addJoin</SPAN><SPAN class="punctuation token">(</SPAN>evt<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">//define the layer's data source from a table </SPAN>
<SPAN class="keyword token">var</SPAN> rightTableSource <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">LayerDataSource</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
rightTableSource<SPAN class="punctuation token">.</SPAN>dataSource <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">TableDataSource</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">{</SPAN>
workspaceId<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"FireInspectWorkspaceID"</SPAN><SPAN class="punctuation token">,</SPAN>
dataSourceName<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"FireInspect.dbo.viewMapScheduledInspections"</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//point to the joined Table related to specific FeatureLayer ID </SPAN>
<SPAN class="keyword token">var</SPAN> leftTableSource <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">LayerMapSource</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">{</SPAN>
mapLayerId<SPAN class="punctuation token">:</SPAN> <SPAN class="number token">1</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//create a layerDataSource to storage on the fly "join" data </SPAN>
<SPAN class="keyword token">var</SPAN> joinDataSource <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">JoinDataSource</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">{</SPAN>
joinType<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"left-outer-join"</SPAN><SPAN class="punctuation token">,</SPAN>
leftTableKey<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Name"</SPAN><SPAN class="punctuation token">,</SPAN>
rightTableKey<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"FireInspect.dbo.viewMapScheduledInspections.ID_STRING"</SPAN><SPAN class="punctuation token">,</SPAN>
leftTableSource<SPAN class="punctuation token">:</SPAN> leftTableSource<SPAN class="punctuation token">,</SPAN>
rightTableSource<SPAN class="punctuation token">:</SPAN> rightTableSource
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">//query the feature layer with layerDataSource and list out all data in grid </SPAN>
<SPAN class="keyword token">var</SPAN> layerDataSource <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">LayerDataSource</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
layerDataSource<SPAN class="punctuation token">.</SPAN>dataSource <SPAN class="operator token">=</SPAN> joinDataSource<SPAN class="punctuation token">;</SPAN>
joinFeatureLayer <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">FeatureLayer</SPAN><SPAN class="punctuation token">(</SPAN>gpResultLayer<SPAN class="punctuation token">.</SPAN>url <SPAN class="operator token">+</SPAN> <SPAN class="string token">"/dynamicLayer"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>
mode<SPAN class="punctuation token">:</SPAN> FeatureLayer<SPAN class="punctuation token">.</SPAN>MODE_ONDEMAND<SPAN class="punctuation token">,</SPAN>
outFields<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">"*"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
source<SPAN class="punctuation token">:</SPAN> layerDataSource<SPAN class="punctuation token">,</SPAN>
id<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"datalayer"</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
map<SPAN class="punctuation token">.</SPAN><SPAN class="token function">addLayer</SPAN><SPAN class="punctuation token">(</SPAN>joinFeatureLayer<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="token function">on</SPAN><SPAN class="punctuation token">(</SPAN>joinFeatureLayer<SPAN class="punctuation token">,</SPAN> <SPAN class="string token">"load"</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN>evt<SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="keyword token">var</SPAN> query <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">Query</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
query<SPAN class="punctuation token">.</SPAN>where <SPAN class="operator token">=</SPAN> <SPAN class="string token">"1=1"</SPAN><SPAN class="punctuation token">;</SPAN>
query<SPAN class="punctuation token">.</SPAN>outFields <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="string token">"*"</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN>
joinFeatureLayer<SPAN class="punctuation token">.</SPAN><SPAN class="token function">selectFeatures</SPAN><SPAN class="punctuation token">(</SPAN>query<SPAN class="punctuation token">,</SPAN> FeatureLayer<SPAN class="punctuation token">.</SPAN>SELECTION_NEW<SPAN class="punctuation token">,</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN>results<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">{</SPAN>
console<SPAN class="punctuation token">.</SPAN><SPAN class="token function">log</SPAN><SPAN class="punctuation token">(</SPAN>results<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">)</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"source"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"type"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"dataLayer"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"dataSource"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"type"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"joinTable"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"leftTableSource"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"type"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"mapLayer"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"mapLayerId"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="number token">1</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"rightTableSource"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"type"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"dataLayer"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"dataSource"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="punctuation token">{</SPAN><SPAN class="string token">"type"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"table"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"workspaceId"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"FireInspectWorkspaceID"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"dataSourceName"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"FireInspect.dbo.viewMapScheduledInspections"</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"leftTableKey"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"Name"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"rightTableKey"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"FireInspect.dbo.viewMapScheduledInspections.ID_STRING"</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">"joinType"</SPAN><SPAN class="punctuation token">:</SPAN><SPAN class="string token">"esriLeftOuterJoin"</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>