BOS(Bonita Open Solution) 是一个开源的 BPM 解决方案,有 3 个主要部分构成:
本文主要介绍如何使用 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 )。
完整的例子请下载附件。