Camunda 工作流引擎集成

599 阅读2分钟

camunda流程引擎集成

首先通过ProcessEngineConfiguration来配置流程引擎并启动

ProcessEngineConfiguration分为三种:

  • JtaProcessEngineConfiguration:支持流程事务与框架事务整合的配置。
  • StandaloneProcessEngineConfiguration:标准配置,可能有些功能会确实。
  • SpringProcessEngineConfiguration:和Spring整合,使用了Spring框架的可以优先选择

ProcessEngineConfiguration主要的配置项有

  1. configuration.setIdGenerator(idGenerator) 
    使用 UUID 生成主键

  2. configuration.setDataSource(dataSource)
    设置数据源(用于保存流程的表结构和数据),当然如果有多数据源,最好jta事务管理多数据源事务
    如果流程中调用系统服务时出错保证事务回滚.

  3. configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE)
    设置流程引擎数据库生成表策略,我使用的是每次启动自动更新表结构,生产环境初始化一次就可关闭此选项了

  4. configuration.setCustomFormTypes(formFieldTypes)
    设置流程引擎自定义表单类型,类型需要实现 FormType 接口,后续会说一下如何完成添加自定义表单类型,camunda 有个依赖 camunda-common-typed-values jar包内有一些表单类型可用,但是业务系统所需要的表单类型远不止这些,需要更多的自定义类型支持工作流引擎

  5. configuration.setCustomPreVariableSerializers(typeValueSerializers)
    设置自定义字段解析器, 流程自定义表单类型需要配合类型解析器来工作,解析器内定义如果将你的自定义类型保存到数据表 variables ,和如果从数据表取出来变成自定义类型.

  6. configuration.setClassLoader(classLoader)
    设置类加载器, 如果需要使用scriptTask groovy 脚本等,需要使用当前类加载器

  7. configuration.setTransactionManager(getTransactionManager())
    设置事务管理器,springboot 的configuration 好像有个属性直接集成事务管理器了

  8. configuration.setEnableFetchScriptEngineFromProcessApplication(true)
    设置脚本执行上下文,主要是使用 serviceTask 或者scriptTask 时有用

  9. processEngine = configuration.buildProcessEngine()
    启动工作流,并且初始化流程引擎,流程引擎是camunda 各种service 的入口了, 熟悉activitie 的这里应该很熟,基本activiti系列的工作流都是这么搞.

参考