我正在考虑将 jBPM 与我当前的项目集成,到目前为止,一切都很好,只是在我耳边包括了 jpdl jar 并使用了 spring 模块 0.8 jbpm 模块,但是我必须有一个合理的方法来从我的将设计器中的流程定义更改为生产中的部署。
该路径必须在许多环境(开发、许多测试、暂存和生产)中可重复,理想情况下应该在系统本身未运行时完成。
理想情况下,我会将整个定义打包为一个 SQL 脚本,但是我还没有看到任何工具可以将 processdefinition.xml 转换为 sql,并且手动组装它似乎过于繁琐且容易出错。
有没有其他人在这里有任何经验?
系统在 websphere 6.1 上运行,我倾向于避免在迁移时执行 java 代码(运行 java 代码以生成可以在迁移期间使用的工件是可以的)
最佳答案
如果您想避免走 .par
路线,很容易编写一些简单的 Java 代码来将新的流程定义版本部署到您的数据库。有点像
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance("jbpm.cfg.xml"));
ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(newPdStream);
JbpmContext context = jbpmConfiguration.createJbpmContext();
context.getGraphSession().deployProcessDefinition(processDefinition);
您需要在类路径中为相关数据库提供 hibernate.properties
或 hibernate.cfg.xml
。
这种方式的优点在于,所有版本控制工作都是自动为您完成的。我们曾经使用 hack 修改流程定义(基本上忽略版本控制),但这对于当时处于 Activity 状态的流程实例来说是一个巨大的困惑。
关于java - 如何为 jBPM 中的流程定义部署生成 sql 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/264248/