流程常用方法
在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产品化流程管理) |
API方法 | 所在构件 |
---|---|
WorkFlowChainGetProcessDefinitions(获取流程定义信息) | vbase_workflow(VBase流程管理_API) |
WorkFlowChainGetNextActivitiesInfo(获取可提交流程活动信息) | vbase_workflow(VBase流程管理_API) |
WorkFlowChainGetProcessActivities(获取流程活动定义信息) | vbase_workflow(VBase流程管理_API) |
WorkFlowChainGetExecutionUnits(获取指定活动定义或指定待办任务的审批人信息) | vbase_workflow(VBase流程管理_API) |
APIGetBizProcessInstanceRela(API获取业务ID与流程实例关联信息) | vbase_workflow(VBase流程管理_API) |
APIGetProcessTask(API获取流程任务信息) | vbase_workflow(VBase流程管理_API) |
WorkFlowChainTaskComplete(获取指定用户的待办任务) | vbase_workflow(VBase流程管理_API) |
WorkFlowChainTaskComplete(提交任务) | vbase_workflow(VBase流程管理_API) |
WorkFlowChainTaskReject(任务回退) | vbase_workflow(VBase流程管理_API) |
WorkFlowChainTaskRetrieve(任务取回) | vbase_workflow(VBase流程管理_API) |
WorkFlowChainTaskSkip(任务跳转) | vbase_workflow(VBase流程管理_API) |
2. 方法引用
在业务构件中,若需要执行流程管理相关方法或者窗体,需要引入方法或窗体所在的构件。
下面,引入vbase_workflow(VBase流程管理_API)
构件为例。
3. 方法信息
引入构件后,可以双击任意方法(或窗体),查看该方法(或窗体)的相关参数信息(方法输入/方法输出、窗体输入/窗体输出)。
当用户在使用该方法(或窗体)的时候,知道需要传哪些入参,以及返回哪些参数。
可以直接拷贝引用方法的方法输入、方法输出等参数,在实体、方法等对应的变量中,直接粘贴即可。
4. 应用场景
【流程启动】窗体,在
vbase_workflow_facade(VBase流程管理)
构件中,需要引用该构件。参数定义如下:
BizId(业务记录ID)
:业务表单Id字段,业务的标识字段,通过唯一的业务ID标识业务流程(流程框架启动),必须赋值。BizComponentId(业务窗体Id)
:构件编码.窗体编码,用于指定业务表单窗体。topic(待办任务与流程实例标题)
:格式可以自定义,用于待办任务和已办任务等环节查找流程时,标识流程任务名称。BizDataXML(业务快照数据XML)
:VConvertEntityToXML("实体编码"),够记录流程每一步业务数据的值,即可了解流程审批过程业务历史情况。processCode(流程编号)
:在流程定义时,对应的流程编号。若不设置,当多个流程定义关联同一个表单,在启动流程时,需要手动选择启动哪个流程。processDefinitionId(流程定义ID
):一般需要通过其他API获取,然后再作为入参,与流程编号二选一。ProcessInstanceId(流程实例ID)
:可选,不设置则自动生成。StartUserId(流程发起人ID)
:可选,不设置为当前登录人。StartUserName(流程发起人名称
):可选,不设置为当前登录人。
具体场景配置,参考:案例-请假申请。
WorkFlowChainProcessStartByCode(按流程编号启动流程)
方法,在vbase_workflow(VBase流程管理_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是前端方法,打开启用窗体,加载适合的流程应用提供用户手动启用流程。入参如下:
必填项入参有7个:BizId,topic,StartUserId,StartUserName,bizComponentCode,bizWindowCode,snapshotData。平台会根据入参过滤符合条件的流程应用信息,作为待选启用流程。
其中,snapshotData是指业务的快照信息,需要通过调用PrdGetCurrentWindowSnapShow()函数去拿到当前业务单的快照信息传入。
(2)vbase_prd_workflow. API_WorkFlowOpenSimpleStartApplicationWindow(打开启动流程应用窗体(简化))
该API是前端方法,是 API_ WorkFlowOpenStartApplicationWindow 方法的简化API。入参如下:
区别于 API_ WorkFlowOpenStartApplicationWindow ,该api不用传启用人的相关信息。
API_WorkFlowOpenSimpleStartApplicationWindow 会默认获取当前登录人的用户信息,作为打开流程启用窗体的入参信息。
其他的入参和 API_ WorkFlowOpenStartApplicationWindow 一致。
(3)vbase_prd_workflow. API_WorkFlowStartApplication(启动流程应用)
该api是前端方法,是直接自动启动流程应用。入参如下:
必填项入参有7个:bizId,topic,startUserId,startUserName,bizComponentCode,bizWindowCode,snapshotData。平台会根据入参过滤符合条件的流程应用信息,作为待选启用流程。若是筛选出来的流程应用只有1条,就会直接启用该流程,若是有多条,将会弹出窗体,供用户选择启用的流程。用户选择后,将自动启用。
其中,snapshotData是指业务的快照信息,需要通过调用PrdGetCurrentWindowSnapShow()函数去拿到当前业务单的快照信息传入。
(4)vbase_prd_workflow. API_WorkFlowSimpleStartApplication(启动流程应用(简化))
该API是前端方法,是API_WorkFlowStartApplication 方法的简化API。入参如下:
区别于 API_WorkFlowStartApplication ,该api不用传启用人的相关信息。
API_WorkFlowSimpleStartApplication 会默认获取当前登录人的用户信息,作为启用流程的入参信息。
其他的入参和API_ WorkFlowStartApplication 一致。
3. 示例
(1)【vbase_prd_workflow. API_WorkFlowOpenStartApplicationWindow (打开启动流程应用窗体)】与【vbase_prd_workflow. API_WorkFlowOpenSimpleStartApplicationWindow(打开启动流程应用窗体(简化))】
这两个执行方法启动流程,均打开【流程应用启用】窗体。当有多个满足条件的流程应用时,需要手动选择流程应用。
(2)【vbase_prd_workflow. API_WorkFlowStartApplication(启动流程应用)】与【vbase_prd_workflow. API_WorkFlowSimpleStartApplication(启动流程应用(简化))】
这两个执行方法启动流程,均不会打开窗体,只会提示【提交成功】。当有多个满足条件的流程应用时,会自动弹出【选择流程应用】选择。
首先,调用
API_GetBizProcessInstanceRela(API_获取业务ID与流程实例关联信息)
方法,通过传入业务Id(一般匹配表Id),获取流程实例信息。然后,调用
API_GetProcessTask(API_获取流程任务信息)
方法,获取流程任务。由于以上两个方法,均在
vbase_workflow(VBase流程管理_API)
构件中,需要引用该构件。(1)调用
API_GetBizProcessInstanceRela(API_获取业务ID与流程实例关联信息)
方法,参数定义如下:
方法 | 编码 | 名称 | 值来源 |
---|---|---|---|
方法输入 | bizId | 业务Id | 一般匹配业务表Id |
方法输出 | BizProcessInstRela | 业务与流程实例关联信息实体(主要获取流程实例ID) |
(2)调用API_GetProcessTask(API_获取流程任务信息)
方法,参数定义如下:
方法 | 编码 | 名称 | 值来源 |
---|---|---|---|
方法输入 | ProcessInstanceId | 任务实例ID | BizProcessInstRela.ProcessInstanceId |
方法输入 | States | 状态列表 | 可选,多个用逗号分隔;Start(开始)/Running(运行)/Pause(暂停)/Complete(完成)/Cancel(取消) |
方法输出 | Task | 流程任务实体 |
首先,调用
WorkFlowChainGetProcessDefinitions(获取流程定义信息)
方法,通过传入流程定义编号,获取流程定义信息。然后,调用
WorkFlowChainTaskComplete(提交任务)
方法,提交流程任务。由于以上两个方法,均在
vbase_workflow(VBase流程管理_API)
构件中,需要引用该构件。(1)调用
WorkFlowChainGetProcessDefinitions(获取流程定义信息)
方法,参数定义如下:
方法 | 编码 | 名称 |
---|---|---|
方法输入 | processCode | 流程编码 |
方法输出 | processDefinition | 流程定义实体(获取流程定义Id) |
(2)调用WorkFlowChainTaskComplete(提交任务)
方法,参数定义如下:
方法 | 编码 | 名称 |
---|---|---|
方法输入 | ProcessTaskId | 任务 Id |
方法输入 | SubProcExecutionUnitEntity ① ProcessDefinitionId: 获取流程定义信息 方法的返回值 processDefinition.ProcessDefinitionId; ② ActivityId:子流程第一个环节的环节Id; ③ ExecutionUnitValue:执行人 Id; ④ SortNo:执行人顺序,有多个执行人可以决定产生任务的顺序,单人可以不填。 | 子流程执行人实体 |
多用于提交任务时,决定流转线路,需要调用
WorkFlowChainTaskComplete(提交任务)
方法。由于该方法在
vbase_workflow(VBase流程管理_API)
构件中,需要引用该构件。在流程图中设置判断分支节点:
参数定义如下:
方法 | 编码 | 名称 |
---|---|---|
方法输入 | ProcessTaskId | 流程任务 Id |
方法输入 | VariableEntity ① VariableName:IsLeaderApprove ② VariableValue:True——直接走领导审批分支 | 程变量实体 |
常用于重新发起流程之类的动作,用于确定到对应的任务。
(1)调用
WorkFlowChainGetProcessDefinitions(获取流程定义信息)
方法。
方法 | 编码 | 名称 |
---|---|---|
方法输入 | processCode | 流程定义编号 |
方法输出 | processDefinition | 流程定义实体(获取流程定义ID) |
(2)调用WorkFlowChainGetNextActivitiesInfo(获取可提交流程活动信息)
方法。
方法 | 编码 | 名称 | 值来源 |
---|---|---|---|
方法输入 | ProcessDefinitionId | 流程定义Id | processDefinition.ProcessDefinitionId(流程定义ID) |
方法输出 | ActivityCircInfo | 活动流转信息实体(获取CircActivityIds,活动Id) |
(3)调用WorkFlowChainGetProcessActivities(获取流程活动定义信息)
方法。
方法 | 编码 | 名称 | 值 |
---|---|---|---|
方法输入 | ActivityIdString | 活动定义ID | ActivityCircInfo .CircActivityIds(活动Id) |
方法输入 | ProcessDefinitionId | 流程定义ID | processDefinition.ProcessDefinitionId(流程定义ID) |
方法输出 | ProcessActivities | 活动名称(主要获取ProcessActivities.ActivityName活动名称) |
(4)调用WorkFlowChainGetExecutionUnits(获取指定活动定义或指定待办任务的审批人信息)
方法。
方法 | 编码 | 名称 | 值来源 |
---|---|---|---|
方法输入 | ActivityId | 活动定义ID | ActivityCircInfo .CircActivityIds(活动Id) |
方法输入 | ProcessDefinitionId | 流程定义ID | processDefinition.ProcessDefinitionId(流程定义ID) |
方法输出 | ExecutionUnitEntity | 执行人列表实体 |
任务回退,主要时一个环节回退到前面执行的某一环节。
例如:运用方法,从“出库管理员”环节退回到“项目经理”环节,则需要调用方法
WorkFlowChainTaskReject(任务回退)
。由于
WorkFlowChainTaskReject(任务回退)
方法,在vbase_workflow(VBase流程管理_API)
构件中,需要引用该构件。参数定义如下:
用于在下一环节还未开始处理前,对流程进行取回操作。
例如:现在流程已经流转到“项目经理”环节,“项目组长”环节的执行人想取回任务,则需要调用方法
WorkFlowChainTaskRetrieve(任务取回)
。由于
WorkFlowChainTaskRetrieve(任务取回)
方法,在vbase_workflow(VBase流程管理_API)
构件中,需要引用该构件。参数定义如下: