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,默認成功,否在拋出異常,流程會回滾。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章