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
Propiedad | Explicación | Tipo 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.
| 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étodo | Explicació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ámetro | Explicación | Tipo de datos |
storage_type | El tipo de adjunto que se va a agregar.
| 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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 |
Tipo de datos | Explicació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 ()
Tipo de datos | Explicació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ámetro | Explicación | Tipo de datos |
tableName | El nombre completo de la tabla de la tabla de propiedades extendida que se va a devolver. | String |
Tipo de datos | Explicació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 ()
Tipo de datos | Explicació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
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ámetro | Explicación | Tipo de datos |
consider_hold | Marcar para determinar si se deben considerar las retenciones al calcular el número de días pendientes. | Boolean |
Tipo de datos | Explicació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ámetro | Explicación | Tipo de datos |
jobID | El Id. del trabajo. | Integer |
Tipo de datos | Explicació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 ()
Tipo de datos | Explicació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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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ámetro | Explicación | Tipo 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)