Documentation ¶
Index ¶
- Variables
- func CreateTask(ProcessInstanceID int, NodeID string, PrevNodeID string, UserIDs []string) ([]int, error)
- func EndNodeHandle(ProcessInstanceID int, Status int) error
- func GateWayNodeHandle(ProcessInstanceID int, CurrentNode *Node, PrevTaskNode Node) error
- func GetInstanceInfo(ProcessInstanceID int) (database.ProcInst, error)
- func GetInstanceNode(ProcessInstanceID int, NodeID string) (Node, error)
- func GetInstanceStartByUser(UserID string, StartIndex int, MaxRows int) ([]database.ProcInst, error)
- func GetInstanceTaskHistory(ProcessInstanceID int) ([]Task, error)
- func GetProcessDefine(ProcessID int) (Process, error)
- func GetProcessIDByInstanceID(ProcessInstanceID int) (int, error)
- func GetProcessIDByProcessName(db *gorm.DB, ProcessName string, Source string) (int, int, error)
- func GetProcessList(Source string) ([]database.ProcDef, error)
- func GetProcessNameByInstanceID(ProcessInstanceID int) (string, error)
- func GetTaskFinishedList(UserID string, StartIndex int, MaxRows int) ([]Task, error)
- func GetTaskInfo(TaskID int) (Task, error)
- func GetTaskToDoList(UserID string, StartIndex int, MaxRows int) ([]Task, error)
- func InstanceNodeIsFinish(ProcessInstanceID int, NodeID string) (bool, error)
- func InstanceRevoke(ProcessInstanceID int, Force bool, RevokeUserID string) error
- func InstanceStart(ProcessID int, BusinessID string, Comment string, VariablesJson string) (int, error)
- func InstanceVariablesSave(ProcessInstanceID int, VariablesJson string) error
- func IsVariable(Key string) bool
- func ProcessNode(ProcessInstanceID int, CurrentNode *Node, PrevNode Node) error
- func ProcessParse(Resource string) (Process, error)
- func ProcessSave(Resource string, CreateUserID string) (int, error)
- func RegisterEvents(Struct any)
- func RemovePrefix(variable string) string
- func ResolveVariables(ProcessInstanceID int, Variables []string) (map[string]string, error)
- func RunNodeEvents(EventNames []string, ID int, CurrentNode *Node, PrevNode Node) error
- func RunProcEvents(EventNames []string, ProcessInstanceID int, RevokeUserID string) error
- func SetVariable(ProcessInstanceID int, variable string) (string, bool, error)
- func StartWorkFlow(DBConfigurator DataBaseConfigurator, ignoreEventError bool, ...)
- func TaskFreeRejectToUpstreamNode(TaskID int, NodeID string, Comment string, VariableJson string) error
- func TaskNextNode(TaskID int) (Node, error)
- func TaskNodeHandle(ProcessInstanceID int, CurrentNode *Node, PrevNode Node) ([]int, error)
- func TaskNodeStatus(TaskID int) (int, int, int, error)
- func TaskPass(TaskID int, Comment string, VariableJson string, DirectlyToWhoRejectedMe bool) error
- func TaskReject(TaskID int, Comment string, VariableJson string) error
- func TaskUpstreamNodeList(TaskID int) ([]Node, error)
- func VerifyEvents(ProcessID int, Nodes ProcNodes) error
- func WhatCanIDo(TaskID int) (TaskAction, error)
- type DataBaseConfigurator
- type ProcNodes
Constants ¶
This section is empty.
Variables ¶
var EventPool = make(map[string]method)
事件池,所有的事件都会在流程引擎启动的时候注册到这里
var IgnoreEventError bool
事件出错,则可能导致流程无法运行下去,在这里添加选项,是否忽略事件出错,让流程继续
var ProcCache = make(map[int]ProcNodes)
定义流程cache其结构为 map [ProcID]ProcNodes
Functions ¶
func CreateTask ¶
func CreateTask(ProcessInstanceID int, NodeID string, PrevNodeID string, UserIDs []string) ([]int, error)
生成任务 返回生成的任务ID数组 思考,一个节点可能分配了N位用户,所以生成节点对应的Task的时候,也需要生成N条Task 一个节点的上级节点可能不是一个,节点驳回的时候,就需要知道往哪个节点驳回,所以需要记录上一个节点是谁
func EndNodeHandle ¶
结束节点处理 结束节点只做收尾工作,将数据库中此流程实例产生的数据归档 Status 流程实例状态 1:已完成 2:撤销
func GateWayNodeHandle ¶
GateWay节点处理
func GetInstanceInfo ¶
获取流程实例信息
func GetInstanceNode ¶
获取流程实例中某个Node 返回 Node
func GetInstanceStartByUser ¶
func GetInstanceStartByUser(UserID string, StartIndex int, MaxRows int) ([]database.ProcInst, error)
获取起始人为特定用户的实例。参数说明: //UserID:用户ID //StartIndex:分页用,开始index //MaxRows:分页用,最大返回行数
func GetInstanceTaskHistory ¶
获取流程实例下任务历史记录
func GetProcessIDByInstanceID ¶
获取流程ID by 流程实例ID
func GetProcessIDByProcessName ¶
获取流程ID、Version by 流程名、来源
func GetProcessList ¶
获得某个source下所有流程信息
func GetProcessNameByInstanceID ¶
获取流程名称 by 流程实例ID
func GetTaskFinishedList ¶
获取特定用户已完成任务列表。参数说明: //UserID:用户ID StartIndex:分页用,开始index MaxRows:分页用,最大返回行数
func GetTaskToDoList ¶
获取特定用户待办任务列表。参数说明: UserID:用户ID StartIndex:分页用,开始index MaxRows:分页用,最大返回行数
func InstanceNodeIsFinish ¶
判断特定实例中某一个节点是否已经完成 注意,finish只是代表节点是不是已经处理,不管处理的方式是驳回还是通过 一个流程实例中,由于驳回等原因,x节点可能出现多次。这里使用统计所有x节点的任务是否都finish来判断x节点是否finish
func InstanceRevoke ¶
撤销流程实例 参数说明: 1、InstanceID 实例ID 2、Force 是否强制撤销,若为false,则只有流程回到发起人这里才能撤销 3、撤销发起人用户ID
func InstanceStart ¶
func InstanceStart(ProcessID int, BusinessID string, Comment string, VariablesJson string) (int, error)
开始流程实例 返回流程实例ID
func InstanceVariablesSave ¶
流程实例变量存入数据库
func ProcessNode ¶
处理节点,如:生成task、进行条件判断、处理结束节点等
func ProcessSave ¶
流程定义保存,返回 流程ID、error
func RegisterEvents ¶
func RegisterEvents(Struct any)
注册一个struct中的所有func 注意,此时不会验证事件方法参数是否正确,因为此时不知道事件到底是“节点事件”还是“流程事件”
func ResolveVariables ¶
解析变量,获取并设置其value,返回map(注意,如果不是变量,则原样存储在map中)
func RunNodeEvents ¶
运行节点事件(1、节点开始 2、节点结束 3、任务结束)
func RunProcEvents ¶
//运行流程事件(目前只有撤销事件)
func SetVariable ¶
从proc_inst_variable表中查找变量,若有则返回变量值,若无则返回false
func StartWorkFlow ¶
func StartWorkFlow(DBConfigurator DataBaseConfigurator, ignoreEventError bool, EventStructs ...any)
传入参数 1、DBConfigurator:数据库配置方法,方法签名func(Params ...string) 2、ignoreEventError:是否忽略事件错误 3、EventStructs:动态参数,事件函数所关联的struct,可传多个
func TaskFreeRejectToUpstreamNode ¶
func TaskFreeRejectToUpstreamNode(TaskID int, NodeID string, Comment string, VariableJson string) error
自由驳回到任意一个上游节点
func TaskNodeHandle ¶
任务节点处理 返回生成的taskid数组
func TaskNodeStatus ¶
任务节点审批状态 返回节点总任务数量、通过数、驳回数、
func TaskReject ¶
驳回任务,在本节点处理完毕的情况下会自动处理下一个节点
func TaskUpstreamNodeList ¶
根据流程定义,列出task所在节点的所有上流节点
func WhatCanIDo ¶
此方法方便前端判断,某一个任务可以执行哪些操作 目前为止,除了传统的通过驳回,本项目还增加了"自由驳回"与"直接提交到上一个驳回我的节点" 而"直接提交到上一个驳回我的节点": 1、在会签节点无法使用 2、在此任务的上一节点并未做驳回时也无法使用 对于前端而言,实现无法提前知道这些信息。 难道让用户一个一个点按钮试错?此方法目的是解决这个困扰
Types ¶
type DataBaseConfigurator ¶
type DataBaseConfigurator func()