為了實現工作流中對腳本的支持,簡單的玩了一下 BeanShell,這個小小的嵌入式 Java 代碼解釋器可以將 Java 語言像動態腳本一樣執行,幾行命令,它就能把一段 Java 代碼給玩轉。
工作流中有個這樣的簡單案例,當一筆單子金額大于 50萬時,應該將任務分配給 Senior Agent 處理,否則交給 Junior Agent 處理,我們用 BeanShell 簡單模擬這段腳本。
public static void main(String[] args) throws Exception {
Interpreter i = new Interpreter();
i.set(”price”, 1000000);
i.set(”user”, “”);
i.eval(”if(price > 500000)\n” +
“user = \”SeniorAgent\”;\n” +
“else \n” +
“user = \”JuniorAgent\”;”);
System.out.println(i.get(”user”));
}
運行結果是打印出了:SeniorAgent
可以看出,BeanShell 用非常動態化的方式,完成了我們一個簡單的案例的處理,這里,我們只需要將需要解析的 Java 語言的腳本交給 BeanShell 的 Interceptor,并把腳本中用到的參數值傳入,就可以了,最后,我們把運算結果賦給一個變量,然后獲取變量結果,就可以了。
看到 Developer Works 網站上有一篇 BeanShell 實現公式管理的文章:http://www.ibm.com/developerworks/cn/java/l-formula/index.html,可以參考一下。
From: http://www.steadyxp.com/archives/851.html