Español

Cómo: Exportar adjuntos por lotes desde una clase de entidad en ArcGIS Pro

Resumen

ArcGIS Pro proporciona la capacidad de exportar adjuntos desde una clase de entidad guardando el archivo adjunto en un sistema de archivos, tal y como se describe en el siguiente documento: Guardar un archivo adjunto. Sin embargo, esta capacidad solo puede guardar adjuntos de una única entidad a la vez. No existe ninguna herramienta de geoprocesamiento que permita a los usuarios exportar ni guardar todos los adjuntos que se adjunten a todas las entidades en un solo proceso.

Las instrucciones proporcionadas describen un método para exportar por lotes los adjuntos de una clase de entidad mediante la creación de una herramienta de script para realizar la tarea.

Procedimiento

Para exportar por lotes los adjuntos de una clase de entidad en ArcGIS Pro, cree una herramienta de script a partir de un script de Python que permita exportar los adjuntos en un lote desde una clase de entidad, según el flujo de trabajo proporcionado a continuación, y ejecute la herramienta de script creada proporcionando los parámetros requeridos por la herramienta.

Nota:
El script utilizado para exportar los adjuntos requiere que la tabla de entrada sea la tabla de adjuntos estándar creada cuando se habilitan los adjuntos en una clase de entidad. Se debe a que el script se basa en los campos DATA, ATT_NAME y ATTACHMENTID almacenados en esta tabla. En el formato de nombre típico de la tabla de adjuntos se debe incorporar _ATTACH al final del nombre de la tabla.
  1. Copie y pegue el siguiente script en Notepad y guárdelo como ExportAttachments.py.
Nota:
El siguiente script recorre en iteración toda la tabla de adjuntos de una sola clase de entidad y copia todos los adjuntos (guardados como BLOB u objetos binarios grandes) en un archivo.
import arcpy
from arcpy import da
import os

inTable = arcpy.GetParameterAsText(0)
fileLocation = arcpy.GetParameterAsText(1)

with da.SearchCursor(inTable, ['DATA', 'ATT_NAME', 'ATTACHMENTID']) as cursor:
for item in cursor:
attachment = item[0]
filenum = "ATT" + str(item[2]) + "_"
filename = filenum + str(item[1])
open(fileLocation + os.sep + filename, 'wb').write(attachment.tobytes())
del item
del filenum
del filename
del attachment
  1. En ArcGIS Pro, haga clic con el botón derecho en una caja de herramientas del panel Catálogo y haga clic en Nuevo > Script
    An image of the steps to create a new script tool in a toolbox.
  2. En la página de propiedades de la herramienta de script, establezca las propiedades de la herramienta de script como se muestra a continuación.
    1. En la sección General, escriba el Nombre y la Etiqueta de la herramienta de script. Por ejemplo, escriba ExportAttachments como el Nombre y Export Attachments como la Etiqueta. La etiqueta es el nombre de visualización para la herramienta de script, como aparece en el panel Geoprocesamiento.
    2. Haga clic en el icono Examinar An image of the Browse icon. junto al campo Archivo de scripty vaya a la ubicación del archivo de script guardado en el paso 1, seleccione el script y haga clic en Aceptar.
    3. Active la casilla de verificación Almacenar herramienta con ruta relativa.
      An image of the General section of the script tool property page.
    4. En la sección Parámetros, escriba Attachments Table en la primera fila de la columna Etiqueta y establezca el Tipo de datos como Tabla. Este es el primer parámetro de la herramienta de script. Este parámetro define la tabla que contiene los adjuntos a exportar.
    5. En la segunda fila, agregue un segundo parámetro con el nombre de Etiqueta como Output Location y establezca el Tipo de datos como Carpeta. Este parámetro define la carpeta donde ubicar los adjuntos exportados.
      An image of the Parameters section of the script tool property page.
    6. Haga clic en Aceptar. Se agrega una nueva herramienta de script a la caja de herramientas.
      An image of the created Export Attachments script tool.
  3. Haga doble clic en la herramienta de script creada para abrir la herramienta. Configure los parámetros de la herramienta como se muestra a continuación para exportar adjuntos en lote.
    1. En el cuadro de diálogo de la herramienta, busque la tabla de adjuntos que contiene los adjuntos a exportar en el parámetro Tabla de adjuntos.
    2. En el parámetro Ubicación de salida, seleccione una carpeta para guardar los adjuntos exportados y haga clic en Aceptar.
    3. Haga clic en Ejecutar.
      An image of the Export Attachments tool dialog box.
      Los adjuntos se exportan correctamente por lotes y se localizan en la carpeta definida en el parámetro Ubicación de salida.
      An image of the list of the exported attachments.

Información relacionada