1. 事件含义

流程的核心,说到底就是提交前节点的效验和过程中的节点效验和节点后生效。

节点前效验:即是否满足流程发起条件,如果不满足最后生效必然会异常,如果满足才可以发起,最后走完审批流才不会异常

节点效验:流程过程中的效验,即到达该节点不效验,当你填单据在该节点提交时,进行效验是否合理 (过程效验)

节点后生效:即你走完这条流程要做的事情,要生效莫个业务

2. 节点事件分类

1. 他们是有传参形式的,一般来说节点前效验主要包括:保存和提交,即效验的情况,我们一般选择配置提交就行。

2.节点效验事件包括:无条件,通过和不通过,一般我们根据自身业务选择,一般就是节点通过执行

3. 节点后事件包括:无条件,通过和不通过,一般选通过,通过了才去最后生效莫个逻辑

3. 传参形式

上述说的三种节点统一这样配置

代码项

{
"param": {
"wf_inst_id": "@api:inst.id@"
},
"plugin": "xxxx"
}

其中wf_inst_id参数 为当前节点id,根据他可以拿到单据所有信息,我们就能进行抽取来实现业务联动

plugin里面xxxx是云函数名字

配置好这些我们就将数据传到了云函数里面了

4. 节点前不符合规定抛异常

代码

raise errors.DATA_NOT_FOUND.description('不符合走流程的异常提示语')


5.流程数据解析

我们拿到wf_inst_id此时就要根据id解析流程里面参数,比如拿到调动人id(employee_id)进行薪酬联动

然后需要找到3中plugin的名称,建立一个云函数,将标准解析代码拷贝进去

这里我提供一个v3的标准解析代码:

代码块

class WorkflowEvent(object):
def execute(self, param):
wf_inst_id = param['wf_inst_id']
if wf_inst_id:
all_data = CustomerUtil.call_open_api('workflow.get.wf.all.v3', {
"inst_id": wf_inst_id
})
form_id = all_data['data']['form_data']['id']
business_id = all_data['data']['wf']['business_id']

# 获取表单数据
result = CustomerUtil.call_open_api("workflow.form.get", {
"id": form_id,
"business_id": business_id
})
if result and result['success']:
data = result['data']['data']
form_data = data['form']
employee_id = form_data['employee_id']

拿到人的id及想要的信息之后,你就可以正式写你的生效逻辑了~



以上感谢您的查看



  • 无标签