Español

Error: Espacio de trabajo ya en modo de transacción

Mensaje de error

La ejecución de un script de Python para editar datos no versionados almacenados en una geodatabase corporativa falla y devuelve el siguiente error de tiempo de ejecución:

Error: 
Espacio de trabajo ya en modo de transacción
The image of the Python error

Causa

Existen varias causas posibles para el error:

  • Nivel de licencia insuficiente para editar la geodatabase corporativa.
  • La función InsertCursor() se utiliza dentro de un bucle, como se presenta en la muestra de código que aparece a continuación.
with arcpy.da.InsertCursor(PatchesFC, icFields) as iCursor:
            iCursor.insertRow(rowTuple)
  • Los parámetros with_undo y multiuser_mode de la función startEditing() son incorrectos. Para obtener más información, consulte el siguiente documento de la ayuda web: ArcGIS Desktop: Editor.

Solución o solución alternativa

Utilice una de las siguientes soluciones para resolver el error:

  • La edición de datos versionados solo está disponible con la licencia Standard o Advanced. La edición está deshabilitada con la licencia Basic. Aumente su nivel de licencia para permitir la edición de datos versionados.
  • Declare la función InsertCursor() como un objeto en lugar de incluirla en un bucle, como se muestra en el fragmento de código que aparece a continuación.
iCursor = arcpy.da.InsertCursor(PatchesFC, icFields)
  • Cambie los parámetros with_undo y multiuser_mode de la función startEditing() a False. Con los parámetros configurados como False, se otorga al usuario actual el control total de los datos de edición. El siguiente fragmento de código demuestra cómo cambiar los parámetros a False.
edit.startEditing(False, False)
Nota:
En la función startEditing(), el primer parámetro es el parámetro with_undo y el segundo es el parámetro multiuser_mode.

Por ejemplo:
startEditing({with_undo}, {multiuser_mode})

Información relacionada

Última modificación: 5/22/2019

Id. de artículo: 000019111

Software: ArcMap 10.5.1, 10.5