Сводка
Объект 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
import arcpywmx
# Establish a connection to a Workflow database
conn = arcpywmx.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
import arcpywmx
# Establish a connection to a Workflow database
conn = arcpywmx.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, 'assigned_to':'amiller' , 'assigned_type': 'User', 'data_workspace_id':'{DB245005-0D1E-47B8-AE39-CC08530A6C9D}', 'job_type_name':'Quality Control', 'parent_job_id': 9999, 'parent_version_name': 'sde.Default', 'prefix':'QA_', 'version_name':'QA_QC'}
# Create a Workflow Job of type Data Edits
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) на заданном ГИС-сервере с помощью инструмента Загрузить определение сервиса. На этом шаге файл определения сервиса копируется на сервер, извлекается необходимая информация и публикуется ГИС-ресурс. Дополнительные сведения см. в обзоре группы инструментов Публикация
Создайте файл определения сервиса Workflow Manager (Classic) на ГИС-сервере.
import arcpy
import arcpywmx
# Establish a connection to a Workflow database
conn = arcpywmx.Connect(r'c:\test\Workflow.jtc')
# 1. Create the service definition file without connecting to ArcGIS Server
conn.createSD(r'c:\test\SD','Workflow')
# 2. Create the service definition with connection to the ArcGIS Server
# Create ArcGIS Server connection file
arcpy.mapping.CreateGISServerConnectionFile("PUBLISH_GIS_SERVICES", r'c:\test',
'agsservername.ags',
'https://agsservername.domain.com:6443/arcgis',
"ARCGIS_SERVER", username='user',
password='password')
conn.createSD(r'c:\test\SD', 'Workflow', r'c:\test\agsservername.ags',
'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',
r'GIS Servers\server on servername.domain.com (publisher)')
getJob (jobID)
Параметр | Объяснение | Тип данных |
jobID | ID задания, которое будет возвращено. | Integer |
Значение отраженного сигнала
Тип данных | Объяснение |
Job | Возвращает задание в виде Job. |
Предоставляет простой способ получения задания.
Получает задание из базы данных Workflow Manager (Classic).
import arcpy
import arcpywmx
# Establish a connection to a Workflow database
conn = arcpywmx.Connect(r'c:\test\Workflow.jtc')
# Access a Workflow Job
job = conn.getJob(99999)
getQualifiedTableName (table_name)
Параметр | Объяснение | Тип данных |
table_name | Имя таблицы для проверки. | String |
Значение отраженного сигнала
Тип данных | Объяснение |
String | Возвращает полностью проверенное имя таблицы. |
Получает полностью проверенное имя таблицы из базы данных Workflow Manager (Classic).
Missing source code file
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
import arcpywmx
# Establish a connection to a Workflow database
conn = arcpywmx.Connect(r'c:\test\Workflow.jtc')
# Run a query for jobs being assigned to current user. The query results are
# sorted by job name.
result = conn.queryJobs("JOB_NAME,ASSIGNED_TO", "JTX_JOBS",
"Job Name,Assigned To",
"ASSIGNED_TO = '[SYS:CUR_LOGIN]'", "JOB_NAME")
# To get total number of jobs being returned which are assigned to current user.
print("There are %s jobs assigned to me" % str(len(result.rows)))
Пример кода
Следующий скрипт создает одно задание и получает второе задание из базы данных Workflow Manager (Classic).
import arcpy
import arcpywmx
# Establish a connection to a Workflow database
conn = arcpywmx.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)