{"id":5059,"date":"2024-03-14T02:19:59","date_gmt":"2024-03-14T02:19:59","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/"},"modified":"2025-07-31T18:25:34","modified_gmt":"2025-07-31T18:25:34","slug":"how-to-call-multiple-parallel-sub-processes-in-activiti","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/","title":{"rendered":"Activiti Parallel Sub-Processes Guide"},"content":{"rendered":"<p>In Activiti, multiple parallel gateways can be used to create multiple parallel sub-processes. Below is an example code demonstrating how to call multiple parallel sub-processes in Activiti.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\">\/\/ \u521b\u5efa\u6d41\u7a0b\u5f15\u64ce<\/span>\r\n<span class=\"hljs-type\">ProcessEngine<\/span> <span class=\"hljs-variable\">processEngine<\/span> <span class=\"hljs-operator\">=<\/span> ProcessEngines.getDefaultProcessEngine();\r\n\r\n<span class=\"hljs-comment\">\/\/ \u90e8\u7f72\u6d41\u7a0b\u5b9a\u4e49<\/span>\r\n<span class=\"hljs-type\">RepositoryService<\/span> <span class=\"hljs-variable\">repositoryService<\/span> <span class=\"hljs-operator\">=<\/span> processEngine.getRepositoryService();\r\nrepositoryService.createDeployment()\r\n    .addClasspathResource(<span class=\"hljs-string\">\"myProcess.bpmn\"<\/span>)\r\n    .deploy();\r\n\r\n<span class=\"hljs-comment\">\/\/ \u542f\u52a8\u6d41\u7a0b\u5b9e\u4f8b<\/span>\r\n<span class=\"hljs-type\">RuntimeService<\/span> <span class=\"hljs-variable\">runtimeService<\/span> <span class=\"hljs-operator\">=<\/span> processEngine.getRuntimeService();\r\n<span class=\"hljs-type\">ProcessInstance<\/span> <span class=\"hljs-variable\">processInstance<\/span> <span class=\"hljs-operator\">=<\/span> runtimeService.startProcessInstanceByKey(<span class=\"hljs-string\">\"myProcess\"<\/span>);\r\n\r\n<span class=\"hljs-comment\">\/\/ \u83b7\u53d6\u5e76\u884c\u5b50\u6d41\u7a0b\u7684\u6267\u884c\u5b9e\u4f8b<\/span>\r\nList&lt;Execution&gt; executions = runtimeService.createExecutionQuery()\r\n    .processInstanceId(processInstance.getId())\r\n    .list();\r\n\r\n<span class=\"hljs-comment\">\/\/ \u5411\u6bcf\u4e2a\u5e76\u884c\u5b50\u6d41\u7a0b\u53d1\u9001\u4fe1\u53f7<\/span>\r\n<span class=\"hljs-keyword\">for<\/span> (Execution execution : executions) {\r\n    runtimeService.signal(execution.getId());\r\n}\r\n<\/code><\/pre>\n<p>In the example above, we first deployed a process definition containing multiple parallel subprocesses, then we started a process instance. Next, we queried and obtained all execution instances of the parallel subprocesses, and sent a signal to each one to start their execution.<\/p>\n<p>It is important to note that when using multiple parallel subprocesses in BPMN, parallel gateways should be used to connect these subprocesses. This allows for the creation of multiple parallel execution paths when the process reaches the parallel gateway, with each path corresponding to a parallel subprocess.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Activiti, multiple parallel gateways can be used to create multiple parallel sub-processes. Below is an example code demonstrating how to call multiple parallel sub-processes in Activiti. \/\/ \u521b\u5efa\u6d41\u7a0b\u5f15\u64ce ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); \/\/ \u90e8\u7f72\u6d41\u7a0b\u5b9a\u4e49 RepositoryService repositoryService = processEngine.getRepositoryService(); repositoryService.createDeployment() .addClasspathResource(&#8220;myProcess.bpmn&#8221;) .deploy(); \/\/ \u542f\u52a8\u6d41\u7a0b\u5b9e\u4f8b RuntimeService runtimeService = processEngine.getRuntimeService(); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(&#8220;myProcess&#8221;); \/\/ \u83b7\u53d6\u5e76\u884c\u5b50\u6d41\u7a0b\u7684\u6267\u884c\u5b9e\u4f8b List&lt;Execution&gt; [&hellip;]<\/p>\n","protected":false},"author":14,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[544,5276,4846,5275,4849],"class_list":["post-5059","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-activiti","tag-bpm","tag-java-workflow","tag-parallel-sub-processes","tag-workflow-automation"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Activiti Parallel Sub-Processes Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to implement parallel sub-processes in Activiti with code examples and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Activiti Parallel Sub-Processes Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how to implement parallel sub-processes in Activiti with code examples and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T02:19:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-31T18:25:34+00:00\" \/>\n<meta name=\"author\" content=\"Noah Thompson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noah Thompson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/\"},\"author\":{\"name\":\"Noah Thompson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\"},\"headline\":\"Activiti Parallel Sub-Processes Guide\",\"datePublished\":\"2024-03-14T02:19:59+00:00\",\"dateModified\":\"2025-07-31T18:25:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/\"},\"wordCount\":121,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Activiti\",\"BPM\",\"Java Workflow\",\"parallel sub-processes\",\"Workflow Automation\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/\",\"name\":\"Activiti Parallel Sub-Processes Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T02:19:59+00:00\",\"dateModified\":\"2025-07-31T18:25:34+00:00\",\"description\":\"Learn how to implement parallel sub-processes in Activiti with code examples and best practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Activiti Parallel Sub-Processes Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a\",\"name\":\"Noah Thompson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g\",\"caption\":\"Noah Thompson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Activiti Parallel Sub-Processes Guide - Blog - Silicon Cloud","description":"Learn how to implement parallel sub-processes in Activiti with code examples and best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/","og_locale":"en_US","og_type":"article","og_title":"Activiti Parallel Sub-Processes Guide","og_description":"Learn how to implement parallel sub-processes in Activiti with code examples and best practices.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T02:19:59+00:00","article_modified_time":"2025-07-31T18:25:34+00:00","author":"Noah Thompson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Noah Thompson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/"},"author":{"name":"Noah Thompson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a"},"headline":"Activiti Parallel Sub-Processes Guide","datePublished":"2024-03-14T02:19:59+00:00","dateModified":"2025-07-31T18:25:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/"},"wordCount":121,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Activiti","BPM","Java Workflow","parallel sub-processes","Workflow Automation"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/","name":"Activiti Parallel Sub-Processes Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T02:19:59+00:00","dateModified":"2025-07-31T18:25:34+00:00","description":"Learn how to implement parallel sub-processes in Activiti with code examples and best practices.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-call-multiple-parallel-sub-processes-in-activiti\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Activiti Parallel Sub-Processes Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/2e83cc6ab9f60d36921c2d0f9f280f4a","name":"Noah Thompson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350e537e1530ede2762ee0237e877d6693f4f7163ab4f303202cc9a6b27b6cb4?s=96&d=mm&r=g","caption":"Noah Thompson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/noahthompson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=5059"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5059\/revisions"}],"predecessor-version":[{"id":149793,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/5059\/revisions\/149793"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=5059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=5059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=5059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}