<?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 Re: findAndReplaceWorkspacePaths for different ArcSDE connections in an mxd in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207311#M15926</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Rebecca,&lt;/P&gt;&lt;P&gt;Thanks for the heads up to post code with formatting.&lt;/P&gt;&lt;P&gt;I have figured it out each user has named the connection to the database differently and added if else statements to eliminate the unexpected error msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 11 Dec 2017 17:44:36 GMT</pubDate>
    <dc:creator>BPriyaK</dc:creator>
    <dc:date>2017-12-11T17:44:36Z</dc:date>
    <item>
      <title>findAndReplaceWorkspacePaths for different ArcSDE connections in an mxd</title>
      <link>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207307#M15922</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using the findAndReplaceWorkspacePaths for ArcSDE databases in mxd's in a series of folders to update the 3 teir connections to Direct connections. The command I am using is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;mxd.findAndReplaceWorkspacePaths(find_workspace_path=r"", replace_workspace_path=r"C:\Temp\arcsde_DIRECT.sde")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This works fine if I want to replace all the connections in the MXD.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have the situation though where I have multiple people make mods to the mxd's and have the following list of connections strings:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; C:\Documents and Settings\Fred\Application Data\ESRI\ArcCatalog\Direct_vector.sde&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; C:\Documents and Settings\Fred\Application Data\ESRI\ArcCatalog\Direct_raster.sde&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; C:\Documents and Settings\Johnathon\Application Data\ESRI\ArcCatalog\Direct_vector.sde&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; SERVER=production;INSTANCE=port:5152;USER=Johnathon;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Connections 1,3,4 are all the same database while 2 is a different database.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there a way I can wildcard search for the direct_vector.sde (1,3,4) connection without Explicitly stating the path? For example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; mxd.findAndReplaceWorkspacePaths(find_workspace_path=r"*\ArcCatalog\Direct_vector.sde", replace_workspace_path=r"C:\Temp\arcsde_DIRECT.sde")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and how can I use the findAndReplaceWorkspacePaths to update the 4th connection?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Gordon&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Jul 2011 00:56:09 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207307#M15922</guid>
      <dc:creator>GordonSumerling</dc:creator>
      <dc:date>2011-07-28T00:56:09Z</dc:date>
    </item>
    <item>
      <title>Re: findAndReplaceWorkspacePaths for different ArcSDE connections in an mxd</title>
      <link>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207308#M15923</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can use a wildcard to select the layers, for example by specify the database name.&amp;nbsp; Below is an example:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;lstMXDs = glob.glob(env.workspace + "\\" + "*.mxd")

