BOS(Bonita Open Solution) 是一个开源的 BPM 解决方案,有 3 个主要部分构成:

  • Bonita Studio : 用户可以根据 BPMN 标准以图标的形式来设计和修改业务流程。同时也可以连接其已有的 信息系统 ( 例如 , ERP , 企业内容管理 ECM, 数据库 ...) 来实现商业流程的自动化运用,该流程将以网络表格的形式呈现于终端用户来管理流程。博尔尼塔工作室使终端用户能够使用其他技术例如 XPDL 和 jBPM 开始流程工作 . 该技术基于 Eclipse 软件 .
  • Bonita Execution Engine : 该引擎是由 Java ( 程序语言 ) API 编写,能够允许用户介入编写流程, 是一个基于 LGPL 执照和 Hibernate 的软件。
  • Bonita User Experience :终端用户使用该门户可以像管理邮件一样管理已设置的任务,该门户也允许任务执行者来管理并且报告流程,它是基于 GWT .

本文主要介绍如何使用 Bonita Execution Engine 来开发自己的 BPM 程序。

1.        获得 Bonita Execution Engine

首先下载 Bonita Open Solution Studio(http://www.bonitasoft.com/products/BPM_downloads)-- > 安装并运行 --> 点击左上角 ”Process” 菜单 --> 选择 ”Advanced Export”--> 经过 个 next ,只勾上 ”Export Runtime” 选项 —> 点击 Export.( 如下图所示 )


2. 在 Eclipse 中创建一个 maven 项目,并添加上 bonita engine 的依赖。

Xml代码  收藏代码
  1. <project xmlns="http://maven.apache.org/POM/4.0.0"   
  2.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  4.     
  5.    <modelVersion>4.0.0</modelVersion>  
  6.   <groupId>org.bonitasoft.example</groupId>  
  7.   <artifactId>runtime</artifactId>  
  8.   <version>1.0</version>  
  9.   <packaging>jar</packaging>  
  10.   <name>runtime</name>  
  11.   <dependencies>  
  12.         <dependency>  
  13.             <groupId>org.ow2.bonita</groupId>  
  14.             <artifactId>bonita-client</artifactId>  
  15.             <version>5.5.1</version>  
  16.         </dependency>  
  17.         <dependency>  
  18.             <groupId>org.ow2.bonita</groupId>  
  19.             <artifactId>bonita-server</artifactId>  
  20.             <version>5.5.1</version>  
  21.         </dependency>  
  22.           
  23. .....  
  24. </dependencies>  
  25. </project>   

 

3.  设置 BONITA_HOME 和 JAAS

       BONITA_HOME 是一个名为 "bonita" 的文件夹 , 它包含 "client", "external" 和 "server" 这 3 个子文件夹,位于Bonita runtime 根目录下 .  

Java代码  收藏代码
  1. // Initialize BONITA_HOME  
  2.    final String bonitaHome = System.getProperty(WebBonitaConstants.BONITA_HOME);  
  3.    if (bonitaHome == null) {  
  4.        System.setProperty(WebBonitaConstants.BONITA_HOME, "C:\runtime\bonita");// BONITA_HOME Path  
  5.    }   
  6.    String defaultLoginFile = bonitaHome + "/external/security/jaas-standard.cfg";  
  7.    System.setProperty(org.ow2.bonita.util.BonitaConstants.JAAS_PROPERTY, defaultLoginFile);  
 

4. 每次调用engineAPI 中的时候,必须先用“BonitaAuth-default” Context 登录,否则无法使用engineAPI 。

Java代码  收藏代码
  1. private static final String LOGIN = "admin";  
  2. private static final String PASSWORD = "bpm";  
  3. //login  
  4. final LoginContext loginContext = new LoginContext("BonitaAuth-defalut", new SimpleCallbackHandler(LOGIN, PASSWORD));  
  5. loginContext.login();  
  6. try{  
  7.     final List<org.ow2.bonita.facade.identity.User> theUsers = AccessorUtil.getIdentityAPI().getUsers(020);  
  8. catch(Exception e) {  
  9.      e.printStackTrace();  
  10. finally {  
  11.     loginContext.logout();  
  12. }  
 

对于 Bonita 中一些 BPM 术语的解释,请参照 bonitasoft-custom-application-development.pdf (http://www.bonitasoft.com/resources/documentation-library )。

完整的例子请下载附件。

 

Bonita BPM 中文社区