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

Go语言流程引擎go-activiti

项目传送门go-activiti

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

节点事件回调

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

情况一:没有审批人

这种节点到达后,会尝试回调业务,如果业务没有任务处理,直接跳过此节点(会流历史数据)
go-activiti流程引擎节点事件回调_第1张图片

情况二:有审批人

这里需在画流程图时设置监听事件(TaskListeners)
go-activiti流程引擎节点事件回调_第2张图片
这里只需设置监听事件的类型即可

注册业务回调类

需实现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,默认成功,否在抛出异常,流程会回滚。
go-activiti流程引擎节点事件回调_第3张图片

你可能感兴趣的:(activiti,go,go,activiti)