跳转至

流程实例管理接口

流程实例操作相关接口

基本用法

IWorkflowInstanceManager 接口对象通过 Engine 对象获取,在表单后台的自定义代码界面可以通过以下方式调用 IWorkflowInstanceManager 的任何方法。

WorkflowTemplate node = this.Engine.WorkflowTemplate.GetDraftTemplate("sxlsbdew4xu273");

接口列表

创建一个流程实例

功能描述

创建流程实例。

接口定义

string CreateInstance(
    string bizObjectId,
    string schemaCode,
    int workflowVersion,
    string instanceId,
    string originator,
    bool isChildInstance,
    string parentInstanceID,
    string parentActivityName,
    int parentActivityTokenId,
    bool notify);

参数

参数名称 是否必填 类型 描述
bizObjectId string 业务对象的 ID。
schemaCode string 流程模板编码。
workflowVersion int 流程版本号。
instanceId string 流程实例的 ID,如果为空则由 Engine 自动生成。
originator string 发起人。
isChildInstance bool 是否为子实例。
parentInstanceID string 子实例对应的父实例 ID。
parentActivityName string 子实例对应的父实例 Activity ID。
parentActivityTokenId int 子实例对应的父实例 TokenID。
notify bool 消息提醒标志,默认为 true

返回值

类型 描述
string 创建成功返回实例 ID,否则返回 NullInstanceID

示例

string instanceId = this.Engine.WorkflowInstanceManager.CreateInstance(
    "bizObjectId",
    "schemaCode",
    10,
    "instanceId",
    "发起人用户 Id",
    true,
    "父流程 Id",
    "父流程中的活动名称",
    123,
    true);

创建流程实例

功能描述

创建流程实例。

接口定义

string CreateInstanceByDefault(
    string bizObjectId,
    string schemaCode,
    string originator);

参数

参数名称 是否必填 类型 描述
bizObjectId string 数据实例 ID。
schemaCode string 流程模板编码。
originator string 发起人。

返回值

类型 描述
string 流程实例 ID。

示例

string instanceId = this.Engine.WorkflowInstanceManager.CreateInstanceByDefault(
    "bizObjectId",
    "schemaCode",
    "发起人用户 Id");

获取流程实例状态

功能描述

获取流程实例状态。

接口定义

WorkflowInstance GetWorkflowInstance(string instanceId);

参数

参数名称 是否必填 类型 描述
instanceId string 流程实例 ID。

返回值

类型 描述
WorkflowInstance 流程实例上下文。

示例

H3.Workflow.Instance.WorkflowInstance instance = this.Engine.WorkflowInstanceManager.GetWorkflowInstance("流程实例 Id");

根据 BizObjectID 获取流程实例集合

功能描述

根据业务对象 ID 获取流程实例集合。

接口定义

WorkflowInstance[] GetWorkflowInstancesByBizObject(string schemaCode, string bizObjectId);

参数

参数名称 是否必填 类型 描述
schemaCode string 数据模型编码。
bizObjectId string 业务实例 ID。

返回值

类型 描述
WorkflowInstance[] 当前数据绑定的流程实例集合。

示例

H3.Workflow.Instance.WorkflowInstance[] instances = this.Engine.WorkflowInstanceManager.GetWorkflowInstancesByBizObject("表单编码", "业务数据 Id");

获取父流程工作流信息

功能描述

获取父流程工作流信息。

接口定义

ParentInstanceInfo GetParentInstanceInfo(string instanceId);

参数

参数名称 是否必填 类型 描述
instanceId string 流程实例 ID。

返回值

类型 描述
ParentInstanceInfo 父流程实例信息。

示例

H3.Workflow.Instance.ParentInstanceInfo parentInstance = this.Engine.WorkflowInstanceManager.GetParentInstanceInfo("流程实例 Id");

删除流程实例

功能描述

删除流程实例。

接口定义

void RemoveInstance(string instanceId, bool autoUpdateBizObject);

参数

参数名称 是否必填 类型 描述
instanceId string 需删除的流程实例 ID。
autoUpdateBizObject bool 是否更新 BO.WorkflowInstanceId 字段。

返回值

无。

示例

this.Engine.WorkflowInstanceManager.RemoveInstance("流程实例 Id", true);

发送消息驱动流程实例运行

功能描述

发送消息驱动流程实例运行。

接口定义

WorkflowInstanceChangeSet SendMessage(Message message);

参数

参数名称 是否必填 类型 描述
message Message 发送给流程实例的消息。

返回值

类型 描述
WorkflowInstanceChangeSet 消息处理结果。

示例

H3.Workflow.Messages.ActivateInstanceMessage activiteinstanceMessage = new H3.Workflow.Messages.ActivateInstanceMessage(this.Request.InstanceId);
this.Request.Engine.WorkflowInstanceManager.SendMessage(activiteinstanceMessage);

发起流程实例

功能描述

发起流程实例。

接口定义

WorkflowInstanceChangeSet OriginateInstance(
   string userId,
   string schemaCode,
   int workflowVersion,
   string bizObjectId,
   string instanceId,
   AccessMethod accessPoint,
   bool finishStartActivity,
   string destActivityCode,
   bool returnWorkItem,
   out string workItemId,
   out string errorMessage);

参数

参数名称 是否必填 类型 描述
userId string 用户 ID。
schemaCode string 数据模型编码。
workflowVersion int 流程模板版本号。
bizObjectId string 数据模型实例 ID。
instanceId string 流程实例 ID。
accessPoint AccessMethod 接入方式。
finishStartActivity bool 是否自动提交第一个活动。
destActivityCode string 自动提交后的目标活动节点。
returnWorkItem bool 是否返回工作项。
workItemId out string 工作项 ID。
errorMessage out string 错误信息。

返回值

类型 描述
WorkflowInstanceChangeSet 流程状态集合。

示例

string bizObjectId = "XXXXXXX-XXXX-XXX";
string instanceId = "XXXX-XXX-XXXXX";
string workItemID = string.Empty;
string errorMsg = string.Empty;
H3.Workflow.Template.WorkflowTemplate wfTemp = this.Request.Engine.WorkflowTemplateManager.GetDefaultWorkflow(bizData.Schema.SchemaCode);
this.Request.Engine.WorkflowInstanceManager.OriginateInstance(
    this.Request.UserContext.UserId, 
    bizData.Schema.SchemaCode,
    wfTemp.WorkflowVersion, 
    bizObjectId, 
    instanceId, 
    H3.Workflow.WorkItem.AccessMethod.Web,
    true, 
    string.Empty, 
    true, 
    out workItemID, 
    out errorMsg);