ZH/Case-Study-01-Journal-31

From ADempiere
Revision as of 07:30, 25 December 2010 by Peanutblake (Talk) (Rule Engine下写脚本)

Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

<返回中文首页> <返回本案例研究首页>

实施日志-31-脚本编写与Rule引擎


2010-12-16

Rule Engine与脚本

  • 今天开始学习和探索Rule Engine(引擎)的Script(脚本编程)。
  • 主要目的:从于从RfQ(询价单)创建Purchase Request(采购申请)。
  • 介绍:ADempiere的Rule窗口可以写脚本,集成了BeanShell。
  • ADempiere的Rule Engine要用到BeanShell,于是了解了一下BeanShell。
  • 相关链接:

讨论栏

2010-12-17

Rule Engine下写脚本

  • 今天把Rule Engine(引擎)的Script弄清楚了。
  • Script Callout主要用于窗体,Script Process主要用于Process。
  • 对于从 询价单 生成 采购申请单,可以利用Script Process执行SQL语句来实现。
 org.compiere.util.DB.executeUpdate(sql, A_TrxName);

脚本使用体会

  1. 优点:脚本的功能很强大。同时脚本既不需要重新编译ADempiere源代码,也不需要重新布署ADempiere服务器,因为脚本规则都存储在数据库中了。
  2. 缺点:不容易进行错误调试。我今天测试的Script当中有个SQL语句语法错误,居然没有任何报错。

对Rule Engine的疑问

  • Rule Engine为什么要区分成不同Event Type?比如Callout与Process,为什么不合并在一起?
  • Rule Engine的Rule Type为什么是JSR 223 Scripting APIs,而不是BeanShell官方网站上JSR 274?
  • A_TrxName的TrxName是什么意思?
  • Rule Engine中能否实现弹出对话框?代码什么?
    • 后来找到一段代码,不过尚未测试:
 javax.swing.JOptionPane.showMessageDialog(null,"Doing something in Callout!");

链接