当前位置: 首页 > news >正文

gif动图素材网站seo推广是什么意思呢

gif动图素材网站,seo推广是什么意思呢,烟台市做网站,哪个网站上网好一.简介 有的时候,一个任务节点会存在多个候选人,例如:张三提交一个任务,这个任务即可以由李四处理,又可以由王五处理,那么针对这种多个任务候选人的情况,该如何处理? 二.绘制流程…

一.简介

有的时候,一个任务节点会存在多个候选人,例如:张三提交一个任务,这个任务即可以由李四处理,又可以由王五处理,那么针对这种多个任务候选人的情况,该如何处理?

二.绘制流程图

首先我们还是使用之前旧的流程图,但是在为 UserTask 设置分配用户的时候,我们设置多个用户,流程图截图如下:
在这里插入图片描述

分配图截图如下:
在这里插入图片描述

设置完成后,载这个流程文件,该流程对应的XML文件,内容如下:

<process id="demo01" name="demo01" isExecutable="true"><documentation>demo01</documentation><startEvent id="startEvent1" flowable:initiator="INITATOR" flowable:formFieldValidation="true"></startEvent><userTask id="sid-5F901234-AFF1-480E-9D66-2D196B910BA3" flowable:candidateUsers="javaboy,zhangsan,lisi" flowable:formFieldValidation="true"></userTask><sequenceFlow id="sid-71FB3A81-F753-419D-9A0A-2FC6E5361CED" sourceRef="startEvent1" targetRef="sid-5F901234-AFF1-480E-9D66-2D196B910BA3"></sequenceFlow><endEvent id="sid-D0B9E5BF-8C1A-4F8F-B2C2-F423F5DC556D"></endEvent><sequenceFlow id="sid-DEBE03CD-F247-4EF3-BB67-ABBA94739B0A" sourceRef="sid-5F901234-AFF1-480E-9D66-2D196B910BA3" targetRef="sid-D0B9E5BF-8C1A-4F8F-B2C2-F423F5DC556D"></sequenceFlow>
</process>

可以看到,UserTask 中的 flowable:candidateUsers=“javaboy,zhangsan,lisi” 就表示这个 UserTask 由 javaboy、zhangsan 和 lisi 三个用户处理,用户名之间用 , 隔开。

三.查询任务处理人

接下来就是部署并启动上面这个流程,具体如何部署如何启动,看之前的文章。
当流程启动成功之后,去查询 javaboy 需要处理的 UserTask,代码如下:

List<Task> list = taskService.createTaskQuery().taskAssignee("javaboy").list();
for (Task task : list) {logger.info("id:{};name:{};taskDefinitionKey:{}", task.getId(), task.getName(), task.getTaskDefinitionKey());
}

发现这个 SQL 执行完成后,查询不到任何数据!这个方法最终查询的是数据库中的 ACT_RU_TASK 表,查询的 SQL 如下:
在这里插入图片描述
去检查 ACT_RU_TASK 表以及它的 ASSIGNEE_ 字段,截图如下:
在这里插入图片描述
发现 ACT_RU_TASK 表中记录的 ASSIGNEE_ 字段值为 null。为 null 这个其实也好理解,因为这个 UserTask 有多个人可以处理,但是只有一个字段,没法储存,肯定有其他存储方式。

这种有多个候选人的任务,应该按照如下方式来查询:

@Test
void test12() {List<Task> list = taskService.createTaskQuery().taskCandidateUser("javaboy").list();for (Task task : list) {logger.info("id:{};name:{};taskDefinitionKey:{}", task.getId(), task.getName(), task.getTaskDefinitionKey());}
}

这里调用 taskCandidateUser 方法进行处理。那么这个方法查询的是哪张表呢?看下上面方法最终执行的 SQL,如下:

: ==>  Preparing: SELECT RES.* from ACT_RU_TASK RES WHERE RES.ASSIGNEE_ is null and exists(select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TYPE_ = 'candidate' and LINK.TASK_ID_ = RES.ID_ and ( LINK.USER_ID_ = ? ) ) order by RES.ID_ asc
: ==> Parameters: javaboy(String)
: <==      Total: 1

这里的查询涉及到两张表,分别是 ACT_RU_TASKACT_RU_IDENTITYLINK,两张表联合查询查出来的,来看看 ACT_RU_IDENTITYLINK 表的内容,截图如下:
在这里插入图片描述
TYPE_ 为 candidate 的就表示这个 Task 的候选人,id 为 c5693038-3f42-11ed-b9e2-acde48001122 的 Task 一共有三个候选人,两张表联合查询,才可以查到这个 UserTask 该由谁来处理。

另外一种常见的需求就是,已经知道了要处理的流程实例了,但是不知道应该由谁来处理,此时通过查询 ACT_RU_IDENTITYLINK 表就可以确定一个流程实例都有哪些参与者,代码如下:

@Test
void test13() {List<ProcessInstance> list = runtimeService.createProcessInstanceQuery().list();for (ProcessInstance pi : list) {List<IdentityLink> identityLinksForProcessInstance = runtimeService.getIdentityLinksForProcessInstance(pi.getId());for (IdentityLink identityLink : identityLinksForProcessInstance) {logger.info("ProcessInstanceId:{},UserId:{}",identityLink.getProcessInstanceId(),identityLink.getUserId());}}
}

这个执行的 SQL,截图如下:
在这里插入图片描述
可以看到,其实就是通过查询 ACT_RU_IDENTITYLINK 表获取的数据。

http://www.yayakq.cn/news/217800/

相关文章:

  • 门户网站建设方案内容挂机宝可以做网站
  • 中国建设银行 英文网站免费中文网站模板html
  • win7 iis建立网站手机制作公章的软件
  • 做网站什么一级导航二级导航查询域名注册网站
  • 怎么截取网站视频做动图网站建设核心系统
  • 网站开发和网页制作水电公司设计logo
  • 朔州怀仁网站建设广州三大坑公司
  • 网站做问卷调查的问题学网页设计有用吗
  • 海关申报网站怎么做七牛云 wordpress
  • 如何使用wordpress制作网站富阳市网站
  • 怎样建立企业网站wordpress 代码在哪里修改
  • 做app还要做网站么网站建站网站建站
  • 智慧团建官方网站登录入口服装设计自学零基础
  • 网站内做全文搜索用PYTHON3 做网站
  • 网站有备案 为企业wordpress登录微信插件下载失败
  • 网站开发kpi网站备案在哪里查询
  • 绵阳网站托管软件开发专业大专学校排名
  • 动态 静态 网站地图简单的网站php开发教程
  • net网站建设入门教程微信小程序制作教学
  • 环保公司网站模版北京市城市建设档案馆网站
  • 炫酷的企业网站模板免费下载php如何搭建网站后台
  • 忠县网站制作wordpress 加速
  • 卖自己做的网站去哪落实网站建设管理
  • 浙江方远建设集团网站模板建站网页
  • 萧山建设银行招聘网站学院网站建设计划
  • 网站设计与制作教程个人网站 不备案
  • php网站开发试题吉利seo
  • 龙岗商城网站建设教程网站服务器试用
  • 用凡科网做网站怎么保存到桌面wordpress 发布网页
  • 海兴县建设工程招标信息网站从事软件开发