CÓMO

Eliminar el historial de geodatabase de una geodatabase en ArcMap mediante Python

Last Published: August 17, 2021

Resumen

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.

Procedimiento

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

  1. Conéctese a una geodatabase corporativa como administrador de la geodatabase.
  2. Ejecute la herramienta de geoprocesamiento Transformación XSLT para generar un .xml a partir de la base de datos con el historial de geoprocesamiento eliminado.
    • Metadatos de origen: la conexión de base de datos
    • XSLT de entrada: la herramienta de Esri ubicada en:
C:\Archivos de programa (x86)\ArcGIS\Desktop10.5\Metadata\Stylesheets\gpTools\remove Geoprocessing history.xslt
  • Archivo de salida: proporcione una ubicación para guardar el archivo .xml de salida
Ventana de la herramienta Transformación XSLT con los parámetros adecuados rellenados.
  1. Ejecute la herramienta de geoprocesamiento Importador de metadatos para importar el archivo .xml de salida a la geodatabase corporativa.
    • Metadatos de origen: la salida .xml generada en el paso 2
    • Metadatos de destino: la conexión de base de datos
Ventana de la herramienta Importador de metadatos con los parámetros apropiados rellenados

Id. de artículo:000011751

Obtener ayuda de expertos en ArcGIS

Contactar con soporte técnico

Descargar la aplicación de soporte de Esri

Ir a las opciones de descarga

Información relacionada

Descubrir más sobre este tema