选定用户与用户组启动流程(学习笔记)

 

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();//创建一个流程部署对象,先根据repositoryService创建一个deploymentBuilder然后//用deploymentBuilder构建出一个部署对象,指定名字为测试部署资源,且添加了两个资源文件DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();deploymentBuilder.name("测试部署资源1").addClasspathResource("my-process.bpmn20.xml").addClasspathResource("second_approve.bpmn20.xml");//当deploy完成以后,就会将我们的部署对象跟两个资源文件存进数据库里面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内涵各种查询方法查询流程定义对象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());}//部署跟流程定义文件可以是一对多的关系
}/*当有需求需要定义用户与用户组关系时。* */@Test@org.activiti.engine.test.Deployment(resources = {"my-process.bpmn20.xml"})public void  testCandidateStarter(){RepositoryService repositoryService = activitiRule.getRepositoryService();//获取流程定义对象,singleResult获取唯一的结果ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult();//repositoryService只是给我们提供了构建用户用户组与流程关系的方式,并没有提供校验,需要我们自己在业务逻辑中做校验repositoryService.addCandidateStarterUser(processDefinition.getId(),"user");repositoryService.addCandidateStarterGroup(processDefinition.getId(),"groupM");//把用户跟用户组设置进去以后如何获取出来呢List<IdentityLink> identityLinkList = repositoryService.getIdentityLinksForProcessDefinition(processDefinition.getId());//取出来以后输出查看下其内容for (IdentityLink identityLink : identityLinkList) {LOGGER.info(" identityLink = {}",identityLink);}//删除关系repositoryService.deleteCandidateStarterUser(processDefinition.getId(),"user");repositoryService.deleteCandidateStarterGroup(processDefinition.getId(),"groupM");}}

这里singleResult();只能返回一个结果,要是多了会报错。

 

转载于:https://www.cnblogs.com/xk920/p/10688127.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python关于包的题怎么做_Python自定义包引入

python中的Module是比较重要的概念。常见的情况是&#xff0c;事先写好一个.py文 件&#xff0c;在另一个文件中需要import时&#xff0c;将事先写好的.py文件拷贝 到当前目录&#xff0c;或者是在中增加事先写好的.py文件所在的目录&#xff0c;然后import。这样的做法&#x…

汽车之家的安全框架,是如何从0到1搭建的?

“别人家的安全”是安全威胁情报&#xff08;微信ID&#xff1a;Threatbook&#xff09;近期推出的一档专栏。 合规、管理、构建、应急……安全问题千千万&#xff0c;层出不穷。我们没办法给出这些问题的标准答案&#xff0c;但我们可以用Case Study的形式&#xff0c;让你看看…

leetcode264. 丑数 II

编写一个程序&#xff0c;找出第 n 个丑数。 丑数就是质因数只包含 2, 3, 5 的正整数。 示例: 输入: n 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 说明: 1 是丑数。 n 不超过1690。 解题思路 直接用treeset去重和排序 代码 class Solution …

vr多人_如何构建多人VR网络应用

vr多人by Srushtika Neelakantam通过Srushtika Neelakantam 如何构建多人VR网络应用 (How to build a multiplayer VR web app) In this article, we’ll learn about three great frameworks/libraries that allow any web developer to build a VR app that works on any de…

量子测量 -- 确定性的死神

一、测量 -- 确定性的死神 前文已反复提及在量子世界中测量这一过程会产生很多奇异的、反直觉的现象。在第一篇文章中我举的例子是&#xff1a;用同样的配方&#xff0c;同样的火候&#xff0c;同样的厨具&#xff08;所有你能想到的变量均相同&#xff09;煎鸡蛋&#xff0c;结…

python增删改查csv文件_Python--作业2--对员工信息文件,实现增删改查操作

#!/usr/bin/env python#-*- coding:utf-8 -*-#Author:Huanglinshengimportos#查询方式一&#xff1a;select * from data_staff.txt where age > 22#查询方式二&#xff1a;select * from data_staff.txt where dept "IT"#查询方式三&#xff1a;select * from d…

ios注销所有通知_您一直想了解的有关iOS中通知的所有信息

ios注销所有通知by Payal Gupta通过Payal Gupta 您一直想了解的有关iOS中通知的所有信息 (Everything you’ve always wanted to know about notifications in iOS) 漂亮的小警报..&#xff1f; (Pretty Little Alerts..?) Notifications are a way to inform users when new…

vue-x

https://my.oschina.net/wangnian/blog/2055631转载于:https://www.cnblogs.com/ylblogs/p/10694849.html

leetcode97. 交错字符串(动态规划)

给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。 示例 1: 输入: s1 “aabcc”, s2 “dbbca”, s3 “aadbbcbcac” 输出: true 解题思路 数组含义&#xff1a;dp[i][j]s1的前i个和s2的前j个能否组成字符串s3的前ij长度的子串 状态转移&#xff1a; d…

【LeetCode】19. Remove Nth Node From End of List

Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n 2.After removing the second node from the end, the linked list becomes 1->2->3->5.题意&#xff1a;…

《网络空间欺骗:构筑欺骗防御的科学基石》一1.1 主动网络空间防御中网络空间抵赖与欺骗的视图...

1.1 主动网络空间防御中网络空间抵赖与欺骗的视图 本文讲的是网络空间欺骗&#xff1a;构筑欺骗防御的科学基石一1.1 主动网络空间防御中网络空间抵赖与欺骗的视图,将抵赖与欺骗纳入标准操作规程&#xff08;SOP&#xff09;&#xff1a;随着攻击技术的不断演进&#xff0c;网…

管桩的弹性模量计算公式_桩基设计计算公式

0.9300.71555.31201018001.130973355桩长21.3mN(KN)φfc(kN/m2)Ap(m2)f’s(kN/m2)A’s(m2)桩直径(m2)11518.963620.7119001.1309733553000000.0160849541.2标准值19006.29KN单桩承载力设计计算(建筑桩基技术规范08版)根据《建筑桩基技术规范》(JGJ94—2008), 单桩竖向极限承载力…

python函数的作用降低编程复杂度_Python语言程序设计 (第11期) 测验5: 函数和代码复用...

共10道单选题和2道编程题&#xff0c;限答1次、限时50分钟选择题1.以下选项不是函数作用的是&#xff1a;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫…

restful解决什么问题_当您陷入RESTful,WordPress和一个困难的地方时,如何解决CMS问题...

restful解决什么问题by Jessica Duffin Wolfe杰西卡达芬沃尔夫(Jessica Duffin Wolfe) 当您陷入RESTful&#xff0c;WordPress和一个困难的地方时&#xff0c;如何解决CMS问题 (How to solve a CMS problem when you’re caught between RESTful, WordPress, and a hard place…

InfluxDB的HTTP API写入操作

一、说明 为了方便&#xff0c;本文主要使用curl来发起http请求&#xff0c;示例当中也是使用curl这个工具来模拟HTTP 请求。 在实际使用中&#xff0c;可以将请求写入代码中&#xff0c;通过其他编程语言来模拟HTTP请求。 二、InfluxDB通过HTTP API操作数据库 1&#xff09;建…

揭开勒索软件的真面目

一、前言 2013年9月&#xff0c;戴尔公司的SecureWorks威胁应对部门&#xff08;CTU&#xff09;发现了一种名为“CryptoLocker”的勒索软件&#xff0c;它以邮件附件形式分发&#xff0c;感染计算机并加密近百种格式文件&#xff08;包括电子表格、数据库、图片等&#xff09;…

leetcode486. 预测赢家(动态规划)

给定一个表示分数的非负整数数组。 玩家1从数组任意一端拿取一个分数&#xff0c;随后玩家2继续从剩余数组任意一端拿取分数&#xff0c;然后玩家1拿&#xff0c;……。每次一个玩家只能拿取一个分数&#xff0c;分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终…

w550官方例程_急!求索爱w550的刷机所需要的所有文件! 全部分送上!

展开全部W550c行货软件升级使用国内行货W550c手机的朋友&#xff0c;将来是可以在62616964757a686964616fe58685e5aeb931333238646330官方网站使用随机数据线免费升级的&#xff0c;目前W550c的最新版本是R4AB048但是由于目前官方网站还未提供&#xff0c;大家敬请期待。W550c索…

python的xpath用法介绍_python爬虫之xpath的基本使用详解

本篇文章主要介绍了python爬虫之xpath的基本使用详解&#xff0c;现在分享给大家&#xff0c;也给大家做个参考。一起过来看看吧一、简介XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素&#xff…

杨波 微服务技术专家_专家称,这些是最有效的微服务测试策略

杨波 微服务技术专家by Jake Lumetta杰克卢米塔(Jake Lumetta) 专家称&#xff0c;这些是最有效的微服务测试策略 (These are the most effective microservice testing strategies, according to the experts) Testing microservices is hard. More specifically, end-to-end…