iDempiere 开发指南 Process(iDem后台进程)及插件的开发及部署
Created by 藍色布魯斯,QQ32876341,blog http://www.cnblogs.com/zzyan/
iDempiere官方中文wiki主頁 http://wiki.idempiere.org/zh
iDempiere 中文社區www.idempiere.org.cn
iDempiere 中文社區QQ群 65713012
本文說明如何給iDempiere創建一個Process,包括如何定義一個插件工程,建立Process,并在系統中進行調用。
本文參考的youtube視頻為:https://www.youtube.com/user/evenosconsulting/videos視頻下載地址(百度網盤):http://pan.baidu.com/s/1vqLRo
Process表示一段運行的程序,他的輸出可以是報表,也可以不輸出任何東西。
Process可以在運行過程中對其他對象進行改變,比如銷售訂單界面上面的Process Order就是一個Process,他將銷售訂單進行了Complete或者Close操作。又比如MRP運算的process,在運行的過程中生成了采購申請。
Process 也可以用來執行一系列的檢查,將結果在運行的過程中輸出到文件中或者直接存入數據庫。
Process可以設定成為按時、按計劃運行,比如每天晚上凌晨3點做MRP運算。
該文檔主要分為兩個大步驟
1. 在iDempiere系統中定義Process,包括使用到的參數,調用的菜單等
2. 使用eclipse開發該Process的OSGI插件,并部署到iDempiere上
下面為開發process的詳細操作
使用System賬戶登錄系統,進入Report & Process
建立一個新的process
給該process添加幾個參數,String, Boolean, Timedate
創建一個Menu,對該process進行調用
創建Menu,同時將該menu指向剛建立好的Process
保存以后,退出登錄,重新以GardenAdmin用戶進行登錄,查看菜單,發現該功能已經顯示在菜單里面了
打開該功能,已經能夠正常錄入參數,說明我們的Process和Menu的系統配置正常完成。下一步可以進行Process的實際開發。
開發部分,開發部分使用eclipse進行開發,具體的eclipse配置請查看前面的博客:http://www.cnblogs.com/zzyan/p/4124087.html
在eclipse中創建一個plugin project
提供一個工程名字,同時選中Target to run with "Equinox"。建議將工程建立在單獨的文件夾而不是workspace文件夾,這樣可以將自己的代碼和系統標準代碼分離開來。
選中java6,確保使用java6的用戶能夠正常使用
新的插件創建完成以后,打開項目文件,設置項目的Manifest文件。
為其添加兩個Dependencies:
org.adempiere.base和org.adempiere.plugins.utils
創建對應的包以及process的java class文件,注意,包名和java class名字組合必須和process系統設置中的名字一樣
更改java文件,iDempiere的process必須繼承SvrProcess
process有兩個函數
prepare() – 主要用于參數設置
doIt() – process的主函數,進行該process的主任務
具體的process實現我們后續添加
Process建立好了以后,我們需要新建一個factory類,并將其進行注冊,這樣我們的插件工程在啟用的時候,iDempiere的OSGI服務能夠通過該注冊找到我們提供的service。
新建一個package,并添加一個factory類
在這里我建立org.zzya.factories.MyProcessFactory類
Factory類必須繼承IProcessFactory。
我們同時重寫其函數newProcessInstance如下
我們需要創建一個component definition,來告訴OSGI我們提供了這個服務
注意,eclipse需要是J2EE版本的indigo,之前我的eclipse版本為java普通版本,導致沒有這個wizard,請重新下載一下開發環境,eclipse文件夾名稱為eclipse-jee
創建一個component definition
設置component definition的參數
其中,service.ranking為每個plugin必須設置的一個參數
現在我們可以回去更改MyProcess的定義,執行實際的編程操作
下面的函數中:
getParameter為繼承的函數,用于獲取process調用時候傳入的參數
log為繼承的對象,用于輸出日志
addLog用于輸出結果到process的結果報表
編寫完畢以后,我們重新啟動服務,并嘗試調用該process
在運行時,在run -> run configuration中,選中該plugin,同時將auto-start設置為true
運行process,設置參數
運行結果如下
查看eclipse中的log,發現log已經正常打印,說明該process插件已經正常運行
Process運行完了以后,可以在process audit中進行查看該運行的歷史記錄
Process audit中可以看到傳入的參數值,以及使用addlog輸出的log信息
下面我們進行一下擴展,看一下怎樣能夠在報表里面打印出料號信息,同時從報表中導航到料號界面。
更改MyProcess.java文件中的doIt(),同時添加一個getProducts函數,如下
重新運行,查看報表,發現報表結果顯示了產品信息
點擊超鏈接,可以看到界面導航到了產品product 界面
以上文檔說明了怎樣對idempiere系統開發及調用一個Process
總結
以上是生活随笔為你收集整理的iDempiere 开发指南 Process(iDem后台进程)及插件的开发及部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是惯性释放
- 下一篇: 民生小微普惠信用卡年费多少?看完你就清楚