Activiti通过代码生成流程图

activiti除了可以通过流程设计器画流程图之外,其实也可以通过代码生成流程图。
activiti的流程图核心对象就是BpmnModel,只要生成了这个BpmnModel对象,流程图就OK了。
示例代码如下:

//创建bpmn模型
  BpmnModel model = new BpmnModel();
  Process process = new Process();
  model.addProcess(process);
  process.setId("my-process");


//创建bpmn元素
  process.addFlowElement(createStartEvent());
  process.addFlowElement(createUserTask("task1", "First task", "fred"));
  process.addFlowElement(createUserTask("task2", "Second task", "john"));
  process.addFlowElement(createEndEvent());


  process.addFlowElement(createSequenceFlow("start", "task1"));
  process.addFlowElement(createSequenceFlow("task1", "task2"));
  process.addFlowElement(createSequenceFlow("task2", "end"));


  // 2.生成BPMN自动布局
  new BpmnAutoLayout(model).execute();
  
  创建task
protected UserTask createUserTask(String id, String name, String assignee) {
  UserTask userTask = new UserTask();
  userTask.setName(name);
  userTask.setId(id);
  userTask.setAssignee(assignee);
  return userTask;
}


//创建箭头
protected SequenceFlow createSequenceFlow(String from, String to) {
  SequenceFlow flow = new SequenceFlow();
  flow.setSourceRef(from);
  flow.setTargetRef(to);
  return flow;
}


protected StartEvent createStartEvent() {
  StartEvent startEvent = new StartEvent();
  startEvent.setId("start");
  return startEvent;
}


protected EndEvent createEndEvent() {
  EndEvent endEvent = new EndEvent();
  endEvent.setId("end");
  return endEvent;
}


上面的代码是上网找的,代码生成流程图其实最麻烦的就是节点的定位问题。
而代码new BpmnAutoLayout(model).execute();就帮我们自动布局了,这样只要生成想要的节点就可以生成bpmn对象了.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,442评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,538评论 25 709
  • 什么是“番茄工作法” 一种使你保持专注于当下的技术。因此,它帮你有效地处理“中断”,借而保持对当下事情的专注。 处...
    水如歌阅读 1,670评论 4 0
  • 今天中午女儿放学回家后,说妈妈我跟你商量个事呗,想吃香酥馍片了(馒头干),我当时正在做饭跟宝贝说好的,等会我做完饭...
    三年级二班许诺阅读 1,222评论 0 0
  • 我 在北方 已入夜 ,凌晨两点 灯在街边,迷红了双眼 劲松路像是你未读的诗 和你,随手撕掉的那页 路上的人呐,走得...
    野狗狗阅读 1,144评论 0 0