go-activiti流程引擎节点事件回调

Go语言流程引擎go-activiti

项目传送门go-activiti

参考Activiti实现,满足部分功能。项目还在完善中,欢迎activiti爱好者加入。

节点事件回调

这里分两种情况,任务节点有没有设置审批用户和用户组

情况一:没有审批人

这种节点到达后,会尝试回调业务,如果业务没有任务处理,直接跳过此节点(会流历史数据)
在这里插入图片描述

情况二:有审批人

这里需在画流程图时设置监听事件(TaskListeners)
在这里插入图片描述
这里只需设置监听事件的类型即可

注册业务回调类

需实现IActiviti,注册构造器,参考iActivitiDemo.go文件
注意这里的注册名称为流程名称,区分大小写。从ExecutionEntity可以拿到流程相关的数据。

func init() {
    
    
	RegisterConstructor("userAuto", NewTestIActiviti)
}

func NewTestIActiviti(entity ExecutionEntity) IActiviti {
    
    
	return &TestIActiviti{
    
    
		Entity: entity,
	}
}
func (test *TestIActiviti) User001() (code interface{
    
    }, err error) {
    
    
	variable := test.Entity.GetVariable()
	fmt.Println(variable)
	return common.ACTIVITI_HANDLER_CODE, nil
}

func (test *TestIActiviti) User002() (code interface{
    
    }, err error) {
    
    
	return common.ACTIVITI_HANDLER_CODE, nil
}

这里的User001和User002对应节点名称,区分大小写,即设置了监听事件,到节点时会执行这里的方法。返回值是common.ACTIVITI_HANDLER_CODE,默认成功,否在抛出异常,流程会回滚。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_34758074/article/details/113094682
今日推荐