Job

Resumen

El objeto Job ofrece acceso a propiedades y métodos para interactuar con un trabajo de Workflow Manager (Classic).

Debate

Un trabajo es una unidad individual de trabajo que se lleva a cabo dentro de una organización. Puede tener a una o más personas trabajando en la unidad. Puede trabajar con un dataset individual, varios datasets o ningún dato en absoluto. Un trabajo se crea en base a una plantilla conocida como Tipo de trabajo, que se configura con las propiedades y componentes deseados (como, por ejemplo, flujo de trabajo y mapas) que se utilizará en el trabajo.

Propiedades

PropiedadExplicaciónTipo de datos
assignedTo
(Lectura y escritura)

El nombre de usuario o grupo al que está asignado el trabajo.

String
assignedType
(Lectura y escritura)

El tipo de asignación del trabajo. A continuación hay una lista de cadenas válidas que utilizar al configurar la asignación de trabajo. Si se utiliza una cadena de caracteres no válida, el trabajo se establecerá de forma predeterminada como no asignado.

  • UserUn usuario en la base de datos de flujo de trabajo
  • GroupUn grupo en la base de datos de flujo de trabajo
  • UnassignedSin asignación de trabajo
String
createdBy
(Lectura y escritura)

El nombre de usuario del usuario que creó el trabajo.

String
createdDate
(Sólo lectura)

Devuelve la fecha en que se creó el trabajo.

DateTime
currentSteps
(Sólo lectura)

Devuelve una lista de Id. de pasos que representa lo pasos activos en el flujo de trabajo.

List
description
(Lectura y escritura)

La descripción del trabajo.

String
dueDate
(Lectura y escritura)

La fecha en que el trabajo estaba programado para finalizar.

DateTime
endDate
(Sólo lectura)

Devuelve la fecha en que finalizó el trabajo.

DateTime
hasAOI
(Sólo lectura)

Devuelve True cuando el trabajo tiene un área de interés definida.

Heredado:

Este método ya no se usa. Use hasLOI en su lugar.

Boolean
hasLOI
(Sólo lectura)

Devuelve True cuando el trabajo tiene definida una ubicación de interés (punto o polígono).

Boolean
ID
(Sólo lectura)

Devuelve el Id. de trabajo de .

Integer
jobTypeID
(Sólo lectura)

Obtiene el Id. de tipo de trabajo.

Integer
name
(Lectura y escritura)

El nombre del trabajo.

String
notes
(Lectura y escritura)

Las notas asociadas con el trabajo para compartir información con otros usuarios.

String
owner
(Lectura y escritura)

El nombre de usuario del usuario que es propietario del trabajo.

String
parent
(Lectura y escritura)

El Id. del trabajo principal del trabajo actual.

Integer
parentVersion
(Lectura y escritura)

El nombre de la versión principal del trabajo.

String
percentComplete
(Sólo lectura)

Devuelve el porcentaje de finalización del trabajo.

Double
priority
(Lectura y escritura)

La prioridad del trabajo.

Integer
startDate
(Lectura y escritura)

La fecha en que estaba programado el inicio del trabajo.

DateTime
startedDate
(Sólo lectura)

Devuelve la fecha en que se inició el trabajo.

DateTime
status
(Lectura y escritura)

El nombre de estado del trabajo. Los estados disponibles para utilizar son los definidos como tipos de estado en la base de datos de Workflow Manager (clásico).

String
versionExists
(Sólo lectura)

Devuelve True cuando existe una versión para un trabajo.

Boolean
versionName
(Lectura y escritura)

El nombre de la versión del trabajo.

String

Descripción general del método

MétodoExplicación
addAttachment (storage_type, source_location)

Agrega un adjunto al trabajo.

addDependency (depends_on_job_id, {held_on_type}, {held_on_value}, {dependent_on_type}, {dependent_on_value})

Agrega una dependencia a un trabajo para restringir el progreso del trabajo después de cierto punto hasta que otros trabajos hayan pasado de un punto concreto.

addHold (hold_type_id, {comment})

Agrega una retención a un trabajo para suspender su actividad.

deleteAttachment (attachment_id)

Elimina un adjunto asociado con el trabajo.

deleteJobMap ()

Elimina el mapa del trabajo asociado con el trabajo.

executeStep ({step_id}, {callback})

Ejecuta un paso del flujo de trabajo.

getAttachments ()

