选定用户与用户组启动流程(学习笔记)
生活随笔
收集整理的這篇文章主要介紹了
选定用户与用户组启动流程(学习笔记)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
public class RepostoryServiceTest {private static final Logger LOGGER = LoggerFactory.getLogger(RepostoryServiceTest.class);@Rulepublic ActivitiRule activitiRule = new ActivitiRule();@Testpublic void testRepository(){//repositoryService最重要的功能就是對流程定義文件的部署RepositoryService repositoryService = activitiRule.getRepositoryService();//創(chuàng)建一個(gè)流程部署對象,先根據(jù)repositoryService創(chuàng)建一個(gè)deploymentBuilder然后//用deploymentBuilder構(gòu)建出一個(gè)部署對象,指定名字為測試部署資源,且添加了兩個(gè)資源文件DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();deploymentBuilder.name("測試部署資源1").addClasspathResource("my-process.bpmn20.xml").addClasspathResource("second_approve.bpmn20.xml");//當(dāng)deploy完成以后,就會(huì)將我們的部署對象跟兩個(gè)資源文件存進(jìn)數(shù)據(jù)庫里面Deployment deploy = deploymentBuilder.deploy();LOGGER.info("deploy = {}",deploy);//第二次部署DeploymentBuilder deploymentBuilder1 = repositoryService.createDeployment();deploymentBuilder1.name("測試部署資源2").addClasspathResource("my-process.bpmn20.xml").addClasspathResource("second_approve.bpmn20.xml");deploymentBuilder1.deploy();//查看部署對象里面有什么,deploymentQuery內(nèi)涵各種查詢方法查詢流程定義對象DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery();Deployment deployment = deploymentQuery.deploymentId(deploy.getId()).singleResult();//查詢出list類型的流程定義對象List<ProcessDefinition> definitionList = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).listPage(0, 100);for (ProcessDefinition processDefinition : definitionList) {LOGGER.info("processDefinition = {} , version = {} , key = {} , id = {}",processDefinition,processDefinition.getVersion(),processDefinition.getKey(),processDefinition.getId());}//部署跟流程定義文件可以是一對多的關(guān)系 }/*當(dāng)有需求需要定義用戶與用戶組關(guān)系時(shí)。* */@Test@org.activiti.engine.test.Deployment(resources = {"my-process.bpmn20.xml"})public void testCandidateStarter(){RepositoryService repositoryService = activitiRule.getRepositoryService();//獲取流程定義對象,singleResult獲取唯一的結(jié)果ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult();//repositoryService只是給我們提供了構(gòu)建用戶用戶組與流程關(guān)系的方式,并沒有提供校驗(yàn),需要我們自己在業(yè)務(wù)邏輯中做校驗(yàn)repositoryService.addCandidateStarterUser(processDefinition.getId(),"user");repositoryService.addCandidateStarterGroup(processDefinition.getId(),"groupM");//把用戶跟用戶組設(shè)置進(jìn)去以后如何獲取出來呢List<IdentityLink> identityLinkList = repositoryService.getIdentityLinksForProcessDefinition(processDefinition.getId());//取出來以后輸出查看下其內(nèi)容for (IdentityLink identityLink : identityLinkList) {LOGGER.info(" identityLink = {}",identityLink);}//刪除關(guān)系repositoryService.deleteCandidateStarterUser(processDefinition.getId(),"user");repositoryService.deleteCandidateStarterGroup(processDefinition.getId(),"groupM");}}這里singleResult();只能返回一個(gè)結(jié)果,要是多了會(huì)報(bào)錯(cuò)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/xk920/p/10688127.html
總結(jié)
以上是生活随笔為你收集整理的选定用户与用户组启动流程(学习笔记)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到牛是什么征兆女性
- 下一篇: InfluxDB的HTTP API写入操