描述
Job 对象提供对属性和方法的访问来与 Workflow Manager (Classic) 作业进行交互。
讨论
“作业”是组织内部执行的单项工作单元。可能有一人或多人对其进行处理。它可以处理单个数据集或多个数据集,也可以不处理任何数据。“作业”是在称为“作业类型”的模板的基础上创建的,该模板配置了将在作业中使用的所需属性和组件(如“工作流”和“地图”)。
属性
属性 | 说明 | 数据类型 |
assignedTo (可读写) | 作业分配到的用户名或组。 | String |
assignedType (可读写) | 作业分配类型。下面是设置作业分配时会用到的有效字符串列表。如果使用的字符串无效,则作业将默认返回未分配状态。
| String |
createdBy (可读写) | 创建作业的用户的用户名。 | String |
createdDate (只读) | 返回作业的创建日期。 | DateTime |
currentSteps (只读) | 返回代表工作流中活动步骤的步骤 ID 列表。 | List |
description (可读写) | 作业的描述。 | String |
dueDate (可读写) | 作业的计划结束日期。 | DateTime |
endDate (只读) | 返回作业的结束日期。 | DateTime |
hasAOI (只读) | 如果定义了作业感兴趣区域,则返回 True。 旧版本:该方法已弃用。使用 hasLOI 代替。 | Boolean |
hasLOI (只读) | 如果定义了作业感兴趣位置(点或面),则返回 True。 | Boolean |
ID (只读) | 返回作业 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) | 通过作业 ID 返回作业的 Workflow。 |
listExtendedProperties () | 列出了与该作业相关的所有扩展属性表和链接属性表的全限定名称。 |
logActivity (activity_type, {message}) | 将活动记录于作业历史中,以便描述作业中的操作。 |
markStepAsComplete ({step_id}, {callback}) | 将工作流中的步骤标记为完成。 |
releaseHold (hold, {comment}) | 释放与作业相关联的保存内容并将其标记为非活动的保存内容。 |
retrieveAttachment (attachment_id, destination_location) | 检索与作业相关联的文件附件在磁盘上的位置。 |
retrieveJobMap (destination_location) | 检索作业地图在磁盘上的位置。 |
save () | 将对作业所做的所有更改重新保存到 数据库。 |
sendNotification (notification_type) | 基于作业生命周期中的事件发送通知。 |
setAOI (aoi) | 为作业设置感兴趣区 (AOI) 面。 旧版本:该方法已弃用。使用 setLOI 代替。 |
setDataWorkspace (data_workspace_id) | 为作业设置数据工作空间。 |
setLOI (loi) | 为作业设置感兴趣位置 (LOI)。LOI 可以是点 (POI) 或面 (AOI)。 |
setStepAsCurrent (step_id) | 将工作流中的一个步骤设置为当前活动步骤。 |
storeJobMap (source_location) | 将地图保存在 Workflow Manager (Classic) 数据库中,并将其作为要用于编辑的作业地图与作业相关联。 |
方法
addAttachment (storage_type, source_location)
参数 | 说明 | 数据类型 |
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})
参数 | 说明 | 数据类型 |
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})
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
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})
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
consider_hold | 通过标记来确定计算挂起天数时是否考虑挂起内容。 | Boolean |
数据类型 | 说明 |
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)
#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)
参数 | 说明 | 数据类型 |
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})
参数 | 说明 | 数据类型 |
activity_type | ActivityType 的 ID 或名称。 | 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})
参数 | 说明 | 数据类型 |
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})
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
notification_type | 用于发送电子邮件通知(与作业相关联)的通知类型模板的名称。 | 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)
#Reassign the job to a user
job.assignedTo='amiller'
#Send an email notification for the job assignment
job.sendNotification(notification_type='JobAssigned')
setAOI (aoi)
参数 | 说明 | 数据类型 |
aoi | 要分配给作业的 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)
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
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)
参数 | 说明 | 数据类型 |
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)