; <;definitions xm" />
当前位置:文档之家› 工作流Activiti的学习总结(十二) activiti官方十分钟快速学习

工作流Activiti的学习总结(十二) activiti官方十分钟快速学习

根据activiti官方提供的编写1.财务部门填写月财务报告2.股东审核月财务审计报告流程图:流程配置:<;?xml version=";1.0"; encoding=";UTF-8";?>;<;definitions xmlns=";/spec/BPMN/20100524/MODEL"; xmlns:xsi=";/2001/XMLSchema-instance";xmlns:activiti=";/bpmn";xmlns:bpmndi=";/spec/BPMN/20100524/DI";xmlns:omgdc=";/spec/DD/20100524/DC";xmlns:omgdi=";/spec/DD/20100524/DI";typeLanguage=";/2001/XMLSchema";expressionLanguage=";/1999/XPath";targetNamespace=";/bpmn20";>;<;process id=";financialReport"; name=";Monthly financial report reminder process";>;<;startEvent id=";startevent1"; name=";月财务报告审核开始";>;<;/startEvent>; <;!-- 采用用户组为accountancy编写财务报告 -->;<;userTask id=";usertask1"; name=";财务编写月财务报告"; activiti:candidateGroups=";accountancy";>;<;/userTask>;<;userTask id=";usertask2"; name=";股东审核月财务审计报告"; activiti:candidateGroups=";management";>;<;/userTask>;<;endEvent id=";endevent1"; name=";月财务报告审核结束";>;<;/endEvent>;<;sequenceFlow id=";flow1"; name=";"; sourceRef=";startevent1"; targetRef=";usertask1";>;<;/sequenceFlow>;<;sequenceFlow id=";flow2"; name=";"; sourceRef=";usertask1"; targetRef=";usertask2";>;<;/sequenceFlow>;<;sequenceFlow id=";flow3"; name=";"; sourceRef=";usertask2"; targetRef=";endevent1";>;<;/sequenceFlow>;<;/process>;<;bpmndi:BPMNDiagram id=";BPMNDiagram_financialReport";>;<;bpmndi:BPMNPlane bpmnElement=";financialReport"; id=";BPMNPlane_financialReport";>;<;bpmndi:BPMNShape bpmnElement=";startevent1"; id=";BPMNShape_startevent1";>;<;omgdc:Bounds height=";35"; width=";35"; x=";30"; y=";200";>;<;/omgdc:Bounds>;<;/bpmndi:BPMNShape>;<;bpmndi:BPMNShape bpmnElement=";usertask1"; id=";BPMNShape_usertask1";>;<;omgdc:Bounds height=";55"; width=";105"; x=";125"; y=";190";>;<;/omgdc:Bounds>;<;/bpmndi:BPMNShape>;<;bpmndi:BPMNShape bpmnElement=";usertask2"; id=";BPMNShape_usertask2";>; <;omgdc:Bounds height=";55"; width=";105"; x=";290"; y=";190";>;<;/omgdc:Bounds>;<;/bpmndi:BPMNShape>;<;bpmndi:BPMNShape bpmnElement=";endevent1"; id=";BPMNShape_endevent1";>; <;omgdc:Bounds height=";35"; width=";35"; x=";455"; y=";200";>;<;/omgdc:Bounds>;<;/bpmndi:BPMNShape>;<;bpmndi:BPMNEdge bpmnElement=";flow1"; id=";BPMNEdge_flow1";>;<;omgdi:waypoint x=";65"; y=";217";>;<;/omgdi:waypoint>;<;omgdi:waypoint x=";125"; y=";217";>;<;/omgdi:waypoint>;<;/bpmndi:BPMNEdge>;<;bpmndi:BPMNEdge bpmnElement=";flow2"; id=";BPMNEdge_flow2";>;<;omgdi:waypoint x=";230"; y=";217";>;<;/omgdi:waypoint>;<;omgdi:waypoint x=";290"; y=";217";>;<;/omgdi:waypoint>;<;/bpmndi:BPMNEdge>;<;bpmndi:BPMNEdge bpmnElement=";flow3"; id=";BPMNEdge_flow3";>;<;omgdi:waypoint x=";395"; y=";217";>;<;/omgdi:waypoint>;<;omgdi:waypoint x=";455"; y=";217";>;<;/omgdi:waypoint>;<;/bpmndi:BPMNEdge>;<;/bpmndi:BPMNPlane>;<;/bpmndi:BPMNDiagram>;<;/definitions>;编码如下:package com.easyway.spring.activiti;import java.util.List;import org.activiti.engine.HistoryService;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngineConfiguration;import org.activiti.engine.RepositoryService;import org.activiti.engine.RuntimeService;import org.activiti.engine.TaskService;import org.activiti.engine.history.HistoricProcessInstance;import org.activiti.engine.task.Task;/*** 根据activiti官方提供的编写* 1.财务部门填写月财务报告* 2.股东审核月财务审计报告*** activiti提供的财务报告审核* <;!-- 采用用户组为accountancy编写财务报告 -->;* <;userTask id=";usertask1"; name=";财务编写月财务报告"; activiti:candidateGroups=";accountancy";>;<;/userTask>;* <;!-- 采用用户组为management编写财务报告 -->;* <;userTask id=";usertask2"; name=";股东审核月财务审计报告"; activiti:candidateGroups=";management";>;<;/userTask>;** 备注:* 默认的两个用户:* <;pre>;* 用户名密码用户组Table 2.1. The demo usersUserId Password Security roleskermit kermit admingonzo gonzo managerfozzie fozzie user* <;/pre>;** @author longgangbai** 2011-12-18 下午04:08:46*/public class CustomFinancialReportActiviti {public static void main(String[] args) {// Create Activiti process engine//创建一个流程引擎对象// ProcessEngine processEngine = ProcessEngineConfiguration// .createStandaloneProcessEngineConfiguration()// .buildProcessEngine();//创建一个流程引擎对象(为了便于多册测试,修改name=";databaseSchemaUpdate"; value=";create-drop"; 默认为ture) ProcessEngineprocessEngine=ProcessEngineConfiguration.createProcessEngineConfigurationFromRes ource(";activiti.cfg.xml";).buildProcessEngine();// Get Activiti services//获取流程相关的服务RepositoryService repositoryService =processEngine.getRepositoryService();RuntimeService runtimeService = processEngine.getRuntimeService();// Deploy the process definition//部署相关的流程配置repositoryService.createDeployment().addClasspathResource(";diagrams/financialReport.bpmn20.xml";) .deploy();// Start a process instance//获取流程实例String procId = runtimeService.startProcessInstanceByKey(";financialReport";).getId();// Get the first taskTaskService taskService = processEngine.getTaskService();//获取accountancy组可能要操作的任务List<;Task>; tasks = taskService.createTaskQuery().taskCandidateGroup(";accountancy";).list();for (Task task : tasks) {System.out.println(";Following task is available for accountancy group: "; + task.getName());//设置fozzie代办 claim ittaskService.claim(task.getId(), ";fozzie";);}// Verify Fozzie can now retrieve the task//审核fozzie当前的获取的任务数量tasks = taskService.createTaskQuery().taskAssignee(";fozzie";).list();for (Task task : tasks) {System.out.println(";Task for fozzie: "; + task.getName());// Complete the task//设置forzze完毕plete(task.getId());}System.out.println(";Number of tasks for fozzie: ";+taskService.createTaskQuery().taskAssignee(";fozzie";).count());// Retrieve and claim the second task//管理者审核报告并让kermit代办tasks = taskService.createTaskQuery().taskCandidateGroup(";management";).list();for (Task task : tasks) {System.out.println(";Following task is available for accountancy group: "; + task.getName());taskService.claim(task.getId(), ";kermit";);}// Completing the second task ends the process//完成报告for (Task task : tasks) {plete(task.getId());}// verify that the process is actually finished//查询流程实例完成事件HistoryService historyService = processEngine.getHistoryService();HistoricProcessInstance historicProcessInstance =historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).si ngleResult();System.out.println(";Process instance end time: "; + historicProcessInstance.getEndTime());}}运行结果如下:信息: ProcessEngine default created2011-12-18 17:06:00 org.activiti.engine.impl.jobexecutor.JobAcquisitionThread run 信息: JobAcquisitionThread starting to acquire jobs2011-12-18 17:06:00 org.activiti.engine.impl.bpmn.deployer.BpmnDeployer deploy 信息: Processing resource diagrams/financialReport.bpmn20.xml2011-12-18 17:06:01 org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes信息: XMLSchema currently not supported as typeLanguage2011-12-18 17:06:01 org.activiti.engine.impl.bpmn.parser.BpmnParse parseDefinitionsAttributes信息: XPath currently not supported as expressionLanguageFollowing task is available for accountancy group: 财务编写月财务报告Task for fozzie: 财务编写月财务报告Number of tasks for fozzie: 0Following task is available for accountancy group: 股东审核月财务审计报告Process instance end time: Sun Dec 18 17:06:01 CST 2011。

相关主题