mxd = arcpy.mapping.MapDocument(fullpath) DFList = arcpy.mapping.ListDataFrames(mxd) for df in DFList: lyrList = arcpy.mapping.ListLayers(mxd, "", df) for lyr in lyrList: if lyr.supports("DATASOURCE"): #print lyr.dataSource if lyr.dataSource == r"Database Connections\GIS_USER2PGIS.sde\SDE.Streets\SDE.LISStreetSegment": lyr.replaceDataSource(r"Database Connections\Test_Carta_LIS.sde", "SDE_WORKSPACE", "Carta.LIS.StreetSegment") lyr.name = "Carta.LIS.StreetSegment"
mxd = arcpy.mapping.MapDocument(fullpath) DFList = [] while arcpy.mapping.ListDataFrames(mxd): DFinsert = arcpy.mapping.ListDataFrames(mxd) DFList.append(DFinsert) lyrList = [] for df in DFList: lyrInsert = arcpy.mapping.ListLayers(mxd, "", df) lyrList.append(lyrInsert) for lyr in lyrList: if lyr.supports("DATASOURCE"): #print lyr.dataSource if lyr.dataSource == r"Database Connections\GIS_USER2PGIS.sde\SDE.Streets\SDE.LISStreetSegment": lyr.replaceDataSource(r"Database Connections\Test_Carta_LIS.sde", "SDE_WORKSPACE", "Carta.LIS.StreetSegment") lyr.name = "Carta.LIS.StreetSegment"
I don't know anything about ArcPy or SDE servers, but perhaps you are having difficulties in the way your are populating your lists and the code structure?
I might change your code to the following... but thats for python not ArcPy? Are they very different?:mxd = arcpy.mapping.MapDocument(fullpath) DFList = [] while arcpy.mapping.ListDataFrames(mxd): DFinsert = arcpy.mapping.ListDataFrames(mxd) DFList.append(DFinsert) lyrList = [] for df in DFList: lyrInsert = arcpy.mapping.ListLayers(mxd, "", df) lyrList.append(lyrInsert) for lyr in lyrList: if lyr.supports("DATASOURCE"): #print lyr.dataSource if lyr.dataSource == r"Database Connections\GIS_USER2PGIS.sde\SDE.Streets\SDE.LISStreetSegment": lyr.replaceDataSource(r"Database Connections\Test_Carta_LIS.sde", "SDE_WORKSPACE", "Carta.LIS.StreetSegment") lyr.name = "Carta.LIS.StreetSegment"
if lyr.dataSource == r"Database Connections\GIS_USER2PGIS.sde\SDE.Streets\SDE.LISStreetSegment": lyr.replaceDataSource(r"Database Connections\Test_Carta_LIS.sde", "SDE_WORKSPACE", "Carta.LIS.StreetSegment") lyr.name = "Carta.LIS.StreetSegment"
I'm not really struggling with having the code work except for the piece that saysif lyr.dataSource == r"Database Connections\GIS_USER2PGIS.sde\SDE.Streets\SDE.LISStreetSegment": lyr.replaceDataSource(r"Database Connections\Test_Carta_LIS.sde", "SDE_WORKSPACE", "Carta.LIS.StreetSegment") lyr.name = "Carta.LIS.StreetSegment"
import arcpy mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd") for lyr in arcpy.mapping.ListBrokenDataSources(mxd): if lyr.supports("DATASOURCE"): if lyr.dataSource == r"C:\Project\Data\Transportation.gdb\MajorRoads": lyr.replaceDataSource(r"C:\Project\Data\Transportation.gdb", "FILEGDB_WORKSPACE", "Highways") lyr.name = "Highways" mxd.saveACopy(r"C:\Project\Project2.mxd") del mxd
"C:\Users\wbm_admin\AppData\Roaming\ESRI\ArcCatalog\GIS_USER2PGIS.sde\SDE.Streets\SDE.LISStreetSegment"