Сводка
Объект Job предоставляет доступ к свойствам и методам для работы с заданием Workflow Manager (Classic).
Описание
Задание представляет собой единицу работы, которая выполняется в рамках организации. Над ней могут работать один человек или несколько людей. Задание может работать с отдельным набором данных, несколькими наборами данных или вообще без данных. Задание создается на основе шаблона, известного как Тип задания, который настроен с нужными свойствами и компонентами (такими, как Рабочий процесс и Карты), которые будут использоваться в задании.
Свойства
Владение | Объяснение | Тип данных |
assignedTo (чтение и запись) | Имя пользователя или группы, которым назначено задание. | String |
assignedType (чтение и запись) | Тип назначения для данного задания. Ниже приведен список допустимых строк, используемых при установке назначения задания. Если используется некорректная строка, задание останется по умолчанию неназначенным.
| String |
createdBy (чтение и запись) | Имя пользователя, создавшего задание. | String |
createdDate (только чтение) | Возвращает дату создания задания. | DateTime |
currentSteps (только чтение) | Возвращает список идентификаторов шагов, определяющих активные шаги данного рабочего процесса. | List |
description (чтение и запись) | Описание задания. | String |
dueDate (чтение и запись) | Дата запланированного завершения задания. | DateTime |
endDate (только чтение) | Возвращает дату завершения задания. | DateTime |
hasAOI (только чтение) | Возвращает True, когда у задания есть определенная область интереса. Прежние версии:Этот метод больше не используется. Вместо этого используйте hasLOI. | Boolean |
hasLOI (только чтение) | Возвращает True, когда у задания есть определенная область интереса (точка или полигон). | Boolean |
ID (только чтение) | Возвращаетs ID задания. | Integer |
jobTypeID (только чтение) | Получает идентификатор ID типа задания для этого задания. | Integer |
name (чтение и запись) | Имя задания. | String |
notes (чтение и запись) | Примечания, связанные с заданием, содержат информацию для пользователей. | String |
owner (чтение и запись) | Имя пользователя, которому принадлежит задание. | String |
parent (чтение и запись) | Получает идентификатор ID родительского задания для текущего задания. | Integer |
parentVersion (чтение и запись) | Имя владельца родительской версии задания. | String |
percentComplete (только чтение) | Возвращает процент выполнения задания. | Double |
priority (чтение и запись) | Приоритет задания. | Integer |
startDate (чтение и запись) | Дата запланированного начала выполнения задания. | DateTime |
startedDate (только чтение) | Возвращает дату начала выполнения задания. | DateTime |
status (чтение и запись) | Имя статуса для задания. Доступными статусами являются те, которые определены в качестве типов статусов в базе данных Workflow Manager (Classic). | String |
versionExists (только чтение) | Возвращает True, когда для задания существует версия. | Boolean |
versionName (чтение и запись) | Имя версии для задания. | String |
Обзор метода
Метод | Объяснение |
addAttachment (storage_type, source_location) | Добавляет вложения к заданию. |
addDependency (depends_on_job_id, {held_on_type}, {held_on_value}, {dependent_on_type}, {dependent_on_value}) | Добавляет зависимость от задания, чтобы ограничить прогресс выполнения задания на определенной стадии, пока этой стадии не достигло другое выполняемое задание. |
addHold (hold_type_id, {comment}) | Добавляет блокировку в задание, приостанавливая его действие. |
deleteAttachment (attachment_id) | Удаляет вложение, связанное с заданием. |
deleteJobMap () | Удаляет карту задания, связанную с заданием. |
executeStep ({step_id}, {callback}) | Выполняет шаг в рабочем процессе. |
getAttachments () | Возвращает все вложения, связанные с заданием в виде списка объектов Attachment. |
getExtendedPropertyTable (tableName) | Возвращает отдельную таблицу расширенного свойства на основе его полного имени таблицы. |
getHolds () | Возвращает удержания, связанные с заданием, в виде списка объектов Hold. |
getPendingDays (consider_hold) | Возвращает количество оставшихся дней для задания. Может также дополнительно рассматривать удержания и вычитать их из количества оставшихся дней для задания. |
getWorkflow (jobID) | Возвращает Workflow задания на основе его ID. |
listExtendedProperties () | Перечисляет полное имя всего расширенного свойства или связанных таблиц свойства, относящихся к заданию. |
logActivity (activity_type, {message}) | Ведёт журнал действий в истории задания, чтобы описать действие в задании. |
markStepAsComplete ({step_id}, {callback}) | Отмечает шаг рабочего процесса как завершенный |
releaseHold (hold, {comment}) | Снимает блокировку, связанную с заданием и отмечает ее как неактивную блокировку. |
retrieveAttachment (attachment_id, destination_location) | Извлекает файловые вложения, связанные с заданием, в папку на диске. |
retrieveJobMap (destination_location) | Извлекает карту задания в папку на диске. |
save () | Сохраняет любые изменения, сделанные в задании, обратно в базу данных Workflow Manager (Classic). |
sendNotification (notification_type) | Отправляет уведомление, основываясь на событии в жизненном цикле задания. |
setAOI (aoi) | Устанавливает полигон области интереса для задания. Прежние версии:Этот метод больше не используется. Вместо этого используйте setLOI. |
setDataWorkspace (data_workspace_id) | Устанавливает рабочую область данных для задания. |
setLOI (loi) | Устанавливает расположение местоположения интереса (LOI) для задания. Местоположения интереса могут быть точками (POI) или полигонами (AOI). |
setStepAsCurrent (step_id) | Делает шаг рабочего процесса активным. |
storeJobMap (source_location) | Сохраняет карту в базе данных Workflow Manager (Classic) и связывает ее с заданием, чтобы карта задания использовалась для редактирования. |
Методы
addAttachment (storage_type, source_location)
Parameter | Объяснение | Тип данных |
storage_type | Тип добавляемого вложения.
| String |
source_location | Путь к файлу или URL добавляемого вложения. | String |
Вложения – это один из способов добавить информацию в это задание. В задание можно добавить следующие типы вложений:
- Встроено – Файл сохраняется в базе данных Workflow Manager (Classic).
- Связано – В базе данных Workflow Manager (Classic) сохраняется ссылка на путь к этому файлу.
- URL – в базе данных сохраняется URL-ссылка.
Следующий скрипт добавляет в задание встроенные, связанные и URL-вложения.
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})
Parameter | Объяснение | Тип данных |
depends_on_job_id | ID родительского задания, от которого будет зависеть текущее задание. | Integer |
held_on_type | Определяет, будет ли текущее задание (для которого добавляется зависимость) приостановлено на шаге или статусе. Рабочий процесс задания, которое было приостановлено, не может быть выполнен, пока зависимость не будет снята. Рабочий процесс задания, которое было приостановлено, не может быть выполнен, пока зависимость не будет снята. Зависимость будет снята, когда задание окажется на шаге или будет в статусе, которое было указано в параметрах зависимости. (Значение по умолчанию — STEP) | String |
held_on_value | Значение, при котором задание должно быть приостановлено (шаг или статус). Этим значением может быть ID шага в виде целого числа или статус задания в виде текстового значения. | Variant |
dependent_on_type | Определяет, будет ли текущее задание (для которого добавляется зависимость) зависеть от шага или статуса другого задания. Когда зависимое задание будет приостановлено на шаге или статусе другого задания, оно не сможет продолжить свою работу, пока другая работа не дойдет до шага или статуса, которые были указаны в параметрах зависимости. Как только задание дойдет до шага или статуса, указанных в параметрах зависимости, зависимость будет снята и зависимое задание продолжит свою работу. (Значение по умолчанию — STATUS) | String |
dependent_on_value | Значение шага или статуса другого задания, от которого зависит текущее задание. Этим значением может быть ID шага в виде целого числа или статус задания в виде текстового значения. (Значение по умолчанию — CLOSED) | Variant |
Зависимости между заданиями позволят вам моделировать отношения между ними. Таким образом, вы сможете приостановить выполнение какой-то задачи до тех, пор пока другое задание не окажется на определенной стадии. Ограничения могут быть включены для следующих частей задания: Статус или Шаг.
Когда задание, которое ограничивает рабочий процесс другого задания, достигает стадии, определенной в зависимости, ограниченное задание автоматически восстановится и сможет продолжить выполнение.
Следующий скрипт добавит стандартную зависимость, шаг задания для статуса зависимости и статус задания для зависимости шага для текущего задания.
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})
Parameter | Объяснение | Тип данных |
hold_type_id | ID шаблона типа блокировки, который будет использоваться для создания блокировки этого задания. | Integer |
comment | Комментарий, который будет сохранен в качестве причины для добавления блокировки. | String |
Блокировки приостанавливают действие задания на неопределенный период времени до тех пор, пока эти блокировки не будут сняты. Блокировка может применяться к заданию по следующим причинам:
- Недостаточное финансирование
- Технические проблемы
- Отсутствующие данные
- Недостаток ресурсов
Следующий скрипт извлекает разные типы блокировок из базы данных Workflow Manager (Classic) и добавляет в задание бюджетную блокировку.
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)
Parameter | Объяснение | Тип данных |
attachment_id | ID удаляемого вложения. | Integer |
Вложения – это один из способов добавить информацию в задание.
Следующий скрипт удаляет вложение из задания.
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 ()
Карта задания содержит слои, используемые при редактировании, необходимом при осуществлении задания.
Следующий скрипт удаляет из задания карту задания.
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})
Parameter | Объяснение | Тип данных |
step_id | ID выполняемого шага. ID шага является дополнительным. Если ID не предоставлен, текущий шаг будет выполнен. | Integer |
callback | Аргумент обратного вызова пропускает функцию, запрашивающую у пользователя ответ на основе входных данных из этого шага. При выполнении шага-вопроса, например, обратный вызов берет возможные опции ответа шага и позволяет пользователю выбрать следующий шаг. Также это используется, если невозможно определить следующий шаг в рабочем процессе, поэтому пользователь может выбрать путь следования. | Function |
Тип данных | Объяснение |
WorkflowExecutionResult | Возвращает объект WorkflowExecutionResult, хранящий коды возврата шага. |
Предоставляет способ выполнения шага в рабочем процессе.
Следующий скрипт выполняет шаг в рабочем процессе и предоставляет пример функции обратного вызова, которую можно использовать в процессе выполнения.
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 ()
Тип данных | Объяснение |
Attachment | Вложения, связанные с заданием, возвращаются в виде списка объектов Attachment. |
Вложения – это один из способов добавить информацию в задание. В задание можно добавить следующие типы вложений:
- Встроено – Файл сохраняется в базе данных Workflow Manager (Classic).
- Связано – В базе данных Workflow Manager (Classic) сохраняется ссылка на путь к этому файлу.
- URL – в базе данных сохраняется URL-ссылка.
Следующий скрипт получает вложения, связанные с заданием, и печатает имена связанных вложений.
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)
Parameter | Объяснение | Тип данных |
tableName | Возвращаемое полное имя таблицы расширенного свойства. | String |
Тип данных | Объяснение |
ExtendedProperty | Возвращает таблицу расширенного свойства в виде объекта ExtendedProperty. |
Информация о специфике бизнеса, хранящаяся в части задания как расширенные свойства, возвращается в виде объекта ExtendedProperty.
Следующий скрипт получает таблицу расширенных свойств, связанных с заданием, и печатает имена ячеек вместе со значениями.
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 ()
Тип данных | Объяснение |
Hold | Удержания задания, возвращаемые в виде списка объектов Hold. |
Удержания приостанавливают активность задания на неопределенный период времени до тех пор, пока эти удержания не будут сняты. Удержание может применяться к заданию по следующим причинам:
- Недостаточное финансирование
- Технические проблемы
- Отсутствующие данные
- Недостаток ресурсов
В следующем примере печатаются имена активных удержаний в задании.
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)
Parameter | Объяснение | Тип данных |
consider_hold | Отметка для определения, учитывать ли удержания при вычислении количества оставшихся дней. | Boolean |
Тип данных | Объяснение |
Integer | Возвращает количество оставшихся дней для задания. |
Оставшиеся дни относятся к количеству дней, которые задание выполняется, либо количеству дней, оставшихся для задания, прежде чем оно будет завершено. В качестве даты начала выполнения для вычисления используется либо Дата начала (Start Date), если она была задана, либо Дата создания (Created Date), в противном случае. В качестве даты завершения вычисления используется либо текущая дата, либо Дата завершения (End Date), если задание закрыто.
Следующий скрипт возвращает количество оставшихся дней, как учитывая, так и не учитывая удержания при вычислении.
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)
Parameter | Объяснение | Тип данных |
jobID | ID задания. | Integer |
Тип данных | Объяснение |
Object | Возвращает рабочий процесс виде объекта Workflow. |
Позволяет легко получить рабочий процесс задания.
Получить рабочий процесс задания из базы данных Workflow Manager (Classic).
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 ()
Тип данных | Объяснение |
String | Список полных имен всего расширенного свойства или связанных таблиц свойства, относящихся к заданию. |
Имена таблиц, которые хранят информацию о специфике бизнеса с расширенными свойствами задания, а также связанными свойствами, которые можно получить.
Следующий скрипт перечисляет полное имя всего расширенного свойства или связанных таблиц свойства, относящихся к заданию.
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})
Parameter | Объяснение | Тип данных |
activity_type | ID или имя ActivityType. | String |
message | Пользовательское сообщение, которое добавляется к существующему сообщению ActivityType. | String |
Вкладка История заданий содержит журнал для регистрации всего, что происходит в течение всего времени выполнения задания. Каждый из элементов журнала содержит отметку времени записи и имени текущего пользователя в это время. С записью сохраняется также сообщение, поясняющее, что случилось в этот момент времени.
В следующем примере ведётся журнал пользовательской активности с сообщением к существующему заданию.
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})
Parameter | Объяснение | Тип данных |
step_id | ID выполняемого шага, который будет отмечен как завершенный. ID шага является дополнительным. Если ID не предоставлен, текущий шаг будет выполнен. | Integer |
callback | Аргумент обратного вызова пропускает функцию, запрашивающую у пользователя ответ на основе входных данных из этого шага. При отметке шага-вопроса как завершенного, например, обратный вызов учитывает возможные варианты ответа шага и позволяет пользователю выбрать следующий шаг. Он также используется, когда невозможно определить следующий шаг в рабочем процессе, поэтому пользователь может выбрать путь следования. | Function |
Предоставляет способ отметки шага как завершенного.
Следующий скрипт отмечает шаг в рабочем процессе как завершенный и предоставляет пример функции обратного вызова, которую можно использовать в процессе выполнения.
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})
Parameter | Объяснение | Тип данных |
hold | Блокировка снимается объектом Hold. | Hold |
comment | Комментарий, который будет сохранен в качестве причины снятия блокировки. | String |
Блокировка приостанавливает действие задания на неопределенный период времени - до тех пор, пока она не будет снята. После снятия блокировки информация о ней никогда не удаляется из системы и ее всегда можно запросить.
Следующий скрипт снимает блокировки, связанные с заданием.
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)
Parameter | Объяснение | Тип данных |
attachment_id | ID извлекаемого вложения. | Integer |
destination_location | Местоположение папки, в которой будет сохранено вложение. Можно также ввести имя файла с расширением или без него. Если имя не указывается, с заданием сохраняется вложение под именем, используемым по умолчанию. | String |
Вложения – это один из способов добавить информацию в задание. Из задания можно извлечь следующие типы вложений:
- Встроено – Файл сохраняется в базе данных Workflow Manager (Classic).
- Связано – В базе данных 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)
#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)
Parameter | Объяснение | Тип данных |
destination_location | Местоположение папки, в которой будет сохранено карта задания. Можно также ввести имя сохраняемой карты. Если имя карты задания не указывается, карта задания сохраняется со схемой наименования, используемой по умолчанию. | String |
Карта задания содержит слои, используемые при редактировании, необходимом при осуществлении задания.
Следующий скрипт извлекает задачу в папку на диске.
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 ()
Следующий скрипт сохраняет обновленное назначение задания.
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)
Parameter | Объяснение | Тип данных |
notification_type | Имя шаблона типа уведомления, используемого для отправки уведомления по электронной почте, связанного с заданием. | String |
Уведомления по e-mail могут быть вызваны в течение жизненного цикла задания для передачи информации, связанной с заданием. К примерам уведомлений по e-mail относятся:
- Задание назначено или переназначено
- Задание создано
- Задание закрыто
В следующем примере переназначается задача и посылается e-mail уведомление о ней.
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)
Parameter | Объяснение | Тип данных |
aoi | Полигон области интереса, который будет присвоен заданию. | Geometry |
Определяет область интереса для задания. Чтобы получить полигон области интереса для задания, используйте инструмент Получить AOI задания.
Следующий скрипт определяет геометрию полигона и устанавливает ее в качестве области интереса для задания.
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)
Parameter | Объяснение | Тип данных |
data_workspace_id | GUID той рабочей области данных задания, которую необходимо сделать активной. | String |
Установить рабочую область данных для задания. Чтобы получить рабочую область данных для задания, используйте инструмент Получить рабочую область данных задания.
Следующий скрипт устанавливает рабочую область данных для задания.
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)
Parameter | Объяснение | Тип данных |
loi | Точка или полигон, которые назначаются в качестве местоположения интереса для задания. | Geometry |
Определяет местоположения интереса для задания. Чтобы получить местоположение интереса для задания, используйте инструмент Получить AOI задания.
Следующий скрипт включает пример кода для определения одной точки или мультиточечной геометрии и установки местоположения интереса задания.
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)
Parameter | Объяснение | Тип данных |
step_id | ID шага, который делается активным. | Integer |
Обеспечивает возможность задания шага рабочего процесса как активного.
Следующий скрипт делает шаг рабочего процесса текущим.
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)
Parameter | Объяснение | Тип данных |
source_location | Путь к файлу с картой, сохраняемой в базе данных Workflow Manager (Classic). | String |
Карта задания содержит слои, используемые при редактировании, необходимом при выполнения задания.
Следующий скрипт сохраняет карту задания в базе данных 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')
Пример кода
Следующий скрипт обновляет назначение заданий и проверяет, что версия пространственных данных существует, используя свойства задания.
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)