nocobase怎么集成flowable
将Flowable集成到Nocobase中需要以下步骤:
- 安装Flowable
首先,需要安装Flowable。可以通过Flowable官网下载Flowable源代码并编译,或者从Flowable官方提供的Maven仓库获取Flowable依赖包。
- 添加Flowable依赖
在Nocobase项目中的package.json文件中添加Flowable依赖:
"dependencies": {
...
"flowable": "^6.6.0",
...
}
- 配置Flowable
在Nocobase项目中的.env文件中添加Flowable相关配置:
FLOWABLE_DB_DRIVER=org.postgresql.Driver
FLOWABLE_DB_URL=jdbc:postgresql://localhost:5432/flowable
FLOWABLE_DB_USERNAME=flowable
FLOWABLE_DB_PASSWORD=flowable
这里假设Flowable的数据库使用PostgreSQL,数据库名为flowable,用户名和密码均为flowable。
- 集成Flowable
在Nocobase中集成Flowable的方式有两种:使用Flowable REST API或使用Flowable Java API。
使用Flowable REST API:
可以通过Nocobase中的HTTP函数调用Flowable REST API完成相关操作,例如:
const res = await $http.post('http://localhost:8080/flowable-rest/service/repository/deployments', {
name: 'My workflow',
source: 'My workflow.bpmn20.xml',
tenantId: 'mytenant'
});
使用Flowable Java API:
需要在Nocobase项目中编写Java代码引入Flowable Java API,并在代码中调用相关方法完成工作流操作。在Nocobase中可以通过自定义函数的方式实现该功能。例如:
// MyFunction.java
import org.flowable.engine.ProcessEngine;
import org.flowable.engine.ProcessEngineConfiguration;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.repository.Deployment;
import org.nocobase.runtime.Context;
import org.nocobase.runtime.function.Response;
public class MyFunction {
public Response execute(Context ctx, Object[] args) {
ProcessEngineConfiguration cfg = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration()
.setJdbcDriver(ctx.env("FLOWABLE_DB_DRIVER").asString())
.setJdbcUrl(ctx.env("FLOWABLE_DB_URL").asString())
.setJdbcUsername(ctx.env("FLOWABLE_DB_USERNAME").asString())
.setJdbcPassword(ctx.env("FLOWABLE_DB_PASSWORD").asString())
.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
ProcessEngine processEngine = cfg.buildProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deployment = repositoryService.createDeployment()
.name("My workflow")
.addInputStream("My workflow.bpmn20.xml", getClass().getResourceAsStream("/My workflow.bpmn20.xml"))
.tenantId("mytenant")
.deploy();
return new Response(deployment.getId());
}
}
然后在Nocobase中创建自定义函数,并调用该函数即可完成相关操作:
const res = await $fn('my-function');
console.log(res); // 输出:deploymentId
注意,使用Flowable Java API需要在Nocobase项目中引入相关的依赖包。可以在pom.xml文件中添加依赖:
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-engine</artifactId>
<version>6.6.0</version>
</dependency>
``
原文地址: http://www.cveoy.top/t/topic/egLe 著作权归作者所有。请勿转载和采集!