`
redxun
  • 浏览: 298395 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSAAS如何让外部业务模块整合Activiti流程的流程审批

阅读更多

如何通过流程审批与外部表单实现对接


在流程的审批过程中,我们有很多业务是需要进行流程的审批的,但实际上这些业务在大部分处理上跟流程上是无关的,他们只是有部分业务的数据需要参与审批的动作而已,如:

销售采购合同,制订采购合同是需要走审批流程,一旦审批完成后,这个采购合同后续的执行是则是由采购合同模块本身的处理来完成,后续跟审批操作没有多太关系。在系统设计上,我们需要开发一个单独的模块进行采购合同的处理,但我们又希望他们有些信息是需要参与审批,并且在审批完成后,能完成对采购合同进行修改。

为了更形象说明这个整合开发原理,我们举一个简单的例子:如供应商入库,前期的供应商信息我们是需要审批的,一旦审批通过后,我们后续的其他业务模块就可以使用供应商的信息。为此JSAAS提供了灵活的处理,本文先介绍其中一方便快捷的方法,本文的前提就是供应商管理模块已经存在。我们需要在供应商表中加一个字段 act_inst_id_,用于存储Activiti的流程实例Id,用于后续追踪供应商的审批过程。

步骤一

根据供应商的信息制作在线表单,如:
1.png

步骤二

编写供应商的数据处理接口

1.通过审批表单的数据来创建供应商

实现流程在启动时创建时调用供应商的创建接口,实现接口ProcessStartAfterHandler即可。

 

2.通过审批表单更新供应商的数据

实现TaskAfterHandler接口即可

3.通过审批表单的审批触发供应商数据的审批状态

实现ProcessEndHandler即可。

代码说明

以下是我们把以上三个实现均放在CrmProviderManager中来实现,代码如下所示

 

 

@Service
public class CrmProviderManager extends BaseManager<CrmProvider> implements 
ProcessStartAfterHandler,TaskAfterHandler,ProcessEndHandler{


     /**
  * 通过Json数据创建供应商
  * @param json
  * @param bpmInstId
  * @return
  */
 public CrmProvider createFromJson(String json,String actInstId){
  CrmProvider crmProvider=JSON.parseObject(json, CrmProvider.class);
  //关联流程实例ID
  crmProvider.setActInstId(actInstId);
  crmProviderDao.create(crmProvider);
  return crmProvider;
 }
 /**
  * 通过Json更新供应商的值
  * @param json
  * @param busKey
  */
 public void updateFromJson(String json,String busKey){
  CrmProvider orgProvider=get(busKey);
  if(orgProvider==null) return;
  CrmProvider newProvider=JSON.parseObject(json,CrmProvider.class);
  try {
   BeanUtil.copyNotNullProperties(orgProvider, newProvider);
  } catch (Exception e) {
   e.printStackTrace();
  }
  crmProviderDao.update(orgProvider);
 }
 
 /**
  * 1.通过流程实例创建完成后通过表单的数据创建供应商信息
  */
 @Override
 public String processStartAfterHandle(String json, String actInstId) {
  CrmProvider crmProvider=createFromJson(json,actInstId);
  crmProvider.setStatus(MStatus.INIT.name());
//返回业务主键给流程实例
  return crmProvider.getProId();
 }
 
 
 /**
  * 2.任务审批完成时调用,用于更新供应商的数据
  */
 @Override
 public void taskAfterHandle(IExecutionCmd cmd, String nodeId, String busKey) {
  updateFromJson(cmd.getJsonData(),busKey);
 }
 /**
  * 3.流程成功审批完成时,对供应商的审批状态进行更新
  */
 @Override
 public void endHandle(BpmInst bpmInst) {
  String busKey=bpmInst.getBusKey();
  CrmProvider crmProvider=crmProviderDao.get(busKey);
  if(crmProvider!=null){
   crmProvider.setStatus(MStatus.ENABLED.name());
   crmProviderDao.update(crmProvider);
  }
 }
 
}

 

 

步骤三

配置流程定义及流程解决方案,实现以下几点,特别是节点上的数据配置处理

关联审批表单

关联审批人员

在节点上配置调用供应商的数据处理接口

3-1.png

4.png

配置完成后,流程启动在审批过程中,就会调用对应的供应商接口实现数据的同步处理了。

若我们需要在供应商管理模块中,点添加的时候,就可以实现启动供应商审批流程,这时我们需要做一点配置。在全局的模块流程绑定模块中,配置供应商模块中的流程,同时在供应商添加管理模块中,调用这个配置处理。如下:

5.png

在供应商管理模块中增加以下调用,用来替换原来的添加处理即可,同时增加查看流程实例的信息调用:

//处理添加
        function _add(){
         //检查是否存在流程配置,若没有,则启用本地的默认配置
         _ModuleFlowWin({
          title:'供应商入库申请',
          moduleKey:'CRM_PROVIDER',
          //failCall:add,
          success:function(){
           grid.load(); 
          }
         });
        }
//查看流程审批实例信息
function checkDetail(actInstId){
         _OpenWindow({
          title:'审批明细',
          width:800,
          height:480,
          url:__rootPath+'/bpm/core/bpmInst/get.do?actInstId='+actInstId
         });
        }

 

这时我们在这个模块中添加供应商时,即可以显示供应商的填写流程申请入口。如下所示:

6.png

同时在供应商管理中可以看到流程审批的相关信息

7.png

 

最终的使用效果如下所示:

http://www.redxun.cn:8020/saweb/login.jsp

分享到:
评论

相关推荐

    Activiti工作流整合Web流程设计器整合

    在实际项目中,整合Activiti工作流和Web流程设计器可以显著提高业务流程的管理效率,降低维护成本。通过对上述步骤的深入理解和实践,你可以构建出符合业务需求的高效工作流管理系统。而提供的"Activiti整合流程设计...

    activiti流程图查看demo

    Activiti 是一个开源的工作流和业务自动化引擎,它支持企业级的业务流程管理(BPM)系统和模型驱动的应用程序。这个"activiti流程图查看demo"是一个示例项目,旨在帮助用户理解如何在Activiti中查看和操作流程图。在...

    Activiti审批汇总流程

    伪汇总审批,就是每一条流程都是独立的,这些独立的流程在走到某个节点的时候,这个节点的审批人可以一次性进行多个任务的审批

    activiti代码实现审批流程的审批

    Activiti是一款开源的工作流引擎,它提供了一套强大的API和基于XML的模型定义语言,用于在Java应用中实现业务流程管理(BPM)系统。在本文中,我们将深入探讨如何利用Activiti代码来实现审批流程的审批功能。 首先...

    Activiti流程图部署及流程图部分操作.pdf

    Activiti 是一个开源的工作流和业务自动化引擎,它支持企业级的业务流程管理(BPM)和业务规则管理(BRM)。在这个主题中,我们主要关注如何在Activiti中进行流程图的部署以及如何操作流程图。 流程图的部署是...

    Springboot 整合activiti及使用案例

    总结来说,SpringBoot 整合 Activiti 能够让开发者快速搭建起工作流管理平台,通过简单的配置和编程,即可实现复杂业务流程的自动化管理。通过学习和实践这个简单的请假审批流程案例,可以深入理解 Activiti 在实际...

    springboot整合activiti5.22实现页面流程设计项目

    springboot整合activiti5.22实现页面流程设计项目,可直接启动,自动建表,调用接口http://localhost:8080/models/newModel,创建流程模型后,可直接访问http://localhost:8080/static/modeler.html?modelId=75001...

    Springboot2整合Activiti5设计器

    在本文中,我们将深入探讨如何将Spring Boot 2与Activiti 5流程设计器进行整合,以便在Java开发环境中实现高效的工作流管理。首先,我们需要理解这两个核心组件:Spring Boot和Activiti。 Spring Boot是Spring框架...

    简单的activiti请假流程

    Activiti 是一个开源的工作流和业务自动化引擎,它被广泛应用于企业级应用中,用于处理业务流程和工作流。这个“简单的activiti请假流程”项目是针对初学者或希望了解Activiti基本操作的一个实例,旨在展示如何在...

    spring boot整合activiti modeler 实例

    在本实例中,我们将探讨如何将这两个优秀框架整合起来,利用 Activiti Modeler 在 Spring Boot 应用中实现业务流程的可视化设计和执行。 首先,我们需要理解 Spring Boot 如何配置 Activiti。在 Spring Boot 项目中...

    整合Activiti 5.22 工具包

    Activiti是一款开源的工作流和业务流程管理(BPM)系统,适用于企业的业务流程自动化。它提供了强大的流程定义、执行和监控能力,支持复杂的业务逻辑,并且易于集成到现有的Java应用程序中。在本工具包中,我们专注...

    Activiti框架与spring整合web网页端实现流程设计器

    终于将Activiti的流程设计器分离出来,与SpringMVC,spring整合了起来,先把工程分享出来,等有时间了在慢慢讲解具体的整合步骤。工程下载之后直接可以运行,只需要改一下数据库连接。访问...

    activiti6.0实现流程图片自定义颜色 当前任务为红色,走过的任务为绿色,自定义文字颜色连线文字显示

    在IT行业中,Activiti是一个非常流行的开源工作流引擎,它被广泛用于企业级应用中来管理业务...总的来说,自定义流程图颜色是Activiti流程管理中一个实用且有价值的特性,它让复杂的业务流程变得更加生动和易于追踪。

    Activiti12流程跟踪任务节点和线高亮显示

    Activiti流程跟踪任务节点和线高亮显示 Activiti是Activiti BPMN 2.0流程引擎的Java实现,提供了强大的流程管理和自动化功能。在Activiti中,我们可以通过流程跟踪功能来追踪和监控流程的执行情况。流程跟踪任务...

    SSM整合Activiti

    SSM整合Activiti是将Spring、SpringMVC和MyBatis三个开源框架集成,并结合Activiti工作流引擎来实现业务流程自动化的一种开发模式。这里我们主要讨论如何在给定的软件环境中(Tomcat 8.5,JDK 7,Activiti 5.18,...

    基于activiti的采购审批流程

    总之,基于Activiti的采购审批流程示例是一个实用的学习资源,它涵盖了流程设计、数据存储、代码实现和注释等多个方面,可以帮助开发者快速掌握Activiti在实际业务中的应用。通过深入研究和实践,我们可以更好地理解...

    activiti5.22-web流程设计器整合demo

    在实际应用中,Activiti不仅可以用于企业内部的审批流程,还可以处理供应链管理、客户服务等多种业务场景。通过Web流程设计器,非技术背景的业务人员也能参与到流程设计中,促进了业务流程的优化和迭代。 总结起来...

    Activiti流程设计器代码

    Activiti 作为一个遵从 Apache 许可的工作流和业务流程管理开源平台,其核心是基于Java的超快速、超稳定的 BPMN2.0 流程引擎,强调流程服务的可嵌入性和可扩展性,同时更加强调面向业务人员。 Activiti 流程引擎...

    Activiti在线流程设计器

    忙活了一个星期左右,查找各种资料,终于将Activiti的流程设计器分离出来,与SpringMVC,spring整合了起来,先把工程分享出来,等有时间了在慢慢讲解具体的整合步骤。工程下载之后直接可以运行,只需要改一下数据库...

    Activiti5学习-activiti流程图中文乱码

    在IT行业中,Activiti是一个非常流行的开源工作流引擎,它被广泛用于企业级应用中来管理业务流程。本文主要探讨的是在使用Activiti5时遇到的流程图中文乱码问题,以及如何解决这个问题。 首先,我们需要理解...

Global site tag (gtag.js) - Google Analytics