跳转至

流程工作项管理接口

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

基本用法

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