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

杭州网站建设方案书无锡哪里有做网站的

杭州网站建设方案书,无锡哪里有做网站的,wordpress 知识 管理,12306网站建设在多种工作流引擎中,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.hengruixuexiao.com/news/23685.html

相关文章:

  • 网页设计与制作摘要北京seo软件
  • 开了网站建设公司 如何接业务推广运营怎么做
  • 做ps可以在哪些网站上找素材nba排名
  • 用css做网站的代码重庆seo网站哪家好
  • 网站开发课程内部培训竞价广告代运营
  • ui个人中心页设计说明seo长沙
  • 校园网站建设资金来源有企业网站有什么
  • 外贸五金网站建设网络推广平台大全
  • SaaS网站可以做seo嘛百度指数人群画像怎么看
  • 南京经济经济技术开发总公司南京关键词优化软件
  • 姓名域名网站网络营销的宏观环境
  • 做企业网站时需要注意哪些地方优化网络搜索引擎
  • 网站底部放置备案号百度首页排名优化服务
  • 蒙文网站开发网站查询域名入口
  • 为企业推广百度关键词优化多久上首页
  • 西安建设局网站百度极速版app下载安装
  • 怎么自己搭建一个博客网站搜索引擎推广案例
  • 哪个网站做课件能赚钱百度付费推广的费用
  • php做动态网站如何修改密码seo专员是干嘛的
  • 网站维护是什么发布会直播平台
  • 怎么制作一个软件app网络推广seo教程
  • W做网站软文标题大全
  • 什么样的网站网络营销有哪些内容
  • 厦门网站营销电商seo
  • 我司网站改版上线网站建设福州网站优化
  • 设计网站公司有哪些石家庄最新消息
  • 计科专业毕设做网站百度一下就知道
  • 微信群推广佣金平台长沙建站seo公司
  • 东莞凤岗网站建设制作cdq百度指数
  • 怎么制作网站模版百度推广销售