从http://www.omg.org/spec/BPMN/2.0.2/PDF(第238页):
如果Process用作全局Process(可以从其他进程的Call Activities调用的可调用进程)并且有多个None Start Events,那么当flow从父进程转移到全局进程时,只有一个进程将触发全局流程的启动事件.可以扩展传递给Call Activity对象的Sequence Flow的targetRef属性,以识别适当的Start Event.
如何扩展targetRef属性?它不一定是有效的IDREF吗?也许他们的意思是应该使用自定义属性扩展sequenceFlow元素?
有这种延期的例子吗?现有的BPMN工具是否支持它?
这是我手工编辑的BPMN片段,用于说明问题:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL">
<process id="p1" name="Process 1" isExecutable="false" processType="Private">
<sequenceFlow id="startAflow" sourceRef="start" targetRef="A"/>
<sequenceFlow id="callActivityFlow" sourceRef="A" targetRef=" !? WHAT_GOES_HERE ?! "/>
<startEvent id="start" name="Start">
<outgoing>startAflow</outgoing>
</startEvent>
<task id="A">
<incoming>startAflow</incoming>
<outgoing>callActivityFlow</outgoing>
</task>
<callActivity id="call" calledElement="p2">
<incoming>callActivityFlow</incoming>
</task>
</process>
<process id="p2" name="Process 2" isExecutable="false" processType="Private">
<sequenceFlow id="start2Aflow" sourceRef="start1" targetRef="2A"/>
<sequenceFlow id="start2Bflow" sourceRef="start2" targetRef="2B"/>
<startEvent id="start1" name="Start">
<outgoing>start2Aflow</outgoing>
</startEvent>
<task id="2A">
<incoming>start2Aflow</incoming>
</task>
<startEvent id="start2" name="Start in middle …Run Code Online (Sandbox Code Playgroud) 我正在Alfresco的工作流程中集成applet.我在org/alfresco/components/form/controls/workflow/activiti-transitions.ftl这里创建了一个新按钮
...
<button onclick="changePDF(); this.disabled=true; return false;"> Change </button>
<div id="pdfTexto" style="width:1000px;height:1000px"></div>
<div class="applet">
<script type="text/javascript">
deploy();
</script>
</div>
</#if>
Run Code Online (Sandbox Code Playgroud)
此按钮更改(通过applet的javascript)调用applet的功能,该功能在相应工作流的文件中进行更改.在此之后,我想像"Approved"按钮accept标准那样.但是,我只想在更改生效后再进行此操作.我的applet "ok"在更改完成后返回一个(POST请求完成),之后,我想放置"Approved"并重定向到"accept"按钮重定向的同一页面.在简历中,在"确定"之后,按下接受按钮.
我的applet用以下内容更新现有文档的内容:
http://localhost:8080/share/proxy/alfresco/api/upload...
我该怎么做?有什么提示可以获得更好的解决方案吗?
进化: 我正在努力做到这一点:
var form = new FormData();
form.append("prop_wf_reviewOutcome","Approve");
form.append("prop_bpm_comment","good");
form.append("prop_transitions","Next");
var requestTask = new XMLHttpRequest();
requestTask[Alfresco.util.CSRFPolicy.getHeader()] = Alfresco.util.CSRFPolicy.getToken();
requestTask.open("POST", "http://localhost:8080/share/proxy/alfresco/api/task/"+ taskidVar+ "/formprocessor" + "?" + Alfresco.util.CSRFPolicy.getParameter() + "=" + encodeURIComponent(Alfresco.util.CSRFPolicy.getToken()));
requestTask.send(form);
Run Code Online (Sandbox Code Playgroud)
但缺少将页面重定向为"批准"按钮.
workflow alfresco activiti alfresco-share alfresco-webscripts
我必须使用项目服务公开Activiti API流程。
我的要求如下:
在运行流程之前,我想使用Java了解有关Activiti流程定义中的任务的详细信息。在创建Activiti ProcessInstance之前。有什么办法可以做到这一点?
我已经遍历了Activiti API的Java文档和用户指南,但找不到方法。
任何帮助将不胜感激,谢谢。
我在Activiti中有一个独有的网关,如何在Java代码中为独占网关设置条件变量?
variableData.put("condition", conditionVar);
taskService.complete(task.getId(), variableData);
Run Code Online (Sandbox Code Playgroud)
我如何在网关流上提取任务变量?是否有可能或我必须使用过程变量?
我们已经开始在弹簧堆栈上使用最新版本的新项目.但我们有工作流程要求,我过去使用过activiti.但是我看到没有弹簧靴2支持activiti和camunda.任何人都可以建议哪个BPM最好可以与spring boot 2集成.
我将如何在 Spring Boot 应用程序中使用两个单独的数据源?
我希望我的应用程序使用一个数据源,用于持久化我的模型和一个单独的数据源供 Activiti 引擎使用,因此它可以将其实体保存在单独的数据库中。
截至目前,Activiti 的表和我的应用程序的表是在同一个数据库中创建的。
[编辑]:
我知道我可以定义两个单独的 DataSource bean,例如:
@Bean
public DataSource appDataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
dataSource.setUrl("xxx");
dataSource.setUsername("xxx");
dataSource.setPassword("xxx");
return dataSource;
}
@Bean
public DataSource activitiDataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("xxx");
dataSource.setUrl("xxx");
dataSource.setUsername("xxx");
dataSource.setPassword("xxx");
return dataSource;
}
Run Code Online (Sandbox Code Playgroud)
但是我如何通知 Activiti 使用 activitiDataSource?
我正在使用 Activiti 5.16.4,顺便说一句...
谢谢!
我得到了 - 无法更新Activiti数据库架构:数据库中的未知版本:'5.20.0.1'?知道为什么会出现这个错误吗?我正在使用activiti-engine-5.18.0 jar
我正在尝试使用eclipse在Alfresco Activiti之外部署一个进程.
我创建了流程引擎、存储库服务、运行时服务并部署了 BPMN 工作流程。我还创建了一个 Process 实例并能够启动它。问题是,当我尝试使用“deleteProcessInstance”方法挂起或删除流程实例时,我收到一条错误消息,指出找不到 ProcessInstanceId!PS:我在某处了解到BPMN中的processId在Activiti中被视为processKey。
代码:
public void startProcess(String processDefinitionKey)
{
ListenerClass.processInstance=ListenerClass.runtimeService.startProcessInstanceByKey(processDefinitionKey);
}
public void deleteProcess(String processInstanceId)
{
System.out.println("Stopping Process instance id " +processInstanceId);
ListenerClass.runtimeService.deleteProcessInstance(processInstanceId, "Ok");
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,在启动流程实例时,我传递了BPMN.xml文件的“Process Id”。(这意味着BPMN.xml的processId = Activiti的processInstanceKey)
我的 BPMN.xml:
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_1" xmlns:activiti="http://activiti.org/bpmn"
targetNamespace="http://bpmn.io/schema/bpmn">
<bpmn:process id="Process_11" isExecutable="true" name="Hima">
<bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>SequenceFlow_06sykhd</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="SequenceFlow_06sykhd" sourceRef="StartEvent_1" targetRef="Task_1dt8brv" />
<bpmn:endEvent id="EndEvent_0cb0ioi">
<bpmn:incoming>SequenceFlow_1doj4n6</bpmn:incoming>
</bpmn:endEvent>
<bpmn:serviceTask id="Task_1dt8brv"
name="My Java Service Task"
activiti:class="com.bosch.bip.Service.task1" >
<bpmn:incoming>SequenceFlow_06sykhd</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_156te78</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:serviceTask id="Task_10bfll9" activiti:class="com.bosch.bip.Service.task1">
<bpmn:incoming>SequenceFlow_156te78</bpmn:incoming>
<bpmn:outgoing>SequenceFlow_1doj4n6</bpmn:outgoing>
</bpmn:serviceTask> …Run Code Online (Sandbox Code Playgroud) 为什么我们需要像 Uber 的 Cadence、Camunda 或 Activiti 这样的特殊软件?如果它只是一系列任务,那为什么我们不能直接编码呢?我试图阅读 Camunda 和 Cadence 的文档,但无法深入了解。我公司想用。考虑过它的高级开发人员无法/似乎不会解释为什么或在哪里使用它。
而且我发现他们设置工作流程的代码/方式非常不直观。有人请帮忙。
该项目是使用 Java 和 Spring Boot 开发的。
我们目前使用核心 Activiti 5.22.0.5 版本来编排 spring-boot 微服务,现在需要将 Activiti 升级到最新版本 Activiti 7.x
有人可以告诉我最新版本有哪些附加功能,并告诉我是否可以直接升级到最新版本吗?
如果不可能,那么我们的升级流程应该是什么?
(例如:Activiti 5.22.0.5 -> Activiti 6.x -> Activiti 7.x 或其他)
如果有人做过类似的要求,请帮助我?如果没有,请在列表中让我知道这些版本之间的区别以及最新版本中提供的功能。
提前致谢
activiti ×10
java ×4
alfresco ×3
camunda ×3
workflow ×3
bpmn ×2
jbpm ×2
spring-boot ×2
architecture ×1
datasource ×1
h2 ×1
ibm-bpm ×1
spring ×1