Devuelve todos los adjuntos asociados con el trabajo como una lista de objetos Attachment.

getExtendedPropertyTable (tableName)

Devuelve una única tabla de propiedades extendidas basada en el nombre completo de la tabla.

getHolds ()

Devuelve las retenciones asociadas con el trabajo como una lista de objetos Hold.

getPendingDays (consider_hold)

Devuelve el número de días que el trabajo ha estado pendiente. Como opción, también puede considerar las retenciones y restarlas del número de días que el trabajo ha estado pendiente.

getWorkflow (jobID)

Devuelve el Workflow de un trabajo utilizando el Id. del trabajo.

listExtendedProperties ()

Muestra una lista de los nombres completos de todas las tablas de propiedades extendidas y vinculadas asociadas con el trabajo.

logActivity (activity_type, {message})

Registra una actividad en el historial del trabajo para describir una acción en el trabajo.

markStepAsComplete ({step_id}, {callback})

Marca un paso de flujo de trabajo como completado.

releaseHold (hold, {comment})

Libera la retención asociada con un trabajo y la marca como inactiva.

retrieveAttachment (attachment_id, destination_location)

Recupera los adjuntos de archivos asociados con el trabajo en una ubicación del disco.

retrieveJobMap (destination_location)

Recupera el mapa del trabajo en una ubicación del disco.

save ()

Guarda los cambios realizados en el trabajo en la base de datos de Workflow Manager (clásico).

sendNotification (notification_type)

Envía una notificación basada en un evento del ciclo de vida del trabajo.

setAOI (aoi)

Define el polígono de área de interés (AOI) del trabajo.

Heredado:

Este método ya no se usa. Use setLOI en su lugar.

setDataWorkspace (data_workspace_id)

Define el espacio de trabajo de los datos del trabajo.

setLOI (loi)

Define el lugar de interés (LOI) del trabajo. El LOI puede ser un punto (POI) o un polígono (AOI).

setStepAsCurrent (step_id)

Define un paso del flujo de trabajo como el paso activo actual.

storeJobMap (source_location)

Guarda un mapa en la base de datos de Workflow Manager (Classic) y lo asocia con el trabajo como el mapa del trabajo que se va a utilizar para la edición.

Métodos

addAttachment (storage_type, source_location)
ParámetroExplicaciónTipo de datos
storage_type

El tipo de adjunto que se va a agregar.

  • EMBEDDEDEl archivo se almacena en la base de datos de Workflow Manager (Classic).
  • LINKEDEl vínculo a la ruta del archivo se almacena en la base de datos de Workflow Manager (Classic).
  • URLEl vínculo de la dirección URL se almacena en la base de datos.
String
source_location

La ruta del archivo o dirección URL del adjunto que se va a agregar.

String

Los adjuntos permiten agregar información al trabajo. Se pueden agregar los siguientes tipos de adjuntos a un trabajo:

  • Integrado: el archivo se almacena en la base de datos de Workflow Manager (Classic).
  • Vinculado: el vínculo a la ruta del archivo se almacena en la base de datos de Workflow Manager (Classic).
  • Dirección URL: el vínculo de la dirección URL se almacena en la base de datos.

La secuencia de comandos siguiente agrega un adjunto vinculado, integrado y de dirección URL al trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Add a linked file attachment
job.addAttachment('LINKED',r'c:\test\Requirements.doc')

#Add an embedded file attachment
job.addAttachment('EMBEDDED',r'c:\test\Field_Observation.png')

#Add url attachment
job.addAttachment('URL','http://www.esri.com')
addDependency (depends_on_job_id, {held_on_type}, {held_on_value}, {dependent_on_type}, {dependent_on_value})
ParámetroExplicaciónTipo de datos
depends_on_job_id

El Id. del trabajo del que dependerá el trabajo actual.

Integer
held_on_type

Indica si el trabajo actual (al que se va a agregar la dependencia) se retendrá en un paso o un estado. Cuando el trabajo se retiene en un paso, el paso no se puede ejecutar hasta que se libera la dependencia. Cuando el trabajo se retiene en un estado, el estado del trabajo no puede cambiar hasta que se libera la dependencia. La dependencia se libera cuando el otro trabajo llega al paso o al estado definido en los criterios de la dependencia.

(El valor predeterminado es STEP)

String
held_on_value

