低代码开发核心能力:工作流引擎全解析!建议收藏!

从采购审批到项目协作,从合同流转到服务响应,各个环节都涉及到“流程”!工作流可以让所有流程按部就班地重要功能,从创建、到流转、最后完成,是现代化办公的核心能力。

流程引擎本质是解决业务流转过程中,带来的大量的重复的业务逻辑,通过流程引擎可以缩减大量的业务开发成本,减少人为操作的低效率问题,并提供一系列机制确保我们的业务的流畅度与准确性。

目前市面上流程引擎有多种:Osworkflow、JBPM、activiti、flowable、Camunda等这几种主流的方案,今天我介绍一个自研的Java语言工作流引擎,系统采用的是可视化配置,交互性更好,下面给大家简单介绍下jvs-flow。

工作流引擎特点:

  • 拖拽式流程设计器:业务人员无需编写代码,通过拖拽配置(比如开始节点、审批节点、分支节点)定义流程逻辑,支持串行、并行、条件分支等多种流程模式。
  • 表单关联:每个节点可以绑定自定义表单,支持在线表单设计及与已有表单的复用,实现流程与表单的无缝整合。
  • 业务集成:支持与表单引擎、逻辑引擎等无缝集成,例如在审批节点中触发自动化业务逻辑,修改业务数据。
  • 动态配置:支持动态选择审批人、动态添加节点、分支条件组合等功能,适应复杂多变的业务流程需求。
  • API接口:提供标准化API接口,方便第三方系统调用,实现跨系统流程协同。

流程设计页面

流程设置表单

每个节点可以设置自定义表单、可以选用已经有的表单、可以默认发起人的表单 ,可以实现多种审批的方式(会签、或签、按比例、按顺序等),支持多种按钮与逻辑触发的自定义等,可以触发逻辑(自动化业务,也就是人工流产业务可以触发自动功能)。

审批条件分支

通过分支节点可以配置更复杂的分支条件,多个条件组合,解决流程分支多、节点多的问题。

流程触发逻辑

流程执行过程中可以通过自动化节点触发逻辑,或者在审批按钮上触发逻辑,即可在流程审批中同步自动修改业务数据。

自动化节点触发逻辑

审批按钮上触发逻辑

审批人配置

审批方式

审批期限

审批期限可按分钟、小时和天设置。当设置审批期限生效时,增加期限超时后执行配置。

多人审批时的审批方式(会签、或签)

会签是按设置的会签比例流转,或签是只有一人同意时就可以流转

高级设置

①:点击进入高级设置页面

②:终止模式配置,用于在流程申请发起后,发起人是否可以主动终止流程;

③:重启任务配置,适用于流程完成后(拒绝、结束时),用户可以重新发起该流程;

④:自动审批设置,有两种场景可以设置为自动审批,a当节点中存在发起人的时候,b 相邻审批人为同一人的时候,可以设置自动审批;

⑤:动态选择审批人设置:可以在发起流程时界面上选择/修改审批处理的人员;

⑥:动态添加节点设置,在固定配置的流程审批节点执行完后,可以自主的添加下一环节的审批处理的人员;

⑦、⑧、⑨:撤回、审批通过、审批不通过时,都可以触发不同的逻辑。

自动审批

有两种场景可以设置为自动审批,a当节点中存在发起人的时候,b 相邻审批人为同一人的时候,可以设置自动审批

流程操作页

比如我需要申请采购一批卫衣,在页面提交采购单申请

流程进度查询

流程办理

在线demo:**************************

基础框架开源地址:https://gitee.com/software-minister/jvs

全部评论

相关推荐

07-21 13:12
已编辑
北京理工大学 C++
屋顶的闪闪星光:业务上来说,都是核心业务。 方向上来说,Java比客户端强。你这算是业内头部大厂了,干上两年Java之后路很宽,进,可以大厂间跳槽挣钱;退,可以找个国企苟着。但是客户端这东西不好找工作,在北京还有不少工作机会,只要离了一线城市,正经公司招客户端的没有几个。 再有问题私信详细沟通。
点赞 评论 收藏
分享
07-24 19:43
门头沟学院 Java
三面挂 1面 30分钟1. 自我介绍2. 项目 具体聊聊如何做到防止单点故障3. 项目 具体聊聊如何做到10万条数据处理4. 线程池核心参数 线程池具体是怎么运行的?5. 线程池的核心参数你都怎么设置的?主要线程数和最大线程数都怎么设置的?6. synchronized 和 lock 的区别?他俩如果碰到异常了怎么处理?7. JVM的运行时数据区都包含什么?都介绍一下?8. MQ都用来干啥?削峰填谷之外还能干啥?为啥用MQ?9. Mysql的优化 除了索引还有哪些?10. 介绍数据隔离级别11. 介绍缓存穿透?如何解决?布隆过滤器具体实现?它的特点?12. 手撕:10万个数里找最小的10个 小顶堆13. 以后的规划?为啥不留在国外?2面 25分钟1. 英文自我介绍2. 实习项目3. 实习项目4. 线程池核心参数5. 消息队列 如何保证消息不丢失?如何确保消息不被重复消费?如何解耦的?6. 不可重复读和幻读 介绍+如何解决7. synchronized 和 lock 的区别?8. AQS 原理?ReentrantLock 原理?AQS如何实现?CountDownLatch和ReentrantLock都是基于AQS的有啥区别?9. 场景题:1兆内存10兆数据里面都是IP地址,如何筛选出现最多的IP地址10. 场景题:如何保证post接口幂等性?答redis+token实现,会出现锁失效问题?一个场景:锁时间到了怎么办(看门狗)?还有其他场景11. 手撕:单例 要线程安全3面 25分钟1. 自我介绍2. 看你是转码的,计算机基础有没有学过?3. 拷问项目 nginx负载均衡算法了解哪些?轮询让你来做如何实现?redis哨兵具体如何实现的?Mysql锁的实现原理?如何保持强一致性?4. IOC介绍 循环依赖如何解决?交给spring会不会出现内存溢出问题?5. Spring事务里有另一个事务 如何保证事务不会出现问题?6. Spring的拦截器和过滤器区别?7. 手撕:线程排队执行如何实现?8. 未来规划?金融了解多少?口语好吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务