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

网站系统下载沪指重上3000点

网站系统下载,沪指重上3000点,wordpress 分类菜单,中国十大网站开发公司在多种工作流引擎中,Camunda框架对流程的处理控制更为强大、灵活。 在应对流程节点按业务需要进行自由跨节点跳转的需求时,通过代码自由控制节点的跳转在Camunda中是支持的,并且提供了编码方法,其中多实例的处理上有一些区别要特…

在多种工作流引擎中,Camunda框架对流程的处理控制更为强大、灵活。

在应对流程节点按业务需要进行自由跨节点跳转的需求时,通过代码自由控制节点的跳转在Camunda中是支持的,并且提供了编码方法,其中多实例的处理上有一些区别要特别注意:

1、单实例节点,或者不是基于集合配置的多实例节点。

2、多实例 userTask 节点,在 <multiInstanceLoopCharacteristics ...> 中通过配置 collectionelementVariableuserTask 提供 assignee 变量引用的。

其中第1点,跳转节点的主要代码片段如下:

ProcessInstance processInstance = ...;
runtimeService.createProcessInstanceModification(processInstance.getId()).cancelAllForActivity("Activity_8dsxc8ds") // 取消当前节点所有活动中的Task任务(可选使用).startBeforeActivity("Activity_0qsw8c1") // 目标节点Id,在流程图中看,固定值(一般起一个正规的名字).setVariable("带入所需变量key", "变量值Object类型").execute();

如果多实例活动是基于集合配置的,则执行 startBeforeActivity 指令时不会考虑集合,并且不会为附加实例填充集合元素变量,针对这种情况,需要使用下面的处理方法。

第2点,基于集合的多实例跳转节点的跳转时,需要在节点Id后追加特定字符串 #multiInstanceBody,示例如下:

ProcessInstance processInstance = ...;
runtimeService.createProcessInstanceModification(processInstance.getId()).cancelAllForActivity("Activity_8dsxc8ds").startBeforeActivity("Activity_0qsw8c1#multiInstanceBody") // 目标节点是多实例节点,节点Id后面必须增加后缀 #multiInstanceBody.setVariable("带入所需变量key", "变量值Object类型").execute();

注:对于目标节点是多实例的节点,如果不在节点Id后面追加框架约定的字符串 #multiInstanceBody,则不能自动执行触发多实例节点配置的 <multiInstanceLoopCharacteristics .... > 中的集合变量处理。

对于如何判断一个节点是多实例节点,可以参考使用下面我写好的一个判断方法:

    /*** 判断一个节点是否为多实例节点* * @param repositoryService 可以注入Camunda对象直接使用* @param processDefinitionId 流程定义Id* @param activityId 节点Id* @return 是否多实例节点*/public boolean isMultiInstanceActivity(RepositoryService repositoryService, String processDefinitionId, String activityId){boolean isMultiInstanceActivity = false;BpmnModelInstance bpmnModelInstance = repositoryService.getBpmnModelInstance(processDefinitionId);Optional<Process> processOptional =bpmnModelInstance.getModelElementsByType(Process.class).stream().filter(p -> p.getId().equals(processDefinitionId)).findFirst();if(processOptional.isPresent()){Process process = processOptional.get();Optional<FlowElement> activityOptional = process.getFlowElements().stream().filter(flowElement -> flowElement.getId().equals(activityId)).findFirst();if(activityOptional.isPresent()){isMultiInstanceActivity =CollectionUtils.isEmpty(activityOptional.get().getChildElementsByType(MultiInstanceLoopCharacteristics.class));}}return isMultiInstanceActivity;}

官方参考文档:https://docs.camunda.org/manual/7.19/user-guide/process-engine/process-instance-modification/#modify-multi-instance-activity-instances


(END)

http://www.ds6.com.cn/news/35988.html

相关文章:

  • 常宁网站定制整站优化排名
  • 创意网站交互网站搜索排名优化软件
  • 上海建筑建材业网站迁移站长工具是什么
  • 猪八戒做网站排名网站推广是什么意思
  • 个人做什么网站网站统计平台
  • h5开发和前端开发区别网站搜索引擎优化技术
  • 网站源码建站市场运营和市场营销的区别
  • 成都制作网站软件seo技术交流论坛
  • 江门装修公司排名前十名网站的排名优化怎么做
  • 永春网站开发互联网营销师报名入口官网
  • 向国外支付网站开发费培训心得体会模板
  • 购物网站可行性分析报告杭州seo网络推广
  • 做跨境电商看国外的哪些网站seo是如何优化
  • 做营销型网站多少钱百度seo自然优化
  • 做再生资源的网站有哪些网站搜索引擎
  • wordpress 多站点 合集企业查询网
  • 沈阳三好街网站建设网站推广苏州
  • 怎么样免费做网站免费网站建站页面
  • 郑州网站推广公司信息排名优化公司电话
  • 做网站建设销售工资百度在线下载
  • 怎样查找网站域名搜索引擎快速排名推广
  • 怎样做网站 网页搜索引擎优化seo什么意思
  • 云南网站制作案例青岛seo全网营销
  • 网站建设确认表网站关键词优化排名技巧
  • 网站开发需求收集搜索引擎营销的分类
  • 网站制作和网页制作是不是一样东莞网络公司网络推广
  • 注册一个商标多少钱网站优化的方法有哪些
  • 河北邢台wap网站建设市场推广计划怎么写
  • 专业网站建设提供商域名查询系统
  • 福田蒙派克6座上蓝牌京牌兰州网站seo