El valor del paso o el estado en el que se retendrá el trabajo actual. Este valor puede ser el Id. de un paso como un entero o un estado de trabajo como una cadena de caracteres.

Variant
dependent_on_type

Indica si el trabajo actual (al que se va a agregar la dependencia) será dependiente de un paso o un estado del otro trabajo. Cuando el trabajo dependiente se retiene en un paso o estado del otro trabajo, el trabajo dependiente no puede progresar hasta que el otro trabajo llega al paso o al estado definido en la dependencia. Una vez que el otro trabajo llega al paso o al estado definido en los criterios de la dependencia, esta se libera y el trabajo dependiente puede progresar.

(El valor predeterminado es STATUS)

String
dependent_on_value

El valor del paso o el estado del otro trabajo del que dependerá el trabajo actual. Este valor puede ser el Id. de un paso como un entero o un estado de trabajo como una cadena de caracteres.

(El valor predeterminado es CLOSED)

Variant

Las dependencias de trabajos permiten modelar las relaciones entre trabajos y restringir el progreso de un trabajo hasta que otro trabajo haya llegado a un punto concreto. Las restricciones se pueden aplicar en las siguientes partes de un trabajo: Estado o Paso.

Cuando el trabajo que está restringiendo el flujo de trabajo de otro llega al punto definido en la dependencia, el trabajo restringido se libera automáticamente y puede avanzar.

La siguiente secuencia de comandos agrega la dependencia predeterminada, un paso de trabajo a una dependencia de estado y un estado de trabajo a una dependencia de paso en el trabajo actual.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Add a dependency to job 99999 that holds it at the current step, until the status of job 55555 is Closed
job.addDependency(55555)

#Add a dependency to job 99999 that holds it at step 5, until the status of job 88888 is Working
job.addDependency(88888,'STEP',5,'STATUS','WORKING')

#Add a dependency to job 99999 that holds it at status QAQC, until step 8 of job 77777 is active.
job.addDependency(77777,'STATUS','QAQC','STEP',8)
addHold (hold_type_id, {comment})
ParámetroExplicaciónTipo de datos
hold_type_id

El Id. de la plantilla del tipo de retención que se va a utilizar para crear la retención del trabajo.

Integer
comment

El comentario que se va a almacenar como motivo para agregar la retención.

String

Las retenciones suspenden la actividad del trabajo durante una cantidad indefinida de tiempo hasta que se liberan. Estos son algunos de los motivos por los que puede aplicarse una retención a un trabajo:

  • Asignación insuficiente de fondos
  • Problemas técnicos
  • Datos no disponibles
  • Falta de recursos

La secuencia de comandos siguiente obtiene los tipos de retención de la base de datos de Workflow Manager (Classic) y agrega una retención del presupuesto a un trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Get a list of Hold types in Workflow database
hold_types = conn.config.getHoldTypes()

#Access a Workflow Job 
job = conn.getJob(99999)

#Find the id of Budget Hold hold type and add a hold on the job
for hold in hold_types:
     if(hold.name=='Budget Hold'):
         job.addHold(hold.id,comment="Insufficient funds for digitization.")
deleteAttachment (attachment_id)
ParámetroExplicaciónTipo de datos
attachment_id

El Id. del adjunto que se va a eliminar.

Integer

Los adjuntos permiten agregar información al trabajo.

La secuencia de comandos siguiente elimina un adjunto del trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Delete attachment with id = 1
job.deleteAttachment(1)
deleteJobMap ()

El mapa del trabajo tiene las capas utilizadas para la edición necesarias como parte del trabajo.

La secuencia de comandos siguiente elimina el mapa de trabajo de un trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Delete the job map of the job
job.deleteJobMap()
executeStep ({step_id}, {callback})
ParámetroExplicaciónTipo de datos
step_id

El Id. del paso que se va a ejecutar. El Id. del paso es opcional; si no se indica un Id. de paso, se ejecutará el paso actual.

Integer
callback

El argumento de devolución de llamada transfiere una función que solicita al usuario una respuesta según la entrada del tipo de paso. Cuando se ejecuta un paso de pregunta, por ejemplo, la devolución de llamada adopta las posibles opciones de respuesta al paso y permite al usuario elegir el paso siguiente. También se utiliza cuando no es posible determinar el siguiente paso del flujo de trabajo y el usuario puede seleccionar la ruta a seguir.

