流程工作项管理接口
工作项管理器用于工作项的添加、完成、取消、更新等操作。
基本用法
IWorkItemManager 接口对象通过 Engine 对象获取,在后台的自定义代码界面可通过以下方式调用 IWorkItemManager 的任何方法。
H3.Workflow.WorkItem.WorkItem = this.Engine.WorkItemManager.GetWorkItem("workitemid");
接口列表
添加一组用户作业
功能描述
添加一组用户作业,保证事务化,以避免部分作业在添加后立即被完成。添加作业时设置被添加时间,避免时区问题导致时间不统一。若 WorkItem 是发起活动的任务,不会调用委托关系。
接口定义
string[] AddWorkItems(H3.Workflow.WorkItem.WorkItem[] workItems, bool isChildInstance = false);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
workItems |
是 |
H3.Workflow.WorkItem.WorkItem[] |
新增的工作项。 |
isChildInstance |
否 |
bool |
是否为子流程,默认 false。 |
返回值
| 类型 |
描述 |
string[] |
添加的工作项 ID。 |
示例
H3.Workflow.WorkItem.WorkItem[] items = new H3.Workflow.WorkItem.WorkItem[1];
items[0] = new H3.Workflow.WorkItem.WorkItem();
// items[0]赋值
string[] workItemIds = this.Engine.WorkItemManager.AddWorkItems(items, false);
取消一个工作项
功能描述
取消一个工作项,相应的征询意见的工作项也会被取消。
接口定义
ErrorCode CancelWorkItem(string workItemId);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
workItemId |
是 |
string |
工作项 ID。 |
返回值
示例
H3.ErrorCode errorCode = this.Engine.WorkItemManager.CancelWorkItem("workItemId");
根据作业 ID 获得工作项
功能描述
根据作业的 ID 获得工作项。
接口定义
H3.Workflow.WorkItem.WorkItem GetWorkItem(string workItemId);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
workItemId |
是 |
string |
工作项 ID。 |
返回值
| 类型 |
描述 |
H3.Workflow.WorkItem.WorkItem |
获得的工作项。 |
示例
H3.Workflow.WorkItem.WorkItem workItem = this.Engine.WorkItemManager.GetWorkItem("workItemId");
按表单、参与者、节点名称获取工作项
功能描述
获取工作项。
接口定义
H3.Workflow.WorkItem.WorkItem[] GetWorkItems(string schemaCode, string[] participants, string[] activityNames);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
schemaCode |
是 |
string |
表单编码。 |
participants |
是 |
string[] |
参与者。 |
activityNames |
是 |
string[] |
节点名称。 |
返回值
| 类型 |
描述 |
H3.Workflow.WorkItem.WorkItem[] |
符合条件的工作项数组。 |
示例
H3.Workflow.WorkItem.WorkItem[] items = this.Engine.WorkItemManager.GetWorkItems(
"表单编码",
new string[] {"参与人Id"},
new string[] { "节点编码数组" });
按工作项 ID 数组获得多个任务记录
功能描述
一次性获得多个任务记录。
接口定义
WorkItem[] GetWorkItems(string[] workItemIds);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
workItemIds |
是 |
string[] |
工作项 Id。 |
返回值
| 类型 |
描述 |
H3.Workflow.WorkItem.WorkItem[] |
工作项数组。 |
示例
H3.Workflow.WorkItem.WorkItem[] items = this.Engine.WorkItemManager.GetWorkItems(new string[] {"workItemId1", "workItemId2"});
转交任务给他人
功能描述
转交一个任务给指定人员,不创建新任务,暂存后转发时审批意见将被覆盖。
接口定义
ErrorCode ForwardWorkItem(string workItemId,
string participant,
string comment,
string commentId = "",
bool isNewComment = false,
bool notify = true);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
workItemId |
是 |
string |
工作项 ID。 |
participant |
是 |
string |
接收人。 |
comment |
是 |
string |
转发意见。 |
commentId |
否 |
string |
意见 ID,默认空字符串。 |
isNewComment |
否 |
bool |
是否为新的审批意见,默认 false。 |
notify |
否 |
bool |
是否发送工作通知,默认 true。 |
返回值
示例
H3.ErrorCode errorCode = this.Engine.WorkItemManager.ForwardWorkItem("workItemId","转交给谁", "转发意见", "", false, true);
完成一个工作项
功能描述
完成一个工作项任务(待办),此操作仅完成特定的工作项,并不会驱动流程流转。
接口定义
ErrorCode FinishWorkItem(
string userId,
string workItemId,
AccessMethod finishAccessMethod,
H3.Data.BoolValue approval,
string comment,
string actionName,
ActionEventType actionEventType,
bool isChildInstance = true);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
userId |
是 |
string |
提交人员。 |
workItemId |
是 |
string |
工作项 ID。 |
finishAccessMethod |
是 |
AccessMethod |
提交人员的接入方式。 |
approval |
是 |
H3.Data.BoolValue |
审批结果。 |
comment |
是 |
string |
审批意见。 |
actionName |
是 |
string |
操作名称。 |
actionEventType |
是 |
ActionEventType |
操作事件类型。 |
isChildInstance |
否 |
bool |
是否为子流程,默认 true。 |
返回值
示例
H3.ErrorCode errorCode = this.Engine.WorkItemManager.FinishWorkItem(
"操作用户Id",
"workItemId",
H3.Workflow.WorkItem.AccessMethod.Web,
H3.Data.BoolValue.True,
"提交意见",
"操作按钮",
H3.Workflow.WorkItem.ActionEventType.Forward,
true);
将指定传阅工作项标为已阅
功能描述
将指定的传阅工作项标为已阅。
接口定义
ErrorCode FinishCirculateByIds(
string userId,
string[] workItemIds,
AccessMethod finishAccessPoint,
string comment,
string actionName);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
userId |
是 |
string |
用户 Id。 |
workItemIds |
是 |
string[] |
工作项 Id 集合。 |
finishAccessPoint |
是 |
AccessMethod |
用户接入方式。 |
comment |
是 |
string |
审批意见。 |
actionName |
是 |
string |
操作名称。 |
返回值
示例
H3.ErrorCode errorCode = this.Engine.WorkItemManager.FinishCirculateByIds(
"操作用户Id",
new string[] { "workItemId" },
H3.Workflow.WorkItem.AccessMethod.Web,
"提交意见",
"操作按钮");
催办
功能描述
催办流程实例中当前所有的待办人员。
接口定义
void Urge(string userId, string instanceId, string content);
参数
| 参数名称 |
是否必填 |
类型 |
描述 |
userId |
是 |
string |
催办人。 |
instanceId |
是 |
string |
催办的流程实例 ID。 |
content |
是 |
string |
催办内容。 |
返回值
无返回值。
示例
this.Engine.WorkItemManager.Urge(
"操作用户Id",
"流程实例Id",
"催办内容");