WorkflowConnection

Краткая информация

Объект WorkflowConnection, который обеспечивает доступ к методам для создания или получения задания Workflow Manager (Classic).

Обсуждение

Задания создаются по шаблону типа задания. Все свойства для нового задания автоматически наследуются из типа задания и могут быть обновлены после создания с помощью методов Job.

Свойства

СвойствоОписаниеТип данных
jtcPath
(только чтение)

Возвращает путь к файлу подключения рабочего процесса (.jtc) в проекте ArcGIS Pro.

Если существует подключение ArcGIS Pro, то будет возвращен полный путь к файлу подключения рабочего процесса. Если подключение к базе данных было создано с помощью Connect, то свойство jtcPath может использоваться для получения введенного вручную пути подключения к рабочему процессу, чтобы выполнить подключение.

String

Обзор метода

МетодОписание
createJob ({job_type_id}, {job_type_name}, {job_type_description}, {callback})

Создает новое задание на основе типа.

createSD (output_directory, service_name, {connection_file_path}, {folder_name}, {description}, {mininstances}, {maxinstances}, {maxusagetime}, {maxwaittime}, {maxidletime})

Создает файл определения сервиса (.sd), имеющий тип сервиса Workflow Manager (Classic), который может быть опубликован на указанном ГИС-сервере.

getJob (jobID)

Возвращает отдельное задание на основе его ID.

getQualifiedTableName (table_name)

Возвращает полностью проверенное имя для таблицы из базы данных Workflow Manager (Classic).

queryJobs (fields, tables, {aliases}, {where}, {order_by})

Запрашивает задания на основе критерия и возвращает объект QueryResult, а затем предоставляет доступ к списку заданий и свойствам задания, удовлетворяющим критериям.

Методы

createJob ({job_type_id}, {job_type_name}, {job_type_description}, {callback})
ПараметрОписаниеТип данных
job_type_id

ID того типа задания, который был использован для создания нового задания.

Integer
job_type_name

Имя того типа задания, который был использован для создания нового задания.

String
job_type_description

Свойства типа задания, которые можно настроить и назначить новому создаваемому заданию, и которые указываются как объект JobTypeDescription.

JobTypeDescription
callback

Аргумент обратного вызова используется, когда задание должно автоматически выполняться, как только оно будет создано. У него есть функция, которая предлагает пользователю реагировать в зависимости от входных данных шага определенного типа. При выполнении шага-вопроса, например, обратный вызов берет возможные опции ответа шага и позволяет пользователю выбрать следующий шаг. Он также используется, когда невозможно определить следующий шаг в рабочем процессе, поэтому пользователь может выбрать путь следования.

Function
Возвращаемое значение
Тип данныхОписание
Job

Возвращает задание, созданное, как Job. Список объектов Job возвращается, когда создается несколько заданий при указании списка объектов Geometry в JobTypeDescription и LOI не будут объединяться.

Для создания нового задания требуется имя типа задания, ID типа задания или описание типа задания.

Следующий скрипт создает два новых задания в базе данных Workflow Manager (Classic): одно, определенное именем типа задания и другое, определенное идентификатором ID типа задания.

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)

Следующий скрипт создает задание в базе данных Workflow Manager (Classic), используя предварительно подготовленное описание типа задания. Предварительно подготовленное описание задания обеспечивает LOI, назначает задание пользователю, назначает рабочую область данных заданию, назначает родителя с помощью ID, назначает версию родительского задания, добавляет заданию префикс и назначает версию для задания.

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})
ПараметрОписаниеТип данных
output_directory

Путь к папке для выходного файла (.sd).

String
service_name

Имя сервиса. Имя может содержать только буквы, цифры и знак подчеркивания. Длина имени не должна превышать 120 символов.

String
connection_file_path

Путь к файлу и имя файла подключения ArcGIS Server (.ags).

String
folder_name

Имя папки, в которую вы хотите опубликовать определение сервиса. Если папка не существует, она будет создана. Папкой по умолчанию является корневая папка сервера.