Function
Valor de retorno
Tipo de datosExplicación
WorkflowExecutionResult

Devuelve un objeto WorkflowExecutionResult, que almacena el código de retorno del paso.

Proporciona una forma de ejecutar un paso del flujo de trabajo.

La secuencia de comandos siguiente ejecuta un paso del flujo de trabajo y proporciona un ejemplo de función de devolución de llamada que se puede utilizar durante la ejecución.

import arcpy, sys, traceback

#Define the callback response function. In this case it will prompt the user using the console to respond.
def callback(question, responses):

    # Print out the expected responses
    for resp in responses:
        print("[%i] %s" % (resp[1], resp[0]))
		
    # Prompt the user to respond
    val = int(input("%s - %s: " % (question[1], question[0])))
	
    # Return their response. Currently only returning the value, but could also return a note (for questions) and the name of the response
    return (val, "", "")

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Get a Job for Execution
job = conn.getJob(77601)

try:
	#Execute the current Step in the workflow
	result = job.executeStep(callback=callback)
    
	print ("Executing the first step returned %i" % result.returnCode)
	
	#Run the next Step in the workflow
        result = job.executeStep(callback=callback) 
    
	#Mark the step as complete
	job.markStepAsComplete(callback=callback) 

#Raised when a step in the workflow encounters an execution error	
except wmx.WorkflowExecutionStepError as e:
    print ("Step failed to execute:")
    print("-"*60)
    traceback.print_exc()
	
#Raised when a workflow encounters an execution error
except wmx.WorkflowExecutionError as f:
    print ("Workflow failed to execute:")
    print("-"*60)
    traceback.print_exc()
getAttachments ()
Valor de retorno
Tipo de datosExplicación
Attachment

Los adjuntos asociados con el trabajo se devuelven como una lista de objetos Attachment.

Los adjuntos permiten agregar información al trabajo. Se pueden agregar los siguientes tipos de adjuntos a un trabajo:

  • Integrado: el archivo se almacena en la base de datos de Workflow Manager (Classic).
  • Vinculado: el vínculo a la ruta del archivo se almacena en la base de datos de Workflow Manager (Classic).
  • Dirección URL: el vínculo de la dirección URL se almacena en la base de datos.

La secuencia de comandos siguiente obtiene los adjuntos asociados con el trabajo e imprime los nombres de los adjuntos vinculados.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Get the list attachments associated with the job
attachments = job.getAttachments()

#Print the names of Linked file attachments associated with the job
for attach in attachments:
     if(attach.type=='Linked'):
         print(attach.name)
getExtendedPropertyTable (tableName)
ParámetroExplicaciónTipo de datos
tableName

El nombre completo de la tabla de la tabla de propiedades extendida que se va a devolver.

String
Valor de retorno
Tipo de datosExplicación
ExtendedProperty

Devuelve la tabla de propiedades extendidas como el objeto ExtendedProperty.

La información específica del negocio almacenada como parte del trabajo a medida que las propiedades extendidas se devuelven como el objeto ExtendedProperty.

La secuencia de comandos siguiente obtiene una tabla de propiedades extendidas asociada con el trabajo e imprime el nombre de las celdas junto con el valor.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job with extended properties
job = conn.getJob(99999)

#Get the extended properties table associated with the job
prop_table = job.getExtendedPropertyTable('wmx.extra_properties')

#Iterate over extended properties and print the cell name with values
for (name,value) in prop_table:
    print("Cell {0} = {1}" .format(name,value.data))
getHolds ()
Valor de retorno
Tipo de datosExplicación
Hold

Las retenciones del trabajo devueltas como una lista de objetos Hold.

Las retenciones suspenden la actividad del trabajo durante una cantidad indefinida de tiempo hasta que se liberan. Estos son algunos de los motivos por los que puede aplicarse una retención a un trabajo:

  • Asignación insuficiente de fondos
  • Problemas técnicos
  • Datos no disponibles
  • Falta de recursos
La información sobre una Hold nunca se elimina del sistema y se puede consultar.

En el ejemplo siguiente se imprimen los nombres de las retenciones activas del trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Print the Active Holds on the job
jobHolds = job.getHolds()
for hold in jobHolds:
        if(hold.active==True):
            print("Active Hold = {0}" .format(hold.type))
getPendingDays (consider_hold)
ParámetroExplicaciónTipo de datos
consider_hold

