1.最簡(jiǎn)單的流程圖
其中包括開(kāi)始節(jié)點(diǎn)、任務(wù)節(jié)點(diǎn)以及結(jié)束節(jié)點(diǎn)

簡(jiǎn)單流程圖.png
1.1 相關(guān)設(shè)置
設(shè)置id(也就是流程實(shí)例key),設(shè)置name

image.png
使用設(shè)置eclipse任務(wù)辦理人(選中該任務(wù)節(jié)點(diǎn))

image.png
1.2 部署流程
public Deployment deploy() {
repositoryService.createDeployment().addClasspathResource("流程bpmn文件")
.addClasspathResource("流程bpmn文件生成的png圖").deploy();
}
1.3 啟動(dòng)流程
public ProcessInstance startByKey() {
return runtimeService.startProcessInstanceByKey("流程實(shí)例key,也就是整個(gè)流程圖的id");
}
1.4 查詢?nèi)蝿?wù)
public List<Task> findTaskByUser() {
return taskService.createTaskQuery().taskAssignee("辦理人").list();
}
1.5 辦理任務(wù)
public void complete() {
taskService.complete("任務(wù)id");
}
1.6 查詢流程定義列表
public List<ProcessDefinition> findDefList(String key) {
return repositoryService.createProcessDefinitionQuery()
.processDefinitionKey(key)
.list();
}
1.6 查詢歷史任務(wù)
public List<HistoricTaskInstance> findHiTask() {
return testUtil.findHiTask("studentLeave:1:80004");
}
1.7 查詢歷史活動(dòng)
public List<HistoricActivityInstance> findHiActivite(String proInsId) {
return historyService.createHistoricActivityInstanceQuery()
.processDefinitionId(proInsId)
.finished()
.list();
}
2 設(shè)置流程變量
2.1 啟動(dòng)流程并設(shè)置流程變量
public ProcessInstance startByKey(String key, Map<String, Object> map) {
return runtimeService.startProcessInstanceByKey(key, map);
}
2.2 在流程運(yùn)行時(shí)設(shè)置流程變量
public void setRuntimeVariables(String executionId, Map<String, Object> map) {
runtimeService.setVariables(executionId, map);
}
2.3 在任務(wù)節(jié)點(diǎn)設(shè)置流程變量
public void setTaskVariables(String taskId, Map<String, Object> map) {
taskService.setVariables(taskId, map);
}
2.4 執(zhí)行任務(wù)時(shí)設(shè)置變量
public void complete(String taskId, Map<String, Object> map) {
taskService.complete(taskId, map);
}
2.5 獲取運(yùn)行時(shí)流程變量
public Object getTaskVariable(String taskId, String key) {
return taskService.getVariable(taskId, key);
}
2.6 獲取任務(wù)流程變量
public Object getTaskVariable(String taskId, String key) {
return taskService.getVariable(taskId, key);
}
3 連線(在連線上設(shè)置條件)
3.1 設(shè)置連線條件

話流程圖.png

設(shè)置條件.png
3.2 排他網(wǎng)關(guān)
同樣需要設(shè)置連線條件,可以在網(wǎng)關(guān)節(jié)點(diǎn)處設(shè)置默認(rèn)連線

畫(huà)流程圖.png

設(shè)置默認(rèn)連線.png
3.3 并行網(wǎng)關(guān)
不需要設(shè)置連線條件

畫(huà)流程圖.png
4 設(shè)置流程辦理人
4.1 直接寫(xiě)死(如上1.1設(shè)置辦理人)
4.2 使用變量

相關(guān)設(shè)置.png
4.3 設(shè)置任務(wù)監(jiān)聽(tīng)

相關(guān)設(shè)置.png
public class MyTaskListener implements TaskListener, ExecutionListener {
@Override
public void notify(DelegateTask delegateTask) {
delegateTask.setAssignee("張三");
}
@Override
public void notify(DelegateExecution delegateExecution) throws Exception {
}
}
5 多用戶任務(wù)分配
5.1 直接寫(xiě)死

相關(guān)設(shè)置.png
5.2 設(shè)置變量

相關(guān)設(shè)置.png
5.3 使用監(jiān)聽(tīng)
public class MyTaskListener1 implements TaskListener, ExecutionListener {
@Override
public void notify(DelegateTask delegateTask) {
delegateTask.addCandidateUser("張三");
delegateTask.addCandidateUser("李四");
}
@Override
public void notify(DelegateExecution delegateExecution) throws Exception {
}
}
6 設(shè)置子流程
6.1 局部子流程

局部子流程在eclipse中的位置.png

流程圖畫(huà)法.png
6.2 全局子流程

在eclipse中的位置.png

流程圖畫(huà)法.png
called element中設(shè)置對(duì)應(yīng)的流程id

相關(guān)設(shè)置.png