您的位置:

Exploring Flowable文档-一个全方位的开源BPMN引擎

Flowable文档提供全面的工作流、BPMN流程引擎和当前IT领域最先进的DMN(决策模型和表示法)引擎。它提供了许多控制流程的功能,如流程示图、任务列表、流程定义和实例状态等,同时它也支持REST API、Spring/Spring Boot集成以及各种插件等。此外,Flowable文档还提供了详细的流程提交指南、模块化指南和API文档以及示例。

一、BPMN引擎

Flowable文档最通用的功能是其开源的BPMN引擎,它遵循了BPMN 2.0流程标准。它的主要功能包括支持常规的流程,如加签、并行分支、条件分支和子流程。同时,它还支持事件驱动、超时控制、多实例和动态指派任务,使其简单易用。

1、如何创建和管理流程定义

首先,我们需要创建一个流程定义。根据Flowable的要求,在创建定义过程之前,必须完成流程设计,并在BPMN模型中定义了所有任务和连接。在此之后,我们就可以从这个模型创建到部署,也就是将模型编译成XML文件(以.bpmn20.xml结尾),最终在流程引擎中启动。 Flowable提供了各种方法来管理流程定义,例如列表、查询和启动。可以使用REST API、JPA、Hibernate、Mybatis、 Spring和Spring boot等各种技术对定义进行管理。

2、如何创建和管理流程实例

定义完成后,就可以通过流程实例来处理流程。流程实例表示实际流程的一个特定运行。 每个流程实例都有一个唯一的ID和一个定义ID,这些都是用来标识和参照每个实例的。Flowable提供了各种方法来管理流程实例,例如列表、查询和挂起。还可以使用REST API、JPA、Hibernate、Mybatis、Spring和Spring boot等各种技术对实例进行管理。

二、DMN引擎

Flowable文档还提供了当前IT领域最先进的DMN引擎,它使用DRD(决策需求图)打包DRG(决策需求图),并且支持出色的先进函数、密集类型和纯DRL(规则语言)休眠时的决策表。Flowable的DMN遵循最新的DMN1.1规范,它和BPMN引擎集成完美无缝,使流程和决策无缝衔接。

1、如何创建和管理决策表

Flowable提供了各种方法来创建和管理DMN规则,例如通过配置文件、REST API、XML和Java代码文件等。无论使用哪种方式,都可以方便地将规则表编辑器中定义的规则映射到XML形式,并从中创建规则实例。还可以使用Flowable提供的DMN解释器来支持决策表的自动推断。在创建决策表前,必须按照决策需求图(DRD)的要求对要处理的数据进行建模和分解,才能将设定的规则与之匹配。

2、如何评价和实行决策表

在创建和管理完决策表后,可以评价它们并根据结果来实行决策。 每个规则都有自己的条件语句和行为语句。每次评估决策表时,规则都会按照先前的信息执行相应的行为。Flowable提供了各种用于评估决策表的方法,例如基于规则的评估、基于事件的评估和基于状态的评估。各种方法都具有各自的优缺点。

三、插件和集成

Flowable文档还提供了各种插件和集成,可以扩展其功能或将其与其他技术集成。最常见的插件包括表单插件、Spring Security插件、AWS插件和LDAP插件。同时,Flowable还支持REST API、JPA、Hibernate、Mybatis、Spring Security和Camunda BPM/Spring框架等各种技术的集成。它还可以通过使用Eclipse插件或IntelliJ IDEA插件等来简化流程定义和调试过程。

1、如何使用表单插件

// 表单配置类
@Bean
public FormHandlerRegistry formHandlerRegistry() {
FormHandlerRegistry formHandlerRegistry = new FormHandlerRegistry();
formHandlerRegistry.addFormHandler(myFormHandler());
return formHandlerRegistry;
}
//自定义表单处理器
@Bean
public MyFormHandler myFormHandler() {
    return new MyFormHandler();
}

通过创建自定义的表单处理程序,并将其与Spring、Spring Boot或其他技术进行集成,可以在Flowable中使用表单插件。Flowable文档还提供了各种内置的表单widget和表单控件,以及各种基于反应式编程的表单API,具有很高的灵活性和扩展性。

2、如何使用Spring Security插件

// Security配置类
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/flowable/**").authenticated().and().formLogin();
}

@Override
protected void configure(AuthenticationManagerBuilder auth) {
try {
auth.inMemoryAuthentication().withUser("admin").password(passwordEncoder().encode("admin")).roles("ACTIVITI_USER");
} catch (Exception e) {
e.printStackTrace();
}
}

@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}

}

通过创建自定义的Security配置类,并将其与Spring、Spring Boot或其他技术进行集成,可以在Flowable中使用Spring Security插件。该插件使得安全管理变得非常容易,Flowable用户可以像以前一样管理用户角色和权限,而无需担心安全问题。

3、如何使用AWS插件

通过使用Flowable提供的AWS插件,IT团队可以轻松将Flowable安装在AWS环境中。因为AWS已经成为云计算行业的领导者,它可以为流程引擎提供最优化的性能和可伸缩性。使用Flowable与AWS集成时,可以在没有任何长期承诺的情况下,支付按需使用,并基于IT资源的实际使用量进行计费,这使得成本更加高效、廉价。

4、如何使用LDAP插件

// LDAP配置类
@Configuration
public class LdapConfiguration {

@Bean
public LdapContextSource contextSource() {
LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrl("ldap://localhost:389");
contextSource.setBase("dc=example,dc=com");
return contextSource;
}

@Bean
public LdapTemplate ldapTemplate() {
return new LdapTemplate(contextSource());
}

}

通过创建自定义的LDAP配置类,并将其与Spring、Spring Boot或其他技术进行集成,可以在Flowable中使用LDAP插件。该插件可以鉴定并验证用户身份,确保正确的权限被分配给每个用户角色。Flowable提供了各种内置的LDAP接口和API,以及各种集成服务,可以轻松实现与其他技术之间的集成。