Marcar para determinar si se deben considerar las retenciones al calcular el número de días pendientes.

Boolean
Valor de retorno
Tipo de datosExplicación
Integer

Devuelve el número de días que el trabajo ha estado pendiente.

Los días pendientes hace referencia al número de días que se lleva trabajando en el trabajo o el número de días que el trabajo ha estado pendiente antes de completarlo. La fecha de inicio utilizada para el cálculo es la Fecha de inicio si se definió o la Fecha de creación en caso contrario. La fecha de finalización del cálculo es la fecha actual o la fecha de finalización si el trabajo está cerrado.

La secuencia de comandos siguiente devuelve el número de días pendientes, tanto considerando como no considerando las retenciones en el cálculo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job
job = conn.getJob(99999)

#Get pending days for job while considering days on hold
pendingwithholds = job.getPendingDays(True)
print("The number of days pending for job when considering days on hold: " + str(pendingwithholds))

#Get pending days for job while ignoring days on hold 
pendingwithoutholds = job.getPendingDays(False)
print("The number of days pending for job when ignoring days on hold: " + str(pendingwithholds))
getWorkflow (jobID)
ParámetroExplicaciónTipo de datos
jobID

El Id. del trabajo.

Integer
Valor de retorno
Tipo de datosExplicación
Object

Devuelve el flujo de trabajo como un objeto Workflow.

Ofrece una forma sencilla de recuperar el flujo de trabajo de un trabajo.

Obtiene el flujo de trabajo de un trabajo de la base de datos de Workflow Manager (clásico).

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Job
job = conn.getJob(99999)

#Access a the job's workflow
workflow = job.getWorkflow()

#Print the name of the workflow
print(workflow.name)
listExtendedProperties ()
Valor de retorno
Tipo de datosExplicación
String

Muestra una lista de los nombres completos de todas las tablas de propiedades extendidas y vinculadas asociadas con el trabajo.

Los nombres de las tablas que almacenan información específica del negocio con el trabajo de modo que se puedan recuperar las propiedades extendidas y vinculadas.

La secuencia de comandos siguiente muestra una lista de los nombres completos de todas las tablas de propiedades extendidas y vinculadas asociadas con el trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpywmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job with extended properties
job = conn.getJob(99999)

#List all the extended property tables and linked property tables associated with the job
job.listExtendedProperties()
logActivity (activity_type, {message})
ParámetroExplicaciónTipo de datos
activity_type

El Id. o el nombre de un ActivityType.

String
message

El mensaje personalizado que se va a incorporar al mensaje existente en el ActivityType.

String

El historial del trabajo contiene un registro de todo lo que ha ocurrido durante la vida del trabajo. Cada uno de los elementos en el registro tienen marca de tiempo con la hora de entrada y están marcados con el usuario actual en ese momento. Un mensaje también se almacena junto con el registro, explicando que sucedió en ese punto en el tiempo.

En el ejemplo siguiente se registra una actividad personalizada con un mensaje para un trabajo existente.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Change the assignment of the job to Editors group
job.assignedType='Group'
job.assignedTo='Editors'

job.save()

#Log an activity for the reassignment of the job
job.logActivity('AssignJob','Job assigned to Editors group.')
markStepAsComplete ({step_id}, {callback})
ParámetroExplicaciónTipo de datos
step_id

El Id. del paso que se va a marcar como completado. El Id. del paso es opcional; si no se indica un Id. de paso, se ejecutará el paso actual.

Integer
callback

El argumento de devolución de llamada transfiere una función que solicita al usuario una respuesta según la entrada del tipo de paso. Cuando se marca un paso de pregunta como completado, por ejemplo, la devolución de llamada adopta las posibles opciones de respuesta al paso y permite al usuario elegir el paso siguiente. También se utiliza cuando no es posible determinar el siguiente paso del flujo de trabajo y el usuario puede seleccionar la ruta a seguir.

Function

Proporciona una forma de marcar un paso como completado.

La secuencia de comandos siguiente marca un paso del flujo de trabajo como completado y proporciona un ejemplo de función de devolución de llamada que se puede utilizar durante la ejecución.

import arcpy, sys, traceback

