使用Java库生成BPMN



试图生成一个BPMN图,甚至是一个包含开始事件,结束事件和一些用户任务的基本图。是否有任何Java库或API可用来帮助我实现这一点。我四处找了很多,但没有找到合适的。如有任何帮助,不胜感激

如果需要Java库,可以使用Camunda模型构建器API。

public static void main(String[] args) {
BpmnModelInstance modelInst;
try {
// File file = new File(ModelModifier.class.getClassLoader().getResource("process1.bpmn").toURI());
File file = new File("./src/main/resources/process1.bpmn");
//  modelInst = Bpmn.readModelFromFile(file);
modelInst = Bpmn.createProcess()
.name("Twitter QA")
.executable()
.startEvent()
.userTask().id("ApproveTweet").name("Approve Tweet")
.exclusiveGateway().id("isApproved").name("Approved?")
.condition("approved", "#{approved}")
.serviceTask().id("sendTweet").name("Send tweet")
.endEvent().name("Tweet sent")
.moveToLastGateway()
// done();
// Gateway gateway = modelInst.getModelElementById("isApproved");
// gateway.builder()
.condition("Not approved", "#{!approved}")
.serviceTask().name("Send Rejection")
.endEvent().name("Tweet rejected").done();
log.info("Flow Elements - Name : Id : Type Name");
modelInst.getModelElementsByType(UserTask.class).forEach(e -> log.info("{} : {} : {}", e.getName(), e.getId(), e.getElementType().getTypeName()));
Bpmn.writeModelToFile(file, modelInst);
//        file.createNewFile("/tmp/testDiagram2.bpmn")
} catch (Exception e) {
e.printStackTrace();
}
}

下面是一个带有几个示例的项目:https://github.com/rob2universe/bpmn-creator.

如果你对js也很熟悉,那就从bpmn中找到bpmn.js。IO优先

我假设您想要一个带有呈现上述BPMN图的UI的东西,并且可能允许用户创建它。BPMN。io提供BPMN.js (git hub链接)。你可以使用他们的在线建模器看看它是如何工作的。我还没有看过将其集成到解决方案中的许可,所以不确定它是否适合您的用例。

我还会看看一些开源包。Camunda曾经有一个开源社区版本,我认为它具有建模功能,但我已经好几年没有检查过它的当前状态了。

最新更新