跳转至

流程工作项管理接口

工作项管理器用于工作项的添加、完成、取消、更新等操作。

基本用法

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。

返回值

类型 描述
ErrorCode 执行结果。

示例

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 执行结果。

示例

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 执行结果。

示例

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 操作名称。

返回值

类型 描述
ErrorCode 错误编码。

示例

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",
            "催办内容");