String
description

Краткое описание.

String
mininstances

Минимальное число экземпляров, которые будут запущены сервисом и станут доступны для использования.

(Значение по умолчанию — 1)

Integer
maxinstances

Максимальное число экземпляров, которые могут быть запущены сервисом и доступны для использования.

(Значение по умолчанию — 2)

Integer
maxusagetime

Максимальное время (в секундах) использования сервиса. Если вы ожидаете длительные задачи, необходимо увеличить время по умолчанию.

(Значение по умолчанию — 600)

Integer
maxwaittime

Максимальное время в секундах, в течение которого клиент будет ждать подключения к экземпляру, прежде чем истечет срок ожидания. Когда все экземпляры заняты обработкой запросов, последующий запросы добавляются в очередь. Если срок ожидания истекает до того, как экземпляр станет доступным, задача завершится со сбоем.

(Значение по умолчанию — 60)

Integer
maxidletime

Максимальное время в секундах, в течение которого экземпляр будет оставаться активным до сжатия пула. Любые экземпляры, которые превышают минимальное количество неиспользованных экземпляров, будут закрыты после истечения максимального времени в состоянии простоя.

Integer
Возвращаемое значение
Тип данныхОписание
String

Выходной путь для итогового файла .sd.

createSD – это первый шаг для автоматизации публикации сервиса с типом Workflow Manager (Classic) на ГИС-сервере с помощью ArcPy. Выходными данными, создаваемыми функцией createSD, является файл определения сервиса (.sd), который представляет собой тип сервиса Workflow Manager (Classic) и является комбинацией информации о сервере и набора свойств сервиса.

Определение сервиса можно создать без информации о подключении к серверу. В этом случае параметр connection_file_path можно опустить.

После того, как файл определения сервиса создан, его можно загрузить и опубликовать как сервис Workflow Manager (Classic) на заданном ГИС-сервере с помощью инструмента Загрузить определение сервиса. На этом шаге файл определения сервиса копируется на сервер, извлекается необходимая информация и публикуется ГИС-ресурс. Дополнительные сведения см. в обзоре группы инструментов Публикация

При использовании ArcGIS Pro выбранный ГИС-сервер должен быть затем интегрирован с порталом.

Создайте файл определения сервиса Workflow Manager (Classic) и опубликуйте его на интегрированном ГИС-сервере.

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)
ПараметрОписаниеТип данных
jobID

ID задания, которое будет возвращено.

Integer
Возвращаемое значение
Тип данныхОписание
Job

Возвращает задание в виде Job.

Предоставляет простой способ получения задания.

Получает задание из базы данных 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)
getQualifiedTableName (table_name)
ПараметрОписаниеТип данных
table_name

Имя таблицы для проверки.

String
Возвращаемое значение
Тип данныхОписание
String

Возвращает полностью проверенное имя таблицы.

Получает полностью проверенное имя таблицы из базы данных 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})
ПараметрОписаниеТип данных
fields

Поля из таблиц запроса, возвращаемые для заданий, удовлетворяющих критериям.

String
tables

Таблицы в базе данных Workflow Manager (Classic), использующиеся для запроса заданий.

String
aliases

Псевдонимы, заданные пользователем для возвращенных полей. Псевдонимы перечисляются в том же порядке, что и соответствующие им поля.

String
where

Выражение where для запроса заданий.

String
order_by

Поля, использующиеся для упорядочивания результатов запроса.

String
Возвращаемое значение
Тип данныхОписание
Object

Метод QueryJobs возвращает объект QueryResult и открывает доступ к списку заданий и свойствам заданий, возвращаемым запросом.

Объект QueryResult - это список QueryRow, относящихся к определенному заданию и QueryField, относящихся к определенному свойству задания,, полученных методом QueryJobs.

Следующий скрипт запускает запрос для поиска и печати названий задач, назначенных текущему пользователю.

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])

Пример кода

Следующий скрипт создает одно задание и получает второе задание из базы данных Workflow Manager (Classic).

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)