Skip to main content

流程常用方法

在V平台中,提供了配置流程的常用方法。

1. 流程常用方法

流程启动可以通过执行方法、或者打开流程启动窗体两种方式启动流程,相关方法如下:

API方法 or 规则所在构件
打开窗体并返回数据,打开【流程启动】窗体vbase_workflow_facade(VBase流程管理)
WorkFlowChainProcessStartByCode(按流程编号启动流程)vbase_workflow(VBase流程管理_API)
API_WorkFlowOpenStartApplicationWindow (打开启动流程应用窗体)vbaseprd_workflow(vbase产品化流程管理)
API_WorkFlowStartApplication(启动流程应用)vbaseprd_workflow(vbase产品化流程管理)
API_WorkFlowOpenSimpleStartApplicationWindow(打开启动流程应用窗体(简化))vbaseprd_workflow(vbase产品化流程管理)
API_WorkFlowSimpleStartApplication(启动流程应用(简化))vbaseprd_workflow(vbase产品化流程管理)

2. 方法引用

在业务构件中,若需要执行流程管理相关方法或者窗体,需要引入方法或窗体所在的构件。

下面,引入vbase_workflow(VBase流程管理_API)构件为例。

img

img

3. 方法信息

引入构件后,可以双击任意方法(或窗体),查看该方法(或窗体)的相关参数信息(方法输入/方法输出、窗体输入/窗体输出)。

当用户在使用该方法(或窗体)的时候,知道需要传哪些入参,以及返回哪些参数。

info

可以直接拷贝引用方法的方法输入、方法输出等参数,在实体、方法等对应的变量中,直接粘贴即可。

img

4. 应用场景

4.1 打开流程启动窗体启动流程

【流程启动】窗体,在vbase_workflow_facade(VBase流程管理)构件中,需要引用该构件。

参数定义如下:

  • BizId(业务记录ID)业务表单Id字段,业务的标识字段,通过唯一的业务ID标识业务流程(流程框架启动),必须赋值
  • BizComponentId(业务窗体Id)构件编码.窗体编码,用于指定业务表单窗体。
  • topic(待办任务与流程实例标题)格式可以自定义,用于待办任务和已办任务等环节查找流程时,标识流程任务名称。
  • BizDataXML(业务快照数据XML)VConvertEntityToXML("实体编码"),够记录流程每一步业务数据的值,即可了解流程审批过程业务历史情况。
  • processCode(流程编号):在流程定义时,对应的流程编号。若不设置,当多个流程定义关联同一个表单,在启动流程时,需要手动选择启动哪个流程。
  • processDefinitionId(流程定义ID):一般需要通过其他API获取,然后再作为入参,与流程编号二选一。
  • ProcessInstanceId(流程实例ID):可选,不设置则自动生成。
  • StartUserId(流程发起人ID):可选,不设置为当前登录人。
  • StartUserName(流程发起人名称):可选,不设置为当前登录人。

img

具体场景配置,参考:案例-请假申请

4.2 按流程定义编号启动流程

WorkFlowChainProcessStartByCode(按流程编号启动流程)方法,在vbase_workflow(VBase流程管理_API)构件中,需要引用该构件。

参数定义如下:

img

img

具体场景配置,参考:案例-取上一步执行人的直接上级

4.3 执行流程应用API启动流程

1. 介绍

平台提供了调用API去启动流程应用的功能。一共有四个API,分别是:

  • vbase_prd_workflow. API_WorkFlowOpenStartApplicationWindow (打开启动流程应用窗体);
  • vbase_prd_workflow. API_WorkFlowStartApplication(启动流程应用);
  • vbase_prd_workflow. API_WorkFlowOpenSimpleStartApplicationWindow(打开启动流程应用窗体(简化)) ;
  • vbase_prd_workflow. API_WorkFlowSimpleStartApplication(启动流程应用(简化))

其中,"API_WorkFlowOpenStartApplicationWindow""API_WorkFlowOpenSimpleStartApplicationWindow" 是通过打开流程应用启用窗体,由用户手动启用流程。“API_WorkFlowStartApplication”“API_WorkFlowSimpleStartApplication” 是直接调用API自动启用。

具体场景配置,参考:案例-流程应用启动流程

2.使用方式

(1)vbase_prd_workflow. API_WorkFlowOpenStartApplicationWindow (打开启动流程应用窗体)

