CÓMO
Las herramientas de geodatabase agregan metadatos acerca de su ejecución en una geodatabase. Los metadatos incluyen el nombre de la herramienta, su ubicación y los parámetros utilizados cuando se activa el registro de geoprocesamiento. Los gestores y administradores de SIG a veces tienen que eliminar el historial de geoprocesamiento de una clase de entidad o los metadatos del espacio de trabajo.
La siguiente secuencia de comandos describe cómo lograr este objetivo con una secuencia de comandos y un flujo de trabajo de Python para eliminar el historial de geodatabase de un espacio de trabajo de geodatabase corporativa.
Eliminación del historial de geoprocesamiento de las clases de entidad
En las instrucciones proporcionadas se describe cómo hacerlo mediante una secuencia de comandos de Python. La siguiente secuencia de comandos automatiza este proceso para todas las clases de entidad de una geodatabase, incluidas las clases de entidad almacenadas en un dataset de entidades.
Nota: Ejecute el procedimiento en la versión de 32 bits de Python.
Ejecute la secuencia de comandos de Python incluida después de actualizar las variables:
import arcpy import os, string ''' Update the following five variables before running the script.''' version = "10.5" myWorkspace = r"C:\XML_out\dbinstance_testgdb.sde" gp_history_xslt = r"C:\Program Files (x86)\ArcGIS\Desktop{}\Metadata\Stylesheets\gpTools\remove geoprocessing history.xslt".format(version) output_dir = r"C:\XML_out" db_type = "SQL" #Set this to either "SQL" or "Oracle" if your db has spatial views. Si no, se puede fijar a "". def RemoveHistory(myWorkspace, gp_history_xslt, output_dir): ##Removes GP History for feature dataset stored feature classes, and feature classes in the File Geodatabase. arcpy.env.workspace = myWorkspace for fds in arcpy.ListDatasets('','feature') + ['']: for fc in arcpy.ListFeatureClasses('','',fds): data_path = os.path.join(myWorkspace, fds, fc) if isNotSpatialView(myWorkspace, fc): removeAll(data_path, fc, gp_history_xslt, output_dir) def isNotSpatialView(myWorkspace, fc): ##Determines if the item is a spatial view and if so returns True to listFcsInGDB() if db_type <> "": desc = arcpy.Describe(fc) fcName = desc.name #Connect to the GDB egdb_conn = arcpy.ArcSDESQLExecute(myWorkspace) #Execute SQL against the view table for the specified RDBMS if db_type == "SQL": db, schema, tableName = fcName.split(".") sql = r"IF EXISTS(select * FROM sys.views where name = '{0}') SELECT 1 ELSE SELECT 0".format(tableName) elif db_type == "Oracle": schema, tableName = fcName.split(".") sql = r"SELECT count(*) from dual where exists (select * from user_views where view_name = '{0}')".format(tableName) egdb_return = egdb_conn.execute(sql) if egdb_return == 0: return True else: return False else: return True else: return True def removeAll(data_path, feature, gp_history_xslt, output_dir): ##Remove all GP History metadata from a feature class. arcpy.ClearWorkspaceCache_management() name_xml = os.path.join(output_dir, str(feature)) + ".xml" arcpy.XSLTransform_conversion(data_path, gp_history_xslt, name_xml) print "Completed xml coversion on {0}".format(feature) arcpy.MetadataImporter_conversion(name_xml, data_path) print "Imported XML on {0}".format(feature) def makeDirectory(output_dir): ##Creates directory to store the xml tables of converted metadata. If the ##directory already exists, the files will be created there. if not arcpy.Exists(output_dir): os.mkdir(output_dir) if __name__ == "__main__": makeDirectory(output_dir) RemoveHistory(myWorkspace, gp_history_xslt, output_dir) print "Done Done"
Eliminar historial de geoprocesamiento de un espacio de trabajo de geodatabase corporativa
C:\Archivos de programa (x86)\ArcGIS\Desktop10.5\Metadata\Stylesheets\gpTools\remove Geoprocessing history.xslt
Obtener ayuda de expertos en ArcGIS
Descargar la aplicación de soporte de Esri