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”--> 经过 2 个 next ,只勾上 ”Export Runtime” 选项 —> 点击 Export.( 如下图所示 )
2. 在 Eclipse 中创建一个 maven 项目,并添加上 bonita engine 的依赖。
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.bonitasoft.example</groupId>
- <artifactId>runtime</artifactId>
- <version>1.0</version>
- <packaging>jar</packaging>
- <name>runtime</name>
- <dependencies>
- <dependency>
- <groupId>org.ow2.bonita</groupId>
- <artifactId>bonita-client</artifactId>
- <version>5.5.1</version>
- </dependency>
- <dependency>
- <groupId>org.ow2.bonita</groupId>
- <artifactId>bonita-server</artifactId>
- <version>5.5.1</version>
- </dependency>
-
- .....
- </dependencies>
- </project>
3. 设置 BONITA_HOME 和 JAAS
BONITA_HOME 是一个名为 "bonita" 的文件夹 , 它包含 "client", "external" 和 "server" 这 3 个子文件夹,位于Bonita runtime 根目录下 .
- // Initialize BONITA_HOME
- final String bonitaHome = System.getProperty(WebBonitaConstants.BONITA_HOME);
- if (bonitaHome == null) {
- System.setProperty(WebBonitaConstants.BONITA_HOME, "C:\runtime\bonita");// BONITA_HOME Path
- }
- String defaultLoginFile = bonitaHome + "/external/security/jaas-standard.cfg";
- System.setProperty(org.ow2.bonita.util.BonitaConstants.JAAS_PROPERTY, defaultLoginFile);
4. 每次调用engineAPI 中的时候,必须先用“BonitaAuth-default” Context 登录,否则无法使用engineAPI 。
- private static final String LOGIN = "admin";
- private static final String PASSWORD = "bpm";
- //login
- final LoginContext loginContext = new LoginContext("BonitaAuth-defalut", new SimpleCallbackHandler(LOGIN, PASSWORD));
- loginContext.login();
- try{
- final List<org.ow2.bonita.facade.identity.User> theUsers = AccessorUtil.getIdentityAPI().getUsers(0, 20);
- } catch(Exception e) {
- e.printStackTrace();
- } finally {
- loginContext.logout();
- }
对于 Bonita 中一些 BPM 术语的解释,请参照 bonitasoft-custom-application-development.pdf (http://www.bonitasoft.com/resources/documentation-library )。
完整的例子请下载附件。
Bonita BPM 中文社区