该API是前端方法,打开启用窗体,加载适合的流程应用提供用户手动启用流程。入参如下:

img

必填项入参有7个:BizId,topic,StartUserId,StartUserName,bizComponentCode,bizWindowCode,snapshotData。平台会根据入参过滤符合条件的流程应用信息,作为待选启用流程。

其中,snapshotData是指业务的快照信息,需要通过调用PrdGetCurrentWindowSnapShow()函数去拿到当前业务单的快照信息传入。

(2)vbase_prd_workflow. API_WorkFlowOpenSimpleStartApplicationWindow(打开启动流程应用窗体(简化))

该API是前端方法,是 API_ WorkFlowOpenStartApplicationWindow 方法的简化API。入参如下:

img

区别于 API_ WorkFlowOpenStartApplicationWindow ,该api不用传启用人的相关信息。

API_WorkFlowOpenSimpleStartApplicationWindow 会默认获取当前登录人的用户信息,作为打开流程启用窗体的入参信息。

其他的入参和 API_ WorkFlowOpenStartApplicationWindow 一致。

(3)vbase_prd_workflow. API_WorkFlowStartApplication(启动流程应用)

该api是前端方法,是直接自动启动流程应用。入参如下:

img

必填项入参有7个:bizId,topic,startUserId,startUserName,bizComponentCode,bizWindowCode,snapshotData。平台会根据入参过滤符合条件的流程应用信息,作为待选启用流程。若是筛选出来的流程应用只有1条,就会直接启用该流程,若是有多条,将会弹出窗体,供用户选择启用的流程。用户选择后,将自动启用。

其中,snapshotData是指业务的快照信息,需要通过调用PrdGetCurrentWindowSnapShow()函数去拿到当前业务单的快照信息传入。

(4)vbase_prd_workflow. API_WorkFlowSimpleStartApplication(启动流程应用(简化))

该API是前端方法,是API_WorkFlowStartApplication 方法的简化API。入参如下:

img

区别于 API_WorkFlowStartApplication ,该api不用传启用人的相关信息。

API_WorkFlowSimpleStartApplication 会默认获取当前登录人的用户信息,作为启用流程的入参信息。

其他的入参和API_ WorkFlowStartApplication 一致。

3. 示例

(1)【vbase_prd_workflow. API_WorkFlowOpenStartApplicationWindow (打开启动流程应用窗体)】与【vbase_prd_workflow. API_WorkFlowOpenSimpleStartApplicationWindow(打开启动流程应用窗体(简化))】

这两个执行方法启动流程,均打开【流程应用启用】窗体。当有多个满足条件的流程应用时,需要手动选择流程应用。

img

img

(2)【vbase_prd_workflow. API_WorkFlowStartApplication(启动流程应用)】与【vbase_prd_workflow. API_WorkFlowSimpleStartApplication(启动流程应用(简化))】

这两个执行方法启动流程,均不会打开窗体,只会提示【提交成功】。当有多个满足条件的流程应用时,会自动弹出【选择流程应用】选择。

img

4.4 获取流程任务Id

首先,调用API_GetBizProcessInstanceRela(API_获取业务ID与流程实例关联信息)方法,通过传入业务Id(一般匹配表Id),获取流程实例信息。

然后,调用 API_GetProcessTask(API_获取流程任务信息)方法,获取流程任务。

由于以上两个方法,均在vbase_workflow(VBase流程管理_API)构件中,需要引用该构件。

(1)调用API_GetBizProcessInstanceRela(API_获取业务ID与流程实例关联信息)方法,参数定义如下:

方法编码名称值来源
方法输入bizId业务Id一般匹配业务表Id
方法输出BizProcessInstRela业务与流程实例关联信息实体(主要获取流程实例ID)

img

img

(2)调用API_GetProcessTask(API_获取流程任务信息)方法,参数定义如下:

方法编码名称值来源
方法输入ProcessInstanceId任务实例IDBizProcessInstRela.ProcessInstanceId
方法输入States状态列表可选,多个用逗号分隔;Start(开始)/Running(运行)/Pause(暂停)/Complete(完成)/Cancel(取消)
方法输出Task流程任务实体

img

img

4.5 提交任务,下一步是子流程,指定子流程的执行人

首先,调用WorkFlowChainGetProcessDefinitions(获取流程定义信息)方法,通过传入流程定义编号,获取流程定义信息。

