<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic replaceDataSource error in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/replacedatasource-error/m-p/689840#M22872</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have a python script that replaces layers in an mxd file. It checks for the existence of the SDE layer and if it exists, writes it into the mxd file. If it doesn't exist, it writes a different SDE layer into the mxd file. Everything works until I use the arcpy.Exists statement.&amp;nbsp; If I remove this statement, the replaceDataSource command works. If I keep the statement, it errors out with the extremely helpful error message "Value Error: Layer: Unexpected error". I'm at my wit's end with this one. Here's my code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
import sys, string, os, datetime, arcpy
from time import *

today = datetime.date.today()
wrkspc = r"Database Connections\Connection to HABSOS fluke pg.sde"

#&amp;nbsp; update sea surface temperature project file
print "Updating Sea Surface Temperature Project"
mxd = arcpy.mapping.MapDocument(r"d:\ArcServer_Maps\ModelRuns_AMSEAS\AMSEAS_WaterTemp_Hindcasts.mxd")
new_mxd = r"d:\ArcServer_Maps\ModelRuns_AMSEAS\updates\AMSEAS_WaterTemp_Hindcasts.mxd"
if os.path.isfile(new_mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp; os.remove(new_mxd)

i = 1
while i &amp;lt; 3:
&amp;nbsp;&amp;nbsp;&amp;nbsp; previous = today - datetime.timedelta(i)
&amp;nbsp;&amp;nbsp;&amp;nbsp; newDate = previous.isoformat()
&amp;nbsp;&amp;nbsp;&amp;nbsp; dateString = newDate.replace('-','')
&amp;nbsp;&amp;nbsp;&amp;nbsp; AMSEAS_SST = wrkspc + "\AMSEAS_SST_" + dateString
&amp;nbsp;&amp;nbsp;&amp;nbsp; sdeLayer = "AMSEAS_SST_" + dateString
&amp;nbsp;&amp;nbsp;&amp;nbsp; templateLayer = "AMSEAS_SST_Template"
&amp;nbsp;&amp;nbsp;&amp;nbsp; nameString = "Day " + str(i) + " - " + dateString
&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrID = i - 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(AMSEAS_SST):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Found SST layer %s .. Will update project" % AMSEAS_SST
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr = arcpy.mapping.ListLayers(mxd)[lyrID]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(wrkspc, "SDE_WORKSPACE", sdeLayer)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.name = nameString
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del lyr
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Didn't find SST layer %s ... Will update project with SST template" % AMSEAS_SST
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr = arcpy.mapping.ListLayers(mxd)[lyrID]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(wrkspc, "SDE_WORKSPACE", templateLayer)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.name = nameString
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del lyr
&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1

mxd.saveACopy(new_mxd)
del mxd, new_mxd
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the error I get when I leave the arcpy.Exists call:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Traceback (most recent call last):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "D:\ArcServer_Maps\ModelRuns_AMSEAS\test.py", line 28, in &amp;lt;module&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(wrkspc, "SDE_WORKSPACE", sdeLayer)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "D:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy\arcpy\utils.py", line 181, in fn_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "D:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy\arcpy\_mapping.py", line 585, in replaceDataSource&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._arc_object.replaceDataSource(*gp_fixargs((workspace_path, workspace_type, dataset_name, validate), True)))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ValueError: Layer: Unexpected error&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please help!!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 01 Apr 2013 15:29:46 GMT</pubDate>
    <dc:creator>BetsySchenck-Gardner</dc:creator>
    <dc:date>2013-04-01T15:29:46Z</dc:date>
    <item>
      <title>replaceDataSource error</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/replacedatasource-error/m-p/689840#M22872</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have a python script that replaces layers in an mxd file. It checks for the existence of the SDE layer and if it exists, writes it into the mxd file. If it doesn't exist, it writes a different SDE layer into the mxd file. Everything works until I use the arcpy.Exists statement.&amp;nbsp; If I remove this statement, the replaceDataSource command works. If I keep the statement, it errors out with the extremely helpful error message "Value Error: Layer: Unexpected error". I'm at my wit's end with this one. Here's my code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
import sys, string, os, datetime, arcpy
from time import *

today = datetime.date.today()
wrkspc = r"Database Connections\Connection to HABSOS fluke pg.sde"

#&amp;nbsp; update sea surface temperature project file
print "Updating Sea Surface Temperature Project"
mxd = arcpy.mapping.MapDocument(r"d:\ArcServer_Maps\ModelRuns_AMSEAS\AMSEAS_WaterTemp_Hindcasts.mxd")
new_mxd = r"d:\ArcServer_Maps\ModelRuns_AMSEAS\updates\AMSEAS_WaterTemp_Hindcasts.mxd"
if os.path.isfile(new_mxd):
&amp;nbsp;&amp;nbsp;&amp;nbsp; os.remove(new_mxd)

i = 1
while i &amp;lt; 3:
&amp;nbsp;&amp;nbsp;&amp;nbsp; previous = today - datetime.timedelta(i)
&amp;nbsp;&amp;nbsp;&amp;nbsp; newDate = previous.isoformat()
&amp;nbsp;&amp;nbsp;&amp;nbsp; dateString = newDate.replace('-','')
&amp;nbsp;&amp;nbsp;&amp;nbsp; AMSEAS_SST = wrkspc + "\AMSEAS_SST_" + dateString
&amp;nbsp;&amp;nbsp;&amp;nbsp; sdeLayer = "AMSEAS_SST_" + dateString
&amp;nbsp;&amp;nbsp;&amp;nbsp; templateLayer = "AMSEAS_SST_Template"
&amp;nbsp;&amp;nbsp;&amp;nbsp; nameString = "Day " + str(i) + " - " + dateString
&amp;nbsp;&amp;nbsp;&amp;nbsp; lyrID = i - 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(AMSEAS_SST):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Found SST layer %s .. Will update project" % AMSEAS_SST
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr = arcpy.mapping.ListLayers(mxd)[lyrID]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(wrkspc, "SDE_WORKSPACE", sdeLayer)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.name = nameString
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del lyr
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Didn't find SST layer %s ... Will update project with SST template" % AMSEAS_SST
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr = arcpy.mapping.ListLayers(mxd)[lyrID]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(wrkspc, "SDE_WORKSPACE", templateLayer)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.name = nameString
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del lyr
&amp;nbsp;&amp;nbsp;&amp;nbsp; i += 1

mxd.saveACopy(new_mxd)
del mxd, new_mxd
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the error I get when I leave the arcpy.Exists call:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Traceback (most recent call last):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "D:\ArcServer_Maps\ModelRuns_AMSEAS\test.py", line 28, in &amp;lt;module&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource(wrkspc, "SDE_WORKSPACE", sdeLayer)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "D:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy\arcpy\utils.py", line 181, in fn_&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return fn(*args, **kw)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; File "D:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy\arcpy\_mapping.py", line 585, in replaceDataSource&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return convertArcObjectToPythonObject(self._arc_object.replaceDataSource(*gp_fixargs((workspace_path, workspace_type, dataset_name, validate), True)))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ValueError: Layer: Unexpected error&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please help!!!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Apr 2013 15:29:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/replacedatasource-error/m-p/689840#M22872</guid>
      <dc:creator>BetsySchenck-Gardner</dc:creator>
      <dc:date>2013-04-01T15:29:46Z</dc:date>
    </item>
  </channel>
</rss>

