在之前的的四篇文章中,我們介紹了孝常,activiti7+springboot開發(fā)環(huán)境的搭建旗们,以及流程部署,流程啟動构灸,用戶任務(wù)完成等工作流相關(guān)操作上渴。這里還是接著之前的文章繼續(xù)講。
前面的介紹中喜颁,我面部署了一個流程稠氮,在部署流程的時候要用到兩個資源文件,一個bmmn流程文件半开,一個png的dgram片「襞現(xiàn)在我們假設(shè)一個場景,當(dāng)用戶在完成自己的當(dāng)前任務(wù)流程的時候寂拆,想要看一下所有的流程節(jié)點(diǎn)奢米,想要查看整個流程圖像該如何操作。
在之前的介紹中我們知道流程定義的相關(guān)資源文件會保存在act_ge_byteArray這個表中纠永,而且這兩個資源文件都是以二進(jìn)制的形式存放在表中的鬓长。所以我們可以將資源文件取出來,展示給用戶渺蒿。
操作流程
- 在spring容器中拿到RepositoryService的實(shí)現(xiàn)類的實(shí)例恋拍。
- 查看流程部署實(shí)例
- 拿到流程部署id遭笋,在通過流程部署id拿到到兩個資源文件弓乙,并將這兩個資源文件輸出到指定的目錄中去
- 代碼實(shí)現(xiàn):
/**
* 查看流程部署
*/
@Override
public void queryProcessDeployment() throws Exception {
DeploymentQuery query = repositoryService.createDeploymentQuery();
List<Deployment> list = query.deploymentName("請假流程").list();
System.out.println(list);
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
List<ProcessDefinition> list1 = processDefinitionQuery.deploymentId(list.get(0).getId()).list();
System.out.println(list1);
ProcessDefinition df = list1.get(0);
String saveResourceDir = "C:\\Users\\newtab\\Desktop\\activitilogs\\";
InputStream is = repositoryService.getResourceAsStream(df.getDeploymentId(), df.getResourceName());
InputStream dis = repositoryService.getResourceAsStream(df.getDeploymentId(), df.getDiagramResourceName());
OutputStream os = new FileOutputStream(saveResourceDir + df.getResourceName());
FileOutputStream dos = new FileOutputStream(saveResourceDir + df.getDiagramResourceName());
IOUtils.copy(is,os);
IOUtils.copy(dis,dos);
os.close();
dos.close();
is.close();
dis.close();
}
注意上面的IOUtils這個類是commons-io這個包里面的观蓄。
通過測試程序來調(diào)用,由于之前已經(jīng)有過測試調(diào)用的代碼,這里不再重復(fù),貌似這個測試調(diào)用也沒啥技術(shù)特別的。
image.png
本文就先介紹到這里嫌佑。