HI communauty geonet, and users,
I try to update the metadatas (summary, details, Authors, ...) of many mxds in a folder and when i execute my python script all is ok (no error).
When i have for exemple 3 mxds in a folder, and when i open the propriety of the first mxd in the list the information is ok.
But when i open the second mxd the information in the case is null. And when Open Mapdocument the information is ok for this second mxd.
My problem is for my second script when a push the mxds in arcgis server. On the service map the information is ok for the first and not for the other. My code is this one (sorry for my english):
# -*- coding: cp1252 -*-
#import modules
import arcpy, sys, os, string
import xml.dom.minidom as DOM
import codecs
#Read parameters from dialog
filedoss = arcpy.GetParameterAsText(0)
u = arcpy.GetParameterAsText(1)
Summary = u.encode('cp1252', 'strict')
i = arcpy.GetParameterAsText(2)
Description = i.encode('cp1252', 'strict')
o = arcpy.GetParameterAsText(3)
Author = o.encode('cp1252', 'strict')
Credits = o.encode('cp1252', 'strict')
fileanc = arcpy.GetParameterAsText(4)
MapPath= []
MapFolder = os.listdir(filedoss)
arcpy.env.workspace = filedoss
for file in MapFolder:
fileExt = os.path.splitext(file)[1]
if fileExt == ".mxd":
MapPath = os.path.join(filedoss, file)
arcpy.AddMessage (MapPath)
#set map document to change
mxd = arcpy.mapping.MapDocument(MapPath)
base = os.path.basename(filedoss).upper()
#Nouveau nom
file_name_temp = "NOM_" + base + "_" + file
#arcpy.AddMessage ("MXD a sauvegarder :" + file_name)
arcpy.AddMessage ("MXD sauvegarde :" + file_name_temp)
# Test existence de la sauvegarde
if os.path.exists(file_name_temp):
arcpy.AddMessage("Fichier mxd existe")
try :
# essaye de le supprimer
os.remove(file_name_temp)
except :
arcpy.AddError ("Fichier non sauvegarde : impossible de le supprimer")
sys.exit()
#change Title
mxd.title = file_name_temp
#change Summary
mxd.summary = Summary
#change Description
mxd.description = Description
#change Author
mxd.author = Author
#change credits
mxd.credits = Credits
#Update map document tags
#Generate unique, sorted list of layer names
layers = arcpy.mapping.ListLayers(mxd)
layerList = []
for lyr in layers:
if not lyr.isGroupLayer:
layerList.append(lyr.name)
uniqueList = list(set(layerList))
uniqueList.sort()
#Update map document tags
tagList = ",".join(uniqueList)
mxd.tags = tagList
for lyr in layers:
if lyr.supports("DATASOURCE"):
lyr.replaceDataSource(filedoss, 'SHAPEFILE_WORKSPACE', lyr.datasetName, False)
#set relative paths property
mxd.relativePaths = True
#update Thumbnail
mxd.deleteThumbnail()
mxd.makeThumbnail()
#save map document change
#SAuvegarde sous nouveau
mxd.saveACopy(file_name_temp)
arcpy.AddMessage ("Fichier sauvegarde")
arcpy.RefreshTOC()
arcpy.RefreshActiveView()
arcpy.RefreshCatalog(file_name_temp)
del mxd