什么是Openl Tables

Openl Tables 是一个开源的规则引擎,大部分规则都可以通过Excel编写。Openl Tables提供了Webstudio来快速编写管理规则,并提供了一键部署到WebServer 服务,生成规则对应的SOAP和RestFul风格API。

官方网站:http://openl-tablets.org/
GitHub: https://github.com/openl-tablets/openl-tablets

安装

通过tomcat安装

通过Tomcat 安装,数据库选择MySql为例:

  1. 安装tomcat:
    tomcat的安装这里就不说明
  2. 下载 war 包:
    war包下载地址:https://github.com/openl-tablets/openl-tablets/releases
    下载如下最新的两个war包:
    openl-tablets-ws-x.xx.x.war
    openl-tablets-webstudio-x.xx.x.war
  3. 安装MySql数据库,并随便新建个库,例如叫:openltablets
  4. 启动Tomcat,并添加mysql驱动包
    因为刚下载的两个war包,默认都不带有mysql驱动的jar包,所以我们需要自己去下载mysql对应的jar包,下载地址:https://dev.mysql.com/downloads/connector/j/。 下载完后获得到一个
    :mysql-connector-java-5.1.45-bin.jar 的jar并把该文件复制到:\webapps\webstudio\WEB-INF\lib 和\webapps\WServer\WEB-INF\lib 下。

注意:webstudio和WServer为你第二步下载到的war包并放入tomcat的webapp中的war包名

  1. 重启tomcat
  2. 打开webstudio,并做配置
    浏览器打开:http://localhost:8080/webstudio/,第一次打开会出现如下页面,点击【start】

规则引擎--Openl Tables快速入门 - 图1

配置工作文件夹,根据自己系统配置对应位置,例如win 系统你可以设置为c:/.openl,配置完成点击【next】

规则引擎--Openl Tables快速入门 - 图2

配置Design Repository 和 Deployment Repositories,如下图配置都是存放本地mysql数据库,配置完成点击【next】

规则引擎--Openl Tables快速入门 - 图3

选中用户类型,推荐使用多用户Multi-user,并设置用户存储数据库,最后点击完成【Finish】

规则引擎--Openl Tables快速入门 - 图4

自动进入webstudio登录页面,默认账号密码admin/admin

规则引擎--Openl Tables快速入门 - 图5
规则引擎--Openl Tables快速入门 - 图6

到这位置我们已经完全把webstudio部署完成,但是这个使用时,你会发现webstudio中如果部署一个项目,在webserver上是无法显示,这时我们需要配置webserver服务

  1. 配置webserver
    修改\webapps\WServer\WEB-INF\classes下的 application.properties 文件。

修改如下配置:

  1. ruleservice.datasource.type = jcr
  2. production-repository.factory = org.openl.rules.repository.db.JdbcDBRepositoryFactory
  3. production-repository.uri = jdbc:mysql://localhost:3306/openltablets
  4. production-repository.login = root
  5. production-repository.password = vjm+2dW5aHn7P6W2ChE52g==

vjm+2dW5aHn7P6W2ChE52g==为root密码加密后的密码,你可以打开工作文件夹:.openl\system-settings\rules-production.properties文件查看到该密码

  1. 再次重启tomcat

快速入门

新建project

REPOSITORY —> Create Project
新建project 可以选择多种模板,也可以导入文件,下面以新建一个tutorials 模板为例:

规则引擎--Openl Tables快速入门 - 图7

规则引擎--Openl Tables快速入门 - 图8

简单例子

如下是我们刚新建的项目给出的一个简单例子。

规则引擎--Openl Tables快速入门 - 图9

  • SimpleRules :是关键字,表示这个表格是一个简单类型的规则
  • String :是表示这个表格结果返回的是一个字符串类型
  • Greeting4 :是规则表格的名字 ,可以随便取名
  • Integer hour :表示这个规则表格接受一个整形参数
  • Hour和Greeting : 是一个标识符,可以理解成就列的说明描述
  • 0-11、12-17…. : 是规则
  • Good Morning, World! 、Good Afternoon, World! :是规则运行结果

我们点击Run 按钮,并输入对应的时间:

规则引擎--Openl Tables快速入门 - 图10

我们就可以看到我们输入的时间符合哪条规则,获取到哪个结果值,例如下面例子,我输入5,符合0-11 输出Good Morning, World! 这条规则,所以我获取到的Result 也就是 Good Morning, World! 。

规则引擎--Openl Tables快速入门 - 图11

部署项目

REPOSITORY —> Project —>选中要部署的项目 —> Deploy

规则引擎--Openl Tables快速入门 - 图12

规则引擎--Openl Tables快速入门 - 图13

查看生成的API

部署后,我们打开我们的安装好的WebServer服务,就可以看到对应的SOAP 和RESTful 的wsdl文件,打开文件可以查看到对应对应规则的API

规则引擎--Openl Tables快速入门 - 图14

规则引擎--Openl Tables快速入门 - 图15

调用规则API

我们用postman 根据生成的文档要求,配置好接口参数并调用,获取如下

规则引擎--Openl Tables快速入门 - 图16

更多帮助

更多帮助参考官方文档:
http://openl-tablets.org/documentation