activiti7-3-与业务系统关联

1. 思考

我们可以想一下在一个业务系统中,例如我们公司有一套系统,里面有请假流程、调岗流程、调薪流程、面试流程。
例如,请假流程,那在业务系统里面  你是不是得有请假表,然后有相关请假的内容,
那问题来了   这些相关的请假的内容是存在Activiti的这25张表里面还是存在我们的业务系统里面呢?
结论:肯定是存在我们的公司业务系统之中,因为你请假相关的内容可能会有很多.

下面DB1代表公司的业务系统,DB2代表activiti的25张表的库
例如,请假内容可能会有:

  • 请假当事人
  • 请假开始时间
  • 请假结束时间
  • 事由
  • 状态
  • 类型

而这些信息,是不会在activiti里面的,而是要存在我们自己的业务系统之中
现在要保存一个请假的信息,这些就要保存到DB1里面去,这个DB1里面要有一张请假表(holiday),将来有一个员工发起请假,就应该往里面存一条记录,但,这条记录和activiti有关系吗?很明显 毫无关联。

那activiti想要控制这个请假流程,就要和业务系统进行关联,就涉及到关联方式

1.1 关联方式

在DB1中holiday每条记录都有一个id,也就是主键,然后存入activiti的bussinessKey
关键就是在activiti这25张表里面,哪些表或者哪些字段是与业务系统相关联的,我这里直接找出来
在表act_ru_execution这个表中存在一个bussinessKey,这就可以进行关联。当然不仅仅是这张表,其他表应该也有,但这张表是最重要也是最核心的。

2. 根据流程定义的key启动一个流程实例

2.1 确认流程是否部署

通过查看act_ge_bytearray表可以看到

2.2 查看流程定义

通过查看act_re_procdef表

2.3 指定bussinessKey启动流程实例

public static void main(String[] args){
        //1.获得引擎
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        //2.得到runtimeService
        RuntimeService runtimeService = processEngine.getRuntimeService();
        //3.准备启动流程实例,同时指定业务标识businessKey,其本身就是请假单id
        ProcessInstance instance = runtimeService.startProcessInstanceByKey("holiday", "1001");
        System.out.println(instance.getBusinessKey());
    }

2.4 观察act_ru_execution

如果bussinessKey有值,即为关联成功
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值