日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

iDempiere 开发指南 Process(iDem后台进程)及插件的开发及部署

發(fā)布時(shí)間:2023/12/13 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 iDempiere 开发指南 Process(iDem后台进程)及插件的开发及部署 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Created by 藍(lán)色布魯斯,QQ32876341,blog http://www.cnblogs.com/zzyan/
iDempiere官方中文wiki主頁 http://wiki.idempiere.org/zh
iDempiere 中文社區(qū)www.idempiere.org.cn
iDempiere 中文社區(qū)QQ群 65713012

本文說明如何給iDempiere創(chuàng)建一個(gè)Process,包括如何定義一個(gè)插件工程,建立Process,并在系統(tǒng)中進(jìn)行調(diào)用。

本文參考的youtube視頻為:https://www.youtube.com/user/evenosconsulting/videos視頻下載地址(百度網(wǎng)盤):http://pan.baidu.com/s/1vqLRo

Process表示一段運(yùn)行的程序,他的輸出可以是報(bào)表,也可以不輸出任何東西。

Process可以在運(yùn)行過程中對(duì)其他對(duì)象進(jìn)行改變,比如銷售訂單界面上面的Process Order就是一個(gè)Process,他將銷售訂單進(jìn)行了Complete或者Close操作。又比如MRP運(yùn)算的process,在運(yùn)行的過程中生成了采購申請(qǐng)。

Process 也可以用來執(zhí)行一系列的檢查,將結(jié)果在運(yùn)行的過程中輸出到文件中或者直接存入數(shù)據(jù)庫。

Process可以設(shè)定成為按時(shí)、按計(jì)劃運(yùn)行,比如每天晚上凌晨3點(diǎn)做MRP運(yùn)算。

該文檔主要分為兩個(gè)大步驟
1. 在iDempiere系統(tǒng)中定義Process,包括使用到的參數(shù),調(diào)用的菜單等
2. 使用eclipse開發(fā)該P(yáng)rocess的OSGI插件,并部署到iDempiere上

下面為開發(fā)process的詳細(xì)操作

使用System賬戶登錄系統(tǒng),進(jìn)入Report & Process

建立一個(gè)新的process

給該process添加幾個(gè)參數(shù),String, Boolean, Timedate



創(chuàng)建一個(gè)Menu,對(duì)該process進(jìn)行調(diào)用

創(chuàng)建Menu,同時(shí)將該menu指向剛建立好的Process

保存以后,退出登錄,重新以GardenAdmin用戶進(jìn)行登錄,查看菜單,發(fā)現(xiàn)該功能已經(jīng)顯示在菜單里面了

打開該功能,已經(jīng)能夠正常錄入?yún)?shù),說明我們的Process和Menu的系統(tǒng)配置正常完成。下一步可以進(jìn)行Process的實(shí)際開發(fā)。

開發(fā)部分,開發(fā)部分使用eclipse進(jìn)行開發(fā),具體的eclipse配置請(qǐng)查看前面的博客:http://www.cnblogs.com/zzyan/p/4124087.html

在eclipse中創(chuàng)建一個(gè)plugin project

提供一個(gè)工程名字,同時(shí)選中Target to run with "Equinox"。建議將工程建立在單獨(dú)的文件夾而不是workspace文件夾,這樣可以將自己的代碼和系統(tǒng)標(biāo)準(zhǔn)代碼分離開來。

選中java6,確保使用java6的用戶能夠正常使用

新的插件創(chuàng)建完成以后,打開項(xiàng)目文件,設(shè)置項(xiàng)目的Manifest文件。
為其添加兩個(gè)Dependencies:
org.adempiere.base和org.adempiere.plugins.utils

創(chuàng)建對(duì)應(yīng)的包以及process的java class文件,注意,包名和java class名字組合必須和process系統(tǒng)設(shè)置中的名字一樣

更改java文件,iDempiere的process必須繼承SvrProcess
process有兩個(gè)函數(shù)
prepare() – 主要用于參數(shù)設(shè)置
doIt() – process的主函數(shù),進(jìn)行該process的主任務(wù)

具體的process實(shí)現(xiàn)我們后續(xù)添加

Process建立好了以后,我們需要新建一個(gè)factory類,并將其進(jìn)行注冊(cè),這樣我們的插件工程在啟用的時(shí)候,iDempiere的OSGI服務(wù)能夠通過該注冊(cè)找到我們提供的service。
新建一個(gè)package,并添加一個(gè)factory類
在這里我建立org.zzya.factories.MyProcessFactory類

Factory類必須繼承IProcessFactory。
我們同時(shí)重寫其函數(shù)newProcessInstance如下

我們需要?jiǎng)?chuàng)建一個(gè)component definition,來告訴OSGI我們提供了這個(gè)服務(wù)
注意,eclipse需要是J2EE版本的indigo,之前我的eclipse版本為java普通版本,導(dǎo)致沒有這個(gè)wizard,請(qǐng)重新下載一下開發(fā)環(huán)境,eclipse文件夾名稱為eclipse-jee

創(chuàng)建一個(gè)component definition

設(shè)置component definition的參數(shù)
其中,service.ranking為每個(gè)plugin必須設(shè)置的一個(gè)參數(shù)

現(xiàn)在我們可以回去更改MyProcess的定義,執(zhí)行實(shí)際的編程操作
下面的函數(shù)中:
getParameter為繼承的函數(shù),用于獲取process調(diào)用時(shí)候傳入的參數(shù)
log為繼承的對(duì)象,用于輸出日志
addLog用于輸出結(jié)果到process的結(jié)果報(bào)表

編寫完畢以后,我們重新啟動(dòng)服務(wù),并嘗試調(diào)用該process
在運(yùn)行時(shí),在run -> run configuration中,選中該plugin,同時(shí)將auto-start設(shè)置為true

運(yùn)行process,設(shè)置參數(shù)

運(yùn)行結(jié)果如下

查看eclipse中的log,發(fā)現(xiàn)log已經(jīng)正常打印,說明該process插件已經(jīng)正常運(yùn)行

Process運(yùn)行完了以后,可以在process audit中進(jìn)行查看該運(yùn)行的歷史記錄

Process audit中可以看到傳入的參數(shù)值,以及使用addlog輸出的log信息

下面我們進(jìn)行一下擴(kuò)展,看一下怎樣能夠在報(bào)表里面打印出料號(hào)信息,同時(shí)從報(bào)表中導(dǎo)航到料號(hào)界面。
更改MyProcess.java文件中的doIt(),同時(shí)添加一個(gè)getProducts函數(shù),如下

重新運(yùn)行,查看報(bào)表,發(fā)現(xiàn)報(bào)表結(jié)果顯示了產(chǎn)品信息

點(diǎn)擊超鏈接,可以看到界面導(dǎo)航到了產(chǎn)品product 界面

以上文檔說明了怎樣對(duì)idempiere系統(tǒng)開發(fā)及調(diào)用一個(gè)Process

總結(jié)

以上是生活随笔為你收集整理的iDempiere 开发指南 Process(iDem后台进程)及插件的开发及部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。