Resumen
El objeto WorkflowConnection ofrece acceso a métodos para crear u obtener un trabajo de Workflow Manager (Classic).
Debate
Los trabajos se crean a partir de una plantilla de tipo de trabajo. Todas las propiedades del nuevo trabajo se heredan automáticamente del tipo de trabajo y se pueden actualizar tras la creación utilizando los métodos Job.
Propiedades
Propiedad | Explicación | Tipo de datos |
jtcPath (Sólo lectura) | Devuelve la ruta al archivo de conexión de flujo de trabajo (.jtc) del proyecto de ArcGIS Pro. Si ya existe una conexión con ArcGIS Pro, devolverá la ruta completa al archivo de conexión de flujo de trabajo. Si se crea una conexión a la base de datos mediante Connect, puede utilizar la propiedad jtcPath para obtener la ruta de conexión de flujo de trabajo introducida de forma manual para establecer la conexión. | String |
Descripción general del método
Método | Explicación |
createJob ({job_type_id}, {job_type_name}, {job_type_description}, {callback}) | Crea un nuevo trabajo basado en un tipo de trabajo. |
createSD (output_directory, service_name, {connection_file_path}, {folder_name}, {description}, {mininstances}, {maxinstances}, {maxusagetime}, {maxwaittime}, {maxidletime}) | Crea un archivo de definición de servicio (.sd) del tipo de servicio de Workflow Manager (clásico) que luego se puede publicar en un servidor SIG específico. |
getJob (jobID) | Devolver un trabajo único mediante su Id. de trabajo. |
getQualifiedTableName (table_name) | Devuelve un nombre de tabla totalmente calificado para una tabla de una base de datos de Workflow Manager (Classic). |
queryJobs (fields, tables, {aliases}, {where}, {order_by}) | Consulta trabajos basándose en criterios, devuelve un objeto QueryResult y después permite el acceso a una lista de trabajos y propiedades de trabajo que cumplen los criterios. |
Métodos
createJob ({job_type_id}, {job_type_name}, {job_type_description}, {callback})
Parámetro | Explicación | Tipo de datos |
job_type_id | El Id. del tipo de trabajo desde el que crear un nuevo trabajo. | Integer |
job_type_name | El nombre del tipo de trabajo desde el que crear un nuevo trabajo. | String |
job_type_description | Las propiedades del tipo de trabajo que se pueden personalizar y asignar a un trabajo nuevo antes de crearlo, proporcionadas como el objeto JobTypeDescription. | JobTypeDescription |
callback | El argumento de devolución de llamada se utiliza cuando el trabajo se ha configurado para que se ejecute automáticamente una vez creado. 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 |
Job | Devuelve el trabajo creado como Job. Se devuelve una lista de objetos Job cuando se crean varios trabajos proporcionando una lista de objetos Geometry en JobTypeDescription y los LOI no se han configurado para combinarse. |
Para crear un nuevo trabajo se requiere un nombre de tipo de trabajo, un Id. de tipo de trabajo o una descripción de tipo de trabajo.
La siguiente secuencia de comandos crea dos trabajos en la base de datos de Workflow Manager (clásico): una definida por el nombre de tipo de trabajo y la otra por el Id. de tipo de trabajo.
import arcpy
#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')
#Create a Workflow Job of type Data Edits
job = conn.createJob(job_type_name="Data Edits")
#Create a Workflow Job of type 5
job2 = conn.createJob(job_type_id = 5)
La siguiente secuencia de comandos crea un trabajo en la base de datos Workflow Manager (clásico) utilizando la descripción del tipo de trabajo personalizada. La descripción del trabajo personalizada proporciona el LOI, asigna el trabajo a un usuario, asigna un espacio de trabajo de datos al trabajo, asigna una versión principal mediante el Id., asigna una versión de trabajo principal, agrega un prefijo al trabajo y asigna una versión al trabajo.
import arcpy
#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')
#Create a polygon geometry for LOI
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 = arcpy.Polygon(array)
#Create a job type description with customized properties
desc = {'LOI': 'loi', 'assignedTo':'amiller', 'assignedType': 'User', 'dataWorkspaceID':'{DB245005-0D1E-47B8-AE39-CC08530A6C9D}', 'jobTypeName':'Quality Control', 'parentJobID': '9999', 'parentVersionName': 'sde.Default', 'prefix':'QA_', 'versionName':'QA_QC'}
#Create a Workflow Job of type Quality Control
job = conn.createJob(job_type_description=desc)
createSD (output_directory, service_name, {connection_file_path}, {folder_name}, {description}, {mininstances}, {maxinstances}, {maxusagetime}, {maxwaittime}, {maxidletime})
Parámetro | Explicación | Tipo de datos |
output_directory | La ruta de la carpeta para el archivo de salida (.sd). | String |
service_name | El nombre del servicio. El nombre sólo puede contener caracteres alfanuméricos y guiones bajos. El nombre no puede incluir más de 120 caracteres. | String |
connection_file_path | La ruta y el nombre del archivo de conexión de ArcGIS Server (.ags). | String |
folder_name | El nombre de la carpeta donde se publicará la definición del servicio. Si la carpeta no existe, se creará. La carpeta predeterminada está en el nivel raíz del servidor. | String |
description | El resumen de la descripción. | String |
mininstances | La cantidad mínima de instancias que iniciará un servicio y que pondrá a disposición para utilizarlas. (El valor predeterminado es 1) | Integer |
maxinstances | La cantidad máxima de instancias que puede iniciar un servicio y ponerlas a disposición para utilizarlas. (El valor predeterminado es 2) | Integer |
maxusagetime | La cantidad máxima de tiempo, en segundos, que un servicio se puede utilizar. Para tareas cuya ejecución se prevé larga, incremente el tiempo predeterminado. (El valor predeterminado es 600) | Integer |
maxwaittime | La cantidad máxima de tiempo, en segundos, que el cliente debe esperar para conectarse con una instancia antes de que caduque. Cuando todas las instancias están ocupados procesando solicitudes, las solicitudes posteriores están a la cola. Si este tiempo de inactividad se acaba antes de que esté disponible una instancia, la tarea fallará. (El valor predeterminado es 60) | Integer |
maxidletime | La cantidad máxima de tiempo, en segundos, que una instancia seguirá activa antes de que tenga lugar el acortamiento de grupo Cualquier instancia por encima de la cantidad mínima de instancias que no se han utilizado será cerrada unan vez que se haya terminado el valor máximo de inactividad. | Integer |
Tipo de datos | Explicación |
String | La ruta de salida al archivo .sd resultante. |
createSD es el primer paso para automatizar la publicación de un tipo de servicio de Workflow Manager (clásico) en un servidor SIG utilizando ArcPy. La salida creada desde el createSD es un archivo de definición de servicio (.sd) que representa el tipo de servicio de Workflow Manager (clásico), es una combinación de información sobre el servidor y un conjunto de propiedades del servicio.
Es posible crear una definición de servicio sin conocer la información específica sobre la conexión de servidor. En este caso, se puede omitir el parámetro connection_file_path.
Una vez creado el archivo de definición de servicio de salida se puede cargar y publicar como un servicio de Workflow Manager (clásico) en un servidor SIG específico mediante la función Cargar definición de servicio. Se toma el archivo de definición de servicio, se copia en el servidor, se extrae la información necesaria y se publica el recurso SIG. Para obtener más información, consulte Descripción general sobre el conjunto de herramientas Publicación.
Si utiliza ArcGIS Pro, el servidor SIG especificado debe estar federado en un portal.
Cree un archivo de definición de servicio de Workflow Manager (clásico) y publíquelo en un servidor SIG federado.
import arcpy
#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')
# Create the service definition file with connecting to the federated ArcGIS Server
conn.createSD(r'c:\test\SD','Workflow', None, 'serverfolder','service description',2,4,3000,300,2000)
# Publish the service using the service definition file
arcpy.UploadServiceDefinition_server(r'c:\test\SD\workflow.sd', 'https://servername.domain:6443/arcgis')
getJob (jobID)
Parámetro | Explicación | Tipo de datos |
jobID | El Id. del trabajo que devolver. | Integer |
Tipo de datos | Explicación |
Job | Devuelve el trabajo como Job. |
Ofrece una forma sencilla de recuperar un trabajo.
Obtener un trabajo desde una 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 Workflow Job
job = conn.getJob(99999)
getQualifiedTableName (table_name)
Parámetro | Explicación | Tipo de datos |
table_name | El nombre de tabla que se debe calificar. | String |
Tipo de datos | Explicación |
String | Devuelve el nombre de tabla totalmente calificado. |
Obtener un nombre de tabla totalmente calificado de una 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')
#Enter a tablename in the Workflow database
tablename = conn.getQualifiedTableName("Trails")
queryJobs (fields, tables, {aliases}, {where}, {order_by})
Parámetro | Explicación | Tipo de datos |
fields | Los campos de las tablas de consulta que se van a devolver para los trabajos que cumplen los criterios. | String |
tables | Tablas de la base de datos de Workflow Manager (clásico) utilizadas para consultar trabajos. | String |
aliases | Nombres de alias definidos por el usuario para los campos devueltos. Los nombres de alias se enumeran en el mismo orden que los campos correspondientes. | String |
where | Cláusula Where utilizada para consultar trabajos. | String |
order_by | Campos utilizados para ordenar los resultados de la consulta. | String |
Tipo de datos | Explicación |
Object | El método QueryJobs devuelve un objeto QueryResult y permite el acceso a la lista de trabajos y propiedades de trabajo que ha devuelto la consulta. |
El objeto QueryResult es una lista de QueryRow que hace referencia a un determinado trabajo y QueryField a la propiedad de un determinado trabajo, que ha devuelto el método QueryJobs.
La secuencia de comandos siguiente ejecuta una consulta para buscar e imprimir los nombres de trabajos asignados al usuario actual.
import arcpy
#Establish a connection to a Workflow database
conn = arcpy.wmx.Connect(r'c:\test\Workflow.jtc')
#Run a query for the jobs assigned to the current user and print each job name
for row in conn.queryJobs("JOB_NAME,ASSIGNED_TO","JTX_JOBS","Job Name,Assigned To", "ASSIGNED_TO = '[SYS:CUR_LOGIN]'", "JOB_NAME").rows:
print(row[0])
Muestra de código
El siguiente script crea un trabajo y obtiene otro desde una 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')
#Create a Workflow Job of type Data Edits
job = conn.createJob(job_type_name="Data Edits")
#Access a Workflow Job
job = conn.getJob(99999)