#Define the callback response function. In this case it will prompt the user using the console to respond.
def callback(question, responses):

    # Print out the expected responses
    for resp in responses:
        print("[%i] %s" % (resp[1], resp[0]))
		
    # Prompt the user to respond
    val = int(input("%s - %s: " % (question[1], question[0])))
	
    # Return their response. Currently only returning the value, but could also return a note (for questions) and the name of the response
    return (val, "", "")

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Get a Job for Execution
job = conn.getJob(77601)

try:
	#Execute the current Step in the workflow
	result = job.executeStep(callback=callback)
    
	print ("Executing the first step returned %i" % result.returnCode)
	
	#Run the next Step in the workflow
        result = job.executeStep(callback=callback) 
    
	#Mark the step as complete
	job.markStepAsComplete(callback=callback) 

#Raised when a step in the workflow encounters an execution error	
except wmx.WorkflowExecutionStepError as e:
    print ("Step failed to execute:")
    print("-"*60)
    traceback.print_exc()
	
#Raised when a workflow encounters an execution error
except wmx.WorkflowExecutionError as f:
    print ("Workflow failed to execute:")
    print("-"*60)
    traceback.print_exc()
releaseHold (hold, {comment})
ParámetroExplicaciónTipo de datos
hold

La retención que se va a liberar, que se proporciona como un objeto Hold.

Hold
comment

El comentario que se va a almacenar como motivo para liberar la retención.

String

La retención suspende la actividad del trabajo durante una cantidad indefinida de tiempo hasta que se libera. Una vez liberada una retención, la información sobre esta nunca se elimina del sistema y se puede consultar.

La secuencia de comandos siguiente libera retenciones de presupuesto activas asociadas con el trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Release the active Budget Holds on the job
jobHolds = job.getHolds()
for hold in jobHolds:
        if(hold.active==True and hold.type=='Budget Hold'):
            job.releaseHold(hold,comment='Budget has been approved. The job work can resume')
retrieveAttachment (attachment_id, destination_location)
ParámetroExplicaciónTipo de datos
attachment_id

El Id. del adjunto que se va a recuperar.

Integer
destination_location

La ubicación de la carpeta donde se almacenará el adjunto. También se puede indicar un nombre para el archivo que se va a guardar con o sin la extensión de archivo. Si no se proporciona ningún nombre, el adjunto se guarda con el nombre predeterminado que está almacenado con el trabajo.

String

Los adjuntos permiten agregar información al trabajo. Se pueden recuperar los siguientes tipos de adjuntos de un trabajo:

  • Integrado: el archivo se almacena en la base de datos de Workflow Manager (Classic).
  • Vinculado: el vínculo a la ruta del archivo se almacena en la base de datos de Workflow Manager (Classic). Se puede recuperar solamente si tiene acceso a la ruta del archivo.

La secuencia de comandos siguiente recupera adjuntos del trabajo en una ubicación de carpeta.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Get the list attachments associated with the job
attachments = job.getAttachments()

#Print the names of Linked file attachments associated with the job
for attach in attachments:
     if(attach.type=='Linked'):
         print(attach.name)
retrieveJobMap (destination_location)
ParámetroExplicaciónTipo de datos
destination_location

La ubicación de la carpeta donde se almacenará el mapa del trabajo. También se puede indicar un nombre para el mapa que se va a guardar. Si no se proporciona ningún nombre, el mapa del trabajo se guarda con el esquema de nomenclatura predeterminado para el mapa del trabajo.

String

El mapa del trabajo tiene las capas utilizadas para la edición necesarias como parte del trabajo.

La secuencia de comandos siguiente recupera el trabajo en una ubicación del disco.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Retrieve the job map and save to C:\Test 
job.retrieveJobMap(destination_location=r'C:\Test')
save ()

La siguiente secuencia de comandos guarda una asignación de trabajo actualizada.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job
job = conn.getJob(99999)

# Update and save the job assignment
job.assignedTo = 'user0000'
job.save()
sendNotification (notification_type)
ParámetroExplicaciónTipo de datos
notification_type

EL nombre de la plantilla del tipo de notificación que se va a utilizar para enviar la notificación por correo electrónico asociada con el trabajo.

String

La notificación por correo electrónico se puede desencadenar durante el ciclo de vida de un trabajo a fin de proporcionar información sobre un evento relacionado con el trabajo. Entre los ejemplos de envío de notificaciones se incluyen los siguientes:

  • Trabajo asignado o reasignado
  • Trabajo creado
  • Trabajo cerrado