for mxd in lstMXDs:
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd = mapping.MapDocument(mxd)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for df in mapping.ListDataFrames(mxd, ""):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lstLayers = mapping.ListLayers(mxd, "*", df)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for lyr in lstLayers:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if "vector" in lyr.dataSource:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print lyr.dataSource
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("arcsde_DIRECT.sde", "SDE_WORKSPACE", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfuly updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print lyr.dataSource
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr.replaceDataSource("RASTER.sde", "SDE_WORKSPACE", "")
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Successfully updated data sources"
&amp;nbsp;&amp;nbsp;&amp;nbsp; mxd.save()
del mxd&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using the wildcard "vector" to find all data sources in my VECTOR database and replacing the datasource to my SDE direct connection.&amp;nbsp; If the layer is not in my VECTOR database, I replace it with a new connection to my RASTER database.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:14:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207308#M15923</guid>
      <dc:creator>JakeSkinner</dc:creator>
      <dc:date>2021-12-11T10:14:36Z</dc:date>
    </item>
    <item>
      <title>Re: findAndReplaceWorkspacePaths for different ArcSDE connections in an mxd</title>
      <link>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207309#M15924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Im trying to solve a similar problem ..&lt;/P&gt;&lt;P&gt;We have moved from multiple sde databases to one single database&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying replace database connections in an existing mxd with&amp;nbsp; connection name rather than having paths based on users.&amp;nbsp;and then&amp;nbsp;replace the database connection to the new sde database connection.&lt;/P&gt;&lt;P&gt;I'm looking to accomplish this in a two step approach by using find and replace workspace paths first and replace Datasource later.&lt;/P&gt;&lt;P&gt;I have figured the later part but this is where I'm stuck and manually replacing the paths for each mxd using the set datasource option on arccatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;C:\Users\jdoe\AppData\Roaming\ESRI\Desktop10.2\ArcCatalog\gis.sde&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;C:\Users\&lt;/SPAN&gt;&lt;SPAN&gt;djohn&lt;/SPAN&gt;&lt;SPAN&gt;\AppData\Roaming\ESRI\Desktop10.2\ArcCatalog\&lt;/SPAN&gt;&lt;SPAN&gt;gis.sde&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;os
&lt;SPAN class="keyword token"&gt;from&lt;/SPAN&gt; arcpy &lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; env 
env&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;overwriteOutput &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token boolean"&gt;True&lt;/SPAN&gt; 
mxd &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mapping&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;MapDocument&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"CURRENT"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; lyr &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mapping&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ListLayers&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;mxd&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; lyr&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;supports&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"WORKSPACEPATH"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt; lyr&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;workspacePath
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;findAndReplaceWorkspacePath&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;lyr&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;workspacePath&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"Database Connections\\gis.sde"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"TRUE"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;print&lt;/SPAN&gt; lyr&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;dataSource‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;This is the error that i get&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;File "c:\program files (x86)\arcgis\desktop10.4\arcpy\arcpy\_mapping.py", line 696, in findAndReplaceWorkspacePath&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt; return convertArcObjectToPythonObject(self._arc_object.findAndReplaceWorkspacePath(*gp_fixargs((find_workspace_path, replace_workspace_path, validate), True)))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #ff0000;"&gt;ValueError: Layer: Unexpected error‍‍‍‍&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&lt;SPAN style="color: #000000;"&gt;Any direction on how to resolve this will be appreciated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000;"&gt;Thanks&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 10:14:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207309#M15924</guid>
      <dc:creator>BPriyaK</dc:creator>
      <dc:date>2021-12-11T10:14:38Z</dc:date>
    </item>
    <item>
      <title>Re: findAndReplaceWorkspacePaths for different ArcSDE connections in an mxd</title>
      <link>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207310#M15925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It would help if you reposted you code &lt;A href="https://community.esri.com/blogs/dan_patterson/2016/08/14/script-formatting?sr=search&amp;amp;searchId=147137e7-ef65-4684-ba98-d682e01df9b7&amp;amp;searchIndex=0"&gt;/blogs/dan_patterson/2016/08/14/script-formatting?sr=search&amp;amp;searchId=147137e7-ef65-4684-ba98-d682e01df9b7&amp;amp;searchIndex=0&lt;/A&gt;‌&amp;nbsp; so any indentation errors can be eliminated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;May be overkill, but I have a &lt;A href="https://community.esri.com/blogs/myAlaskaGIS/2015/08/31/python-addin-for-data-inventory-and-broken-link-repair?sr=search&amp;amp;searchId=0c2f92b4-77f3-459c-89c4-c71ea7e1e142&amp;amp;searchIndex=1"&gt;/blogs/myAlaskaGIS/2015/08/31/python-addin-for-data-inventory-and-broken-link-repair?sr=search&amp;amp;searchId=0c2f92b4-77f3-459c-89c4-c71ea7e1e142&amp;amp;searchIndex=1&lt;/A&gt;‌ which might help.&amp;nbsp; If the links aren't currently broken, just rename the .sde connection file to make them broken and see if it lists them.&amp;nbsp; Test on a copy of mxd's in a test folder first.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Dec 2017 22:17:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207310#M15925</guid>
      <dc:creator>RebeccaStrauch__GISP</dc:creator>
      <dc:date>2017-12-07T22:17:06Z</dc:date>
    </item>
    <item>
      <title>Re: findAndReplaceWorkspacePaths for different ArcSDE connections in an mxd</title>
      <link>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207311#M15926</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Rebecca,&lt;/P&gt;&lt;P&gt;Thanks for the heads up to post code with formatting.&lt;/P&gt;&lt;P&gt;I have figured it out each user has named the connection to the database differently and added if else statements to eliminate the unexpected error msg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 11 Dec 2017 17:44:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/findandreplaceworkspacepaths-for-different-arcsde/m-p/207311#M15926</guid>
      <dc:creator>BPriyaK</dc:creator>
      <dc:date>2017-12-11T17:44:36Z</dc:date>
    </item>
  </channel>
</rss>

