Сводка
Объект 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})
Parameter | Объяснение | Тип данных |
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})
Parameter | Объяснение | Тип данных |
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)
Parameter | Объяснение | Тип данных |
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)
Parameter | Объяснение | Тип данных |
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})
Parameter | Объяснение | Тип данных |
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)