然后,调用WorkFlowChainTaskComplete(提交任务)方法,提交流程任务。

由于以上两个方法,均在vbase_workflow(VBase流程管理_API)构件中,需要引用该构件。

(1)调用WorkFlowChainGetProcessDefinitions(获取流程定义信息)方法,参数定义如下:

方法编码名称
方法输入processCode流程编码
方法输出processDefinition流程定义实体(获取流程定义Id)

img

img

(2)调用WorkFlowChainTaskComplete(提交任务)方法,参数定义如下:

方法编码名称
方法输入ProcessTaskId任务 Id
方法输入SubProcExecutionUnitEntity
① ProcessDefinitionId:获取流程定义信息方法的返回值 processDefinition.ProcessDefinitionId;
② ActivityId:子流程第一个环节的环节Id;
③ ExecutionUnitValue:执行人 Id;
④ SortNo:执行人顺序,有多个执行人可以决定产生任务的顺序,单人可以不填。
子流程执行人实体

img

4.6 提交任务时,根据流程变量决定流转线路

多用于提交任务时,决定流转线路,需要调用WorkFlowChainTaskComplete(提交任务)方法。

由于该方法在vbase_workflow(VBase流程管理_API)构件中,需要引用该构件。

img

在流程图中设置判断分支节点:

img

参数定义如下:

方法编码名称
方法输入ProcessTaskId流程任务 Id
方法输入VariableEntity
① VariableName:IsLeaderApprove
② VariableValue:True——直接走领导审批分支
程变量实体

img

4.7 获取可提交流程活动信息与执行人信息

常用于重新发起流程之类的动作,用于确定到对应的任务。

(1)调用WorkFlowChainGetProcessDefinitions(获取流程定义信息)方法。

方法编码名称
方法输入processCode流程定义编号
方法输出processDefinition流程定义实体(获取流程定义ID)

img

img

(2)调用WorkFlowChainGetNextActivitiesInfo(获取可提交流程活动信息)方法。

方法编码名称值来源
方法输入ProcessDefinitionId流程定义IdprocessDefinition.ProcessDefinitionId(流程定义ID)
方法输出ActivityCircInfo活动流转信息实体(获取CircActivityIds,活动Id)

img

img

(3)调用WorkFlowChainGetProcessActivities(获取流程活动定义信息)方法。

方法编码名称
方法输入ActivityIdString活动定义IDActivityCircInfo .CircActivityIds(活动Id)
方法输入ProcessDefinitionId流程定义IDprocessDefinition.ProcessDefinitionId(流程定义ID)
方法输出ProcessActivities活动名称(主要获取ProcessActivities.ActivityName活动名称)

img

img

(4)调用WorkFlowChainGetExecutionUnits(获取指定活动定义或指定待办任务的审批人信息)方法。

方法编码名称值来源
方法输入ActivityId活动定义IDActivityCircInfo .CircActivityIds(活动Id)
方法输入ProcessDefinitionId流程定义IDprocessDefinition.ProcessDefinitionId(流程定义ID)
方法输出ExecutionUnitEntity执行人列表实体

img

img

4.8 任务回退

任务回退,主要时一个环节回退到前面执行的某一环节。

例如:运用方法,从“出库管理员”环节退回到“项目经理”环节,则需要调用方法WorkFlowChainTaskReject(任务回退)

img

由于WorkFlowChainTaskReject(任务回退)方法,在vbase_workflow(VBase流程管理_API)构件中,需要引用该构件。

参数定义如下:

img

img

4.9 任务取回

用于在下一环节还未开始处理前,对流程进行取回操作。

例如:现在流程已经流转到“项目经理”环节,“项目组长”环节的执行人想取回任务,则需要调用方法WorkFlowChainTaskRetrieve(任务取回)

img

由于WorkFlowChainTaskRetrieve(任务取回)方法,在vbase_workflow(VBase流程管理_API)构件中,需要引用该构件。

参数定义如下:

img

img

4.10 任务跳转

任务跳转,主要是由一个环节跳转到另一个环节。

例如:由项目经理环节,跳转至出库管理员环节,则需要调用方法WorkFlowChainTaskSkip(任务跳转)

img

由于WorkFlowChainTaskSkip(任务跳转)方法,在vbase_workflow(VBase流程管理_API)构件中,需要引用该构件。

参数定义如下:

img

img