En el ejemplo siguiente se reasigna un trabajo y se envía una notificación por correo electrónico al respecto.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Reassign the job to a user
job.assignedTo='amiller'

#Send an email notification for the job assignment
job.sendNotification(notification_type='JobAssigned')
setAOI (aoi)
ParámetroExplicaciónTipo de datos
aoi

El polígono AOI que se debe asignar al trabajo.

Geometry

Define el área de interés de un trabajo. Para obtener el polígono de área de interés de un trabajo, utilice la herramienta Obtener AOI del trabajo.

La siguiente secuencia de comandos define una geometría de polígono y la define como el área de interés del trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job
job = conn.getJob(99999)

# Create polygon geometry
coordList = [[-105.0, 39.0], [-100.0, 39.0], [-100.0, 35.0], [-105.0, 35.0]]
array = arcpy.Array([arcpy.Point(x, y) for x, y in coordList])
aoi = arcpy.Polygon(array)

#Set the job's Area of interest to the polygon geometry
job.setAOI(aoi)
job.save()
setDataWorkspace (data_workspace_id)
ParámetroExplicaciónTipo de datos
data_workspace_id

El GUID del espacio de trabajo de los datos a activar al abrir para el trabajo.

String

Defina el espacio de trabajo de los datos de un trabajo. Para obtener el espacio de trabajo de los datos de un trabajo, utilice la herramienta Obtener el espacio de trabajo de los datos de trabajo.

La siguiente secuencia de comandos define el espacio de trabajo de los datos de un trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job
job = connect.getjob(99999)

#Set the job's data workspace to a workspace GUID
job.setDataWorkspace("{7887F5C8-CACD-4ADD-88E9-8B37E25C7FF6}")
setLOI (loi)
ParámetroExplicaciónTipo de datos
loi

El polígono o el punto que se va a asignar como lugar de interés para el trabajo.

Geometry

Define el lugar de interés de un trabajo. Para obtener el lugar de interés de un trabajo, use la herramienta Obtener AOI del trabajo.

La siguiente secuencia de comandos incluye código de muestra para definir una geometría de un punto o multipunto y configurarla como lugar de interés del trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job
job = conn.getJob(99999)

# 1. Set the job's location of interest to single point geometry

# Create single point geometry

point = arcpy.Point(-119.5,35.9)
loi_1 = arcpy.PointGeometry(point)

job.setLOI(loi_1)
job.save()


#2. Set the job's location of interest to multipoint geometry

job = conn.getJob(10000)

# Create multipoint geometry
coordList = [[-105.0, 39.0], [-100.0, 39.0], [-100.0, 35.0], [-105.0, 35.0]]
array = arcpy.Array([arcpy.Point(x, y) for x, y in coordList])
loi_2 = arcpy.Multipoint(array)

job.setLOI(loi_2)
job.save()
setStepAsCurrent (step_id)
ParámetroExplicaciónTipo de datos
step_id

El Id. del paso que se va a definir como el paso actual.

Integer

Proporciona una forma de definir un paso del flujo de trabajo como el paso activo actual.

La secuencia de comandos siguiente define un paso del flujo de trabajo como el paso actual.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job
job = conn.getJob(99999)

#Set a step as current in the Job
job.setStepAsCurrent(2315)
storeJobMap (source_location)
ParámetroExplicaciónTipo de datos
source_location

La ruta del archivo que contiene el mapa que se va a almacenar en la base de datos de Workflow Manager (Classic).

String

El mapa del trabajo tiene las capas utilizadas para la edición necesarias como parte del trabajo.

La secuencia de comandos siguiente guarda el mapa del trabajo en la base de datos de Workflow Manager (Classic).

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')

#Access a Workflow Job 
job = conn.getJob(99999)

#Store the job map in Workflow database 
job.storeJobMap(source_location=r'C:\Test\JobMap_17.mapx')

Muestra de código

El siguiente script actualiza la asignación de un trabajo y comprueba que exista una versión de datos espaciales utilizando las propiedades del trabajo.

import arcpy

#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\sample\Workflow.jtc')

#Access a Workflow Job
job = conn.getJob(99999)

# Update the job assignment
job.assignedTo = 'user0000'
job.assignedType = 'user'
job.save()

# Reload the job
job = job.conn.getJob(99999)

#Check a version exists for the job and get the version name
if job.versionExists == True:
    jobversion = job.versionName
    print("The job's data workspace is " + jobversion)