我一直在我的项目中使用JBPM工作流程,我有一个关于生成数据库补丁或SQL语句以应用JBPM工作流程修改的小问题.
目前,JBPM工作流提供了一种通过部署最新流程定义来刷新模式中的JBPM表的方法.但是,如果我的系统已经使用状态X部署了流程定义,现在我已经修改了流程定义文件以适应更改X2.我仍然需要能够部署增量更改,而不会中断旧保存数据的实例.
是否可以仅为JBPM流程定义修改生成"delta"数据库脚本?还有哪些其他优秀工具可用于更直观地修改流程定义?
为了重申我的问题,JBPM部署清理那里维护的旧实例的JBPM表,然后重新部署最新的文件; 如何在不删除旧数据的情况下生成增量?有没有用户友好的工具?
在这方面的任何帮助将不胜感激.
工作中现有系统的一部分使用jBPM,我需要组建的新模块需要它.但是,我不知道从哪里开始学习如何使用它.
我可以访问服务器上的JBoss 4,以及我需要进行本地开发的任何内容.我没有任何JBoss的经验,无论是服务器,jBPM等.
与我可以找到的教程类似的唯一内容是用户手册,它似乎假设您具有比我更多的工作知识以便能够使用它.我也从未使用过Ant(除了在IDE中运行一些预制的构建脚本)或JHibernate,这对我来说似乎都很重要.
我被给了一个星期的时间来学习我能做的一切.
什么是一个好的起点,无论是书籍还是网站,让我学习如何使用JBoss和co.?
我在jBPM项目中使用Persistence时遇到了一些麻烦.
我的配置是jBPM 5.4 + Hibernate + JPA 2,我目前正在设置流程,通过persistence.xml连接到具有持久性的数据库.我只是尝试将默认数据源(在H2服务器中)与我的自定义persistence.xml连接,但我一遍又一遍地得到相同的错误:
Unknown entity: org.jbpm.persistence.processinstance.ProcessInstanceInfo
Run Code Online (Sandbox Code Playgroud)
我已经手动将我的src/META-INF文件夹中的JBPMorm-JPA2.xml添加到以下内容中,但错误仍然存在.谁能帮我?
JBPMorm-JPA2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_2_0.xsd"
version="2.0">
<named-query name="ProcessInstancesWaitingForEvent">
<query>
select
processInstanceInfo.processInstanceId
from
ProcessInstanceInfo processInstanceInfo join processInstanceInfo.eventTypes eventTypes
where
eventTypes = :type
</query>
</named-query>
<!-- ProcessInstanceInfo mapping (needed for JPA 2) -->
<entity class="org.jbpm.persistence.processinstance.ProcessInstanceInfo"
metadata-complete="true">
<pre-update method-name="update" />
<attributes>
<id name="processInstanceId">
<column name="InstanceId" />
<generated-value strategy="AUTO"/>
</id>
<basic name="processId" access="FIELD" />
<basic name="startDate" access="FIELD" >
<temporal>DATE</temporal>
</basic>
<basic name="lastReadDate" access="FIELD" >
<temporal>DATE</temporal>
</basic>
<basic name="lastModificationDate" …Run Code Online (Sandbox Code Playgroud) 在我的项目中有一个现有的old.jpdl.xml定义.它工作正常.现在我想运行另一个new.jpdl.xml定义.在部署了ear文件之后,我尝试使用新的ProcessDefinitionId在下面的代码的帮助下阅读new.jpdl.xml.
我相信我缺少部署步骤.有人可以指导我,如何部署或阅读new.jpdl.xml?
public String getProcessInstanceID(ProcessEngine processEngine,
FlowControl flowcontrol, String processDefinitionID)
{
String processInstanceID = null;
log.debug("Entering method - getProcessInstanceID");
ProcessDefinitionQuery pdq = processEngine.getRepositoryService()
.createProcessDefinitionQuery();
pdq.deploymentId(processDefinitionID);
ProcessDefinition procDef = pdq.uniqueResult();
if (null == procDef)
{
log.error("Process Definition could not be found for the deployment ID: "
+ processDefinitionID);
}
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("flowcontrol", flowcontrol);
ProcessInstance processInstance = processEngine.getExecutionService()
.startProcessInstanceByKey(procDef.getKey(), variables);
log.debug("Process Instance ID:" + processInstance.getId());
processInstanceID = processInstance.getId();
log.debug("Exiting method - getProcessInstanceID");
return processInstanceID;
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个原型,它应该读取bpmn2文件并列出其所有任务.
目前我有一个使用jBPM 6的简单Maven应用程序.我不需要任何应用程序服务器,工作台等,因为它只是一个简单的桌面应用程序.
如果我像这样初始化引擎(正如官方文档所建议的那样):
RuntimeEnvironment environment =
RuntimeEnvironmentBuilder.Factory.get()
.newDefaultInMemoryBuilder()
.persistence(false)
.addAsset(ResourceFactory.newClassPathResource("poc4.bpmn2"), ResourceType.BPMN2)
.get();
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named org.jbpm.persistence.jpa
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
at org.jbpm.runtime.manager.impl.DefaultRuntimeEnvironment.init(DefaultRuntimeEnvironment.java:72)
at org.jbpm.runtime.manager.impl.RuntimeEnvironmentBuilder.get(RuntimeEnvironmentBuilder.java:314)
at org.jbpm.runtime.manager.impl.RuntimeEnvironmentBuilder.get(RuntimeEnvironmentBuilder.java:56)
at com.test.jbpmpoc.main(App.java:11)
Run Code Online (Sandbox Code Playgroud)
请注意,我正在尝试使用明确禁用的持久性启动引擎,但我认为不需要,因为文档说默认情况下引擎不使用持久性.
根据我的研究,至少有两种初始化引擎的方法.
使用提供运行时环境的构建器 - 我已经在做了.这似乎是最推荐的方法,因为默认情况下会初始化所有服务.但是,正如这里和这里所说的,如果你想使用Tasks(这是我做的事情),这个方法需要设置持久性.
手动初始化所有内容.我不太喜欢这个,因为运行一个简单的应用程序听起来太费劲了.
使用其他运行时环境构建器.
起初,我尝试使用文档建议的persistence.xml,但在创建时遇到了不同的错误EntityManagerFactory:
Exception in thread "main" javax.persistence.PersistenceException: Unable to build entity manager factory
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:83) …Run Code Online (Sandbox Code Playgroud) 我正在尝试集成spring和JBPM,我做了谷歌的示例应用程序,发现一个github项目解释相同.
使用的框架版本:
我已经将github项目导入eclipse工作区,并且在maven clean之后我得到例外说:
Listed class "org.jbpm.task.Status" must not be an enum persistence.xml /jbpm-spring-web/src/main/resources/META-INF line 30 JPA Problem
Run Code Online (Sandbox Code Playgroud)
和src/main/resources/META-INF/Taskorm-JPA2.xml文件中的一些JPA查询异常如:
The abstract schema type 'OrganizationalEntity' is unknown. Taskorm-JPA2.xml /jbpm-spring-web/src/main/resources/META-INF line 375 JPA Problem
Run Code Online (Sandbox Code Playgroud)
和
The IN expression does not have a valid left expression. Taskorm-JPA2.xml /jbpm-spring-web/src/main/resources/META-INF line 7 JPA Problem
Run Code Online (Sandbox Code Playgroud)
如何解决这些异常?
persistence.xml看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd">
<persistence-unit name="org.jbpm.runtime" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/jbpm-ds</jta-data-source>
<mapping-file>META-INF/JBPMorm-JPA2.xml</mapping-file>
<mapping-file>META-INF/ProcessInstanceInfoMapping.xml</mapping-file>
<mapping-file>META-INF/Taskorm-JPA2.xml</mapping-file>
<class>org.jbpm.task.Attachment</class>
<class>org.jbpm.task.Content</class> …Run Code Online (Sandbox Code Playgroud) Recently started a migration of a large Java EE application from Oracle 12c to MS SQL Server 2016. Most functionality has been smoke tested to work OK including the Quartz Scheduler, basic JMS functions, Hibernate and EJBs working ok, etc. One weird issue has stalled progress so hoping someone might have a suggestion.
The jBPM console works to be able to log in and start/suspend/stop tasks. There is an situation that always triggers an error. The jBPM task can be …
因此,我们正在探索使用Drools / JBPM,并且发现很难从JBPM中获取数据。我觉得我们缺少明显的东西。
我们正在使用RESTful接口启动JBPM流程并创建一个流程实例:POST /server/containers/{containerId}/processes/{processId}/instances
但是,在流程实例完成之后,我们需要检索结果。你是怎样做的?JBPM流程中是否需要设置某些内容(例如变量或其他变量)?
在这一点上,我们已经倾倒了大量的示例和文档,但是似乎找不到简单的答案。
谢谢-乔纳森
我想知道jbpm、kie server 和kie workbench 有什么区别。我现在正在研究 jbpm 教程,所以我下载了完整的安装程序。但是,我读到: 1. jbpm 可以作为不同的 jars 分发。2. kie 服务器是作为战争分发的。
那么它们之间是什么关系呢?他们整合在一起了吗?它们是一样的吗?
这一切是如何与 Jboss EAP 集成/相关的?
jbpm ×10
java ×3
jboss ×3
drools ×2
kie ×2
persistence ×2
bpel ×1
esb ×1
hibernate ×1
jbi ×1
jboss-eap-6 ×1
jboss-web ×1
jdbc ×1
jpa ×1
jpa-2.0 ×1
jpdl ×1
kie-server ×1
redhat-bpm ×1
spring ×1
workflow ×1