NCV5-預(yù)警平臺(tái)技術(shù)紅皮書(shū)_第1頁(yè)
NCV5-預(yù)警平臺(tái)技術(shù)紅皮書(shū)_第2頁(yè)
NCV5-預(yù)警平臺(tái)技術(shù)紅皮書(shū)_第3頁(yè)
NCV5-預(yù)警平臺(tái)技術(shù)紅皮書(shū)_第4頁(yè)
NCV5-預(yù)警平臺(tái)技術(shù)紅皮書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、預(yù)警平臺(tái)技術(shù)紅皮書(shū)NC-UAP 5.02用友NC-UAP2022-01-28目 錄第一章前言1第二章預(yù)警類(lèi)型注冊(cè)21.功能簡(jiǎn)介22.操作說(shuō)明22.1增加/編輯預(yù)警類(lèi)型22.2關(guān)于多語(yǔ)的說(shuō)明4第三章預(yù)警條目注冊(cè)51.功能簡(jiǎn)介52.操作說(shuō)明52.1增加/編輯預(yù)警條目52.2復(fù)制預(yù)警條目113.其它12第四章預(yù)警平臺(tái)查詢(xún)13第五章插件開(kāi)發(fā)指南141.簡(jiǎn)介及開(kāi)發(fā)步驟142.預(yù)警平臺(tái)業(yè)務(wù)插件接口142.1業(yè)務(wù)插件接口1142.2業(yè)務(wù)插件接口2152.3業(yè)務(wù)插件接口3163.返回格式化消息接口(可選)163.1實(shí)現(xiàn)切入點(diǎn)163.2術(shù)語(yǔ)解析163.3接口聲明174.多語(yǔ)支持184.1預(yù)警類(lèi)型注冊(cè)的多語(yǔ)184

2、.2預(yù)警消息文件的多語(yǔ)18第六章程序?qū)崿F(xiàn)舉例191.業(yè)務(wù)插件舉例191.1格式消息舉例21第七章系統(tǒng)環(huán)境配置241.調(diào)度引擎的配置242.郵件發(fā)送相關(guān)的配置243.消息文件存放路徑244.預(yù)警日志25第八章V5新特性及與以前版本區(qū)別261.系統(tǒng)登錄的即時(shí)預(yù)警262.升級(jí)(從3.5-5.0)262.1升級(jí)的必要性262.2升級(jí)先決條件262.3升級(jí)操作26附錄281.預(yù)警平臺(tái)相關(guān)表28第一章 前言現(xiàn)代企業(yè)要在激烈的市場(chǎng)競(jìng)爭(zhēng)中生存并發(fā)展,就需要對(duì)自身的優(yōu)勢(shì)與缺陷都有一個(gè)清楚的了解,所謂知己知彼,企業(yè)要想在市場(chǎng)競(jìng)爭(zhēng)中立于不敗之地,就必須及時(shí)地發(fā)現(xiàn)自己的優(yōu)勢(shì)與缺陷,發(fā)揮自身的優(yōu)勢(shì),彌補(bǔ)存在的缺陷,為企

3、業(yè)的發(fā)展與壯大掃除障礙。如何及時(shí)地發(fā)現(xiàn)自身的優(yōu)勢(shì)與缺陷,向來(lái)是企業(yè)界和理論界傾力研究的重點(diǎn)問(wèn)題之一。于是NC的預(yù)警平臺(tái)應(yīng)求而生。NC預(yù)警平臺(tái)分成兩種類(lèi)型的預(yù)警。一為定時(shí)預(yù)警。即用戶可以指定何時(shí)或者以何周期去執(zhí)行某項(xiàng)任務(wù),并依照設(shè)置的閾值決定是否產(chǎn)生預(yù)警提示,致使企業(yè)及時(shí)合理做出正確的決策。二為即時(shí)預(yù)警。顧名思義即時(shí)是立即發(fā)生,NC中主要支持用戶登錄和打開(kāi)節(jié)點(diǎn)兩種,所作事情與定時(shí)預(yù)警一樣。NC預(yù)警服務(wù)的整體示意圖如圖1-1.圖1-1預(yù)警平臺(tái)服務(wù)示意圖由上圖可知,預(yù)警平臺(tái)主要由預(yù)警類(lèi)型、預(yù)警條目以及預(yù)警消息三個(gè)組成部分。于是想要使用預(yù)警平臺(tái)的預(yù)警功能,需要做兩步工作:1.預(yù)警類(lèi)型注冊(cè);2.預(yù)警條目

4、注冊(cè)。分別在本文檔第二章和第三章介紹。預(yù)警消息是在條目配置的時(shí)候配置的。注意:從V502開(kāi)始,預(yù)警平臺(tái)功能并入任務(wù)中心。第二章 預(yù)警類(lèi)型注冊(cè)1. 功能簡(jiǎn)介預(yù)警類(lèi)型就是一種預(yù)警的一個(gè)插件類(lèi)型(由開(kāi)發(fā)人員開(kāi)發(fā),具體如何開(kāi)發(fā)插件見(jiàn)插件開(kāi)發(fā)指南)。它目的是對(duì)某個(gè)業(yè)務(wù)或操作的抽象,其可以定義一系列閾值。(這里也只是定義,真正的值還是由條目來(lái)設(shè)置的)。定義一個(gè)預(yù)警類(lèi)型需要提供:名稱(chēng)、所屬系統(tǒng)、業(yè)務(wù)插件、描述、閾值名稱(chēng)、編輯類(lèi)型、參照名稱(chēng)(如果編輯類(lèi)型為參照)。2. 操作說(shuō)明Ø 打開(kāi)節(jié)點(diǎn):客戶化->預(yù)警平臺(tái)->預(yù)警條件配置鼠標(biāo)指向“類(lèi)型配置”菜單,單擊增加,可以增加一個(gè)預(yù)警類(lèi)型。選中一

5、條已注冊(cè)的預(yù)警類(lèi)型,單擊“刪除”、“編輯”,可以對(duì)已有預(yù)警類(lèi)型進(jìn)行刪除或修改的操作。雙擊一條預(yù)警類(lèi)型,也可以對(duì)其進(jìn)行編輯。圖2-1預(yù)警首界面2.1 增加/編輯預(yù)警類(lèi)型增加/編輯一個(gè)預(yù)警類(lèi)型,預(yù)警類(lèi)型編輯界面如下圖所示:Jgai 是揚(yáng)圖2-2預(yù)警類(lèi)型編輯界面項(xiàng)目說(shuō)明:ü 名稱(chēng):輸入預(yù)警類(lèi)型的名稱(chēng)。必填項(xiàng)。ü 所屬模塊:是區(qū)分各產(chǎn)品組模塊的標(biāo)識(shí),即通常說(shuō)的模塊名。這值對(duì)應(yīng)的是中間件/modules目錄下的子目錄。按規(guī)定模塊名都是小寫(xiě)的。必填項(xiàng)。ü 業(yè)務(wù)插件:輸入業(yè)務(wù)插件的類(lèi)名,此項(xiàng)不能為空。此類(lèi)中需實(shí)現(xiàn)預(yù)警平臺(tái)接口。且可以放在業(yè)務(wù)模塊中任何地方(即不限制Public/

6、Client/Private).該類(lèi)遵循開(kāi)發(fā)規(guī)范見(jiàn)插件開(kāi)發(fā)指南。必填項(xiàng)。ü 描述:指對(duì)預(yù)警類(lèi)型的文字描述。ü 閾值名稱(chēng):也就是條件的名稱(chēng)。閾值含義:對(duì)閾值名稱(chēng)的說(shuō)明。ü 編輯類(lèi)型:此處定義輸入閾值的樣式,系統(tǒng)提供五個(gè)選擇:字符型、邏輯型、整型、Double型和參照基礎(chǔ)檔案類(lèi)型。如果將某個(gè)閾值的編輯類(lèi)型定義為邏輯型,那么在進(jìn)行預(yù)警條目設(shè)置時(shí),此閾值的值以下拉框的形式出現(xiàn),有是和否兩個(gè)選擇;如果選擇編輯類(lèi)型為基礎(chǔ)檔案,還要在后面的參照名稱(chēng)欄中選擇參照哪個(gè)基礎(chǔ)檔案,這樣當(dāng)用戶輸入該閾值時(shí)會(huì)彈出相應(yīng)的基礎(chǔ)檔案參照。ü 參照名稱(chēng):如果編輯類(lèi)型選擇為參照基礎(chǔ)檔案,那

7、么參數(shù)名稱(chēng)變?yōu)榭蛇x項(xiàng),提供選擇的項(xiàng)有人員檔案、部門(mén)檔案、客戶檔案等等。2.2 關(guān)于多語(yǔ)的說(shuō)明這里指對(duì)NC預(yù)置的插件支持多語(yǔ),對(duì)于后來(lái)增加的沒(méi)有這個(gè)支持。想多了解多語(yǔ)的這一特性,參見(jiàn)高級(jí)操作。第三章 預(yù)警條目注冊(cè)1. 功能簡(jiǎn)介預(yù)警條目一般由實(shí)施人員或用戶根據(jù)具體的業(yè)務(wù)環(huán)境和需要來(lái)定義。通過(guò)選擇預(yù)警類(lèi)型,并設(shè)置該預(yù)警類(lèi)型中需要用戶設(shè)置的閾值變量,以及定義預(yù)警方式來(lái)實(shí)現(xiàn)具體的預(yù)警任務(wù)。預(yù)警方式包括產(chǎn)生方式和發(fā)送方式。產(chǎn)生方式控制預(yù)警的發(fā)生時(shí)間,有即時(shí)和定時(shí)兩種。發(fā)送方式是定義預(yù)警以何種方式發(fā)送給用戶。預(yù)警條目是具體的預(yù)警任務(wù),是預(yù)警平臺(tái)調(diào)度執(zhí)行的單位。一個(gè)預(yù)警類(lèi)型可以根據(jù)不同的業(yè)務(wù)情況定義多個(gè)預(yù)警條

8、目。預(yù)警條目保存預(yù)警信息的產(chǎn)生條件及發(fā)送方式設(shè)置,基于預(yù)警類(lèi)型進(jìn)行編輯。預(yù)警平臺(tái)的后臺(tái)服務(wù)線程定時(shí)讀取預(yù)警條目信息,根據(jù)條目中設(shè)置的條件,調(diào)用相應(yīng)的預(yù)警類(lèi)型與業(yè)務(wù)信息相比較,當(dāng)符合預(yù)警條件時(shí),就會(huì)產(chǎn)生預(yù)警信息,并根據(jù)相應(yīng)配置進(jìn)行信息發(fā)送。條目與類(lèi)型的關(guān)系其實(shí)就是一個(gè)具體與抽象的關(guān)系。如用友公司與泛化的公司一樣。公司具有名稱(chēng)、地址等屬性,用友公司與之對(duì)應(yīng)的就是用友、北京上地等。2. 操作說(shuō)明鼠標(biāo)指向“條目配置”菜單,單擊增加,可以增加一個(gè)預(yù)警條目。選中一條已注冊(cè)的預(yù)警條目,單擊“刪除”、“編輯”,可以對(duì)已有預(yù)警條目進(jìn)行刪除或修改的操作。雙擊一條預(yù)警條目,也可以對(duì)其進(jìn)行編輯。與類(lèi)型配置的菜單差別就

9、是其可以復(fù)制,即把其它公司的條目復(fù)制到本公司。圖3-1條目配置首界面2.1 增加/編輯預(yù)警條目增加/編輯一個(gè)預(yù)警條目,預(yù)警條目編輯界面如下圖所示:1) 常規(guī)屬性頁(yè)簽圖3-2條目常規(guī)屬性頁(yè)簽ü 預(yù)警名稱(chēng):即該條目的名稱(chēng),一個(gè)顯示的標(biāo)記。同公司同類(lèi)型不允許條目名相同。ü 預(yù)警消息文件名:即消息生成時(shí)的HTML的文件名標(biāo)記。(該HTML文件完整的名稱(chēng)是由它和生成時(shí)時(shí)間組成)。ü 預(yù)警狀態(tài):激活態(tài)表示該條目是有效的,反之休眠則表示此時(shí)該條目是無(wú)效的。默認(rèn)為激活態(tài)。ü 預(yù)警消息:這個(gè)消息只有當(dāng)消息接收配置為郵件時(shí)候才顯示的郵件內(nèi)容。ü 預(yù)警提示語(yǔ)言:這里

10、指定是當(dāng)消息生成時(shí)候,調(diào)用插件的某些顯示(如HTML文件的標(biāo)題)時(shí),它的多語(yǔ)語(yǔ)種的選擇。亦可參見(jiàn)多語(yǔ)支持2) 預(yù)警條件頁(yè)簽圖3-3條目-預(yù)警條件頁(yè)簽項(xiàng)目說(shuō)明:ü 類(lèi)型:即第二章所述的預(yù)警類(lèi)型注冊(cè)的預(yù)警類(lèi)型。其以下拉框的形式顯示,此處對(duì)預(yù)警類(lèi)型的選擇將決定此預(yù)警條目將調(diào)用的業(yè)務(wù)插件。ü “條件”列表:在此處編輯預(yù)警條目的閾值。這里的閾值是從類(lèi)型定義中帶過(guò)來(lái)的,這里要做的只是設(shè)置操作符合閾值設(shè)置。ü 帳簿:只是對(duì)于模塊為財(cái)務(wù)和總帳的預(yù)警類(lèi)型才必須設(shè)置值。其參照為主體賬簿參照。注其預(yù)警類(lèi)型也是必須實(shí)現(xiàn)業(yè)務(wù)插件接口3。3) 預(yù)警方式頁(yè)簽圖3-4:預(yù)警方式頁(yè)簽ü

11、產(chǎn)生方式:其分為即時(shí)產(chǎn)生與定時(shí)產(chǎn)生。兩者的意義上的區(qū)別可以參見(jiàn):前言。如果選擇的為即時(shí)產(chǎn)生,則系統(tǒng)會(huì)根據(jù)此處定義的觸發(fā)方式來(lái)觸發(fā)業(yè)務(wù)操作,并依據(jù)條件滿足與否,來(lái)產(chǎn)生預(yù)警提示信息。如果選擇定時(shí)產(chǎn)生,則預(yù)警平臺(tái)會(huì)在設(shè)定的時(shí)間配置到來(lái)時(shí)進(jìn)行業(yè)務(wù)檢查,進(jìn)行預(yù)警檢查,并產(chǎn)生預(yù)警信息。兩者產(chǎn)生的預(yù)警消息的如何接收都由消息接收者配置面板的來(lái)配置。關(guān)于定時(shí)配置稍候敘述。ü 觸發(fā)方式: 只有當(dāng)產(chǎn)生方式為即時(shí)的時(shí)候,此組才能編輯和有效。² 系統(tǒng)登錄:勾選并單擊“系統(tǒng)登錄”按鈕,彈出系統(tǒng)登錄用戶選擇界面。(如圖3-5)左側(cè)為對(duì)本公司及其下級(jí)公司(通過(guò)界面的參照來(lái)切換)擁有登錄權(quán)限的角色和用戶。右

12、側(cè)為已經(jīng)選擇的用戶。這些用戶在登錄NC時(shí),如果系統(tǒng)有定義了該用戶登錄條目,并滿足產(chǎn)生消息的條件,這時(shí)候會(huì)在消息中心的預(yù)警消息欄自動(dòng)給登錄用戶發(fā)送一條消息,用戶可以點(diǎn)擊此來(lái)查看詳細(xì)信息。但不會(huì)主動(dòng)彈出IE。這點(diǎn)也是V5和以前的版本的不同之處。詳細(xì)可見(jiàn)新特性。² 觸發(fā)點(diǎn)提示:勾選后單擊“觸發(fā)點(diǎn)提示”按鈕,彈出“觸發(fā)點(diǎn)選擇”界面(如圖3-6),左側(cè)為系統(tǒng)功能結(jié)點(diǎn)樹(shù),右側(cè)為將觸發(fā)預(yù)警的功能結(jié)點(diǎn)。當(dāng)用戶進(jìn)入該公司打開(kāi)已經(jīng)定義有條目功能結(jié)點(diǎn)時(shí),如果有符合條件的預(yù)警消息產(chǎn)生,則會(huì)彈出IE窗口來(lái)顯示預(yù)警信息的詳細(xì)內(nèi)容。注意:集團(tuán)的是不能定義功能節(jié)點(diǎn)觸發(fā)的。² 按鈕:只適用于HR。即在業(yè)務(wù)單

13、據(jù)的某個(gè)按鈕點(diǎn)擊時(shí)觸發(fā)。圖3-5:系統(tǒng)登錄對(duì)話框圖3-6:功能節(jié)點(diǎn)選折對(duì)話框ü 消息接收者配置:配置消息的接收者。即當(dāng)預(yù)警條目觸發(fā)時(shí),除了適當(dāng)?shù)臅r(shí)候彈出IE之外的給用戶的提示的配置。² 消息中心:勾選后單擊“消息中心”按鈕,彈出消息中心配置界面。其界面相似于系統(tǒng)登錄界面(即圖3-5)。但意義不一樣。它的意義是:當(dāng)一個(gè)預(yù)警條目觸發(fā)時(shí)是否給用戶送一條預(yù)警消息到消息中心。消息中心:即為用戶登錄NC系統(tǒng)時(shí)候收到的與之相關(guān)的消息,其包含公告欄、待辦事務(wù)和預(yù)警消息等三欄。我們?cè)陬A(yù)警所說(shuō)的消息中心即為此處的消息中心的預(yù)警消息欄,以后亦同。² 電子郵件:勾選后單擊“電子郵件”按鈕

14、,彈出電子郵件地址選擇界面。中間列表顯示已經(jīng)配置的Email.即可以根據(jù)人員檔案來(lái)選擇,也可以手寫(xiě)。如圖3-7。電子郵件要發(fā)送成功,必須正確配置郵件服務(wù)器??梢詤⒁?jiàn)系統(tǒng)環(huán)境配置² 手機(jī)短信:勾選“手機(jī)短信”,其界面類(lèi)似于登錄消息中心配置界面。只是其會(huì)根據(jù)所選用戶去關(guān)聯(lián)其手機(jī)號(hào)而發(fā)送短信。圖3-7郵件選擇對(duì)話框ü 消息查詢(xún)方式:這個(gè)配置主要是方便查詢(xún)。當(dāng)為即時(shí),則預(yù)警平臺(tái)可以勾選掉,它的作用是當(dāng)沒(méi)有選擇任何一個(gè)接收方式時(shí),其便能在查詢(xún)處紀(jì)錄觸發(fā)過(guò)的預(yù)警。同理當(dāng)為定時(shí),自動(dòng)調(diào)用也是起類(lèi)似的作用,所不同的是其不能勾選掉。關(guān)于查詢(xún)操作詳細(xì)見(jiàn)第四章預(yù)警平臺(tái)查詢(xún)。ü 定時(shí)配置

15、:當(dāng)產(chǎn)生方式選擇的是定時(shí):(1) 此時(shí)的觸發(fā)方式將不能編輯。(2) 此時(shí)的消息接收者配置與即時(shí)意義是一樣的。(3) 此時(shí)的消息查詢(xún)方式意義相同,但是不能編輯,只為自動(dòng)調(diào)用。(4) 定時(shí)配置界面(如圖3-8)如圖3-8定時(shí)配置² 發(fā)生頻率:包含天、周,月等三個(gè)時(shí)間量綱。當(dāng)為周或月時(shí)候,還能夠選折對(duì)應(yīng)的哪天,以及關(guān)于量綱的間隔。² 一天內(nèi):因?yàn)椴还茴l率制定的如何,具體到還是某一天中。這里就是具體設(shè)置某一天內(nèi)的時(shí)間關(guān)系。² 有效期:這是優(yōu)先級(jí)最高的設(shè)置,即頻率和一天內(nèi)的設(shè)置都必須要在此有效期內(nèi)。系統(tǒng)會(huì)在設(shè)定的時(shí)間點(diǎn)進(jìn)行業(yè)務(wù)檢查,觸發(fā)并合適地產(chǎn)生預(yù)警信息。2.2 復(fù)制預(yù)警

16、條目如圖3-9:其左邊待選樹(shù)只有兩層結(jié)構(gòu)。一級(jí)為公司,二級(jí)即為條目。復(fù)制的原則是同一類(lèi)型在同一公司下不允許同名。故選擇完會(huì)一般要進(jìn)行編輯,以保證滿足此原則!圖3-9條目復(fù)制3. 其它在預(yù)警條件配置首界面上有預(yù)警升級(jí)菜單。此菜單主要用來(lái)升級(jí)3.5的預(yù)警條目!詳細(xì)查看升級(jí)指南第四章 預(yù)警平臺(tái)查詢(xún)預(yù)警平臺(tái)查詢(xún)是為了方便用戶查詢(xún)當(dāng)前產(chǎn)生的所有預(yù)警消息以及產(chǎn)生過(guò)的歷史預(yù)警消息。預(yù)警平臺(tái)查詢(xún)主界面如圖4-1所示。其查詢(xún)的依據(jù)是條目配置中的觸發(fā)方式和接收方式以及查詢(xún)方式。其新舊的標(biāo)準(zhǔn)是產(chǎn)生日期與當(dāng)前日期的時(shí)間差是否在一個(gè)月內(nèi)。圖4-1預(yù)警消息查詢(xún)界面此外查詢(xún)處還提供了多樣性的查詢(xún)。如圖4-2.圖4-2預(yù)警消

17、息查詢(xún)對(duì)話框多個(gè)名稱(chēng)或者多個(gè)接收者之間以分號(hào)分離。且兩者支持模糊匹配。第五章 插件開(kāi)發(fā)指南1. 簡(jiǎn)介及開(kāi)發(fā)步驟適用人群:本指南適用于對(duì)預(yù)警平臺(tái)進(jìn)行二次開(kāi)發(fā)的開(kāi)發(fā)人員。開(kāi)發(fā)步驟:1) 開(kāi)發(fā)人員先實(shí)現(xiàn)預(yù)警平臺(tái)規(guī)定的接口(如5.2所述)2) 增加預(yù)警類(lèi)型。(如第二章 預(yù)警類(lèi)型注冊(cè)所述)3) 增加測(cè)試預(yù)警條目。(如第三章 預(yù)警條目注冊(cè)所述)4) 測(cè)試插件條目。依照條目定義,或打開(kāi)節(jié)點(diǎn),或登錄系統(tǒng),或定制時(shí)間。并查看消息是否如插件所意。2. 預(yù)警平臺(tái)業(yè)務(wù)插件接口定義預(yù)警類(lèi)型時(shí)必須提供做業(yè)務(wù)檢查的業(yè)務(wù)插件,由開(kāi)發(fā)人員編寫(xiě)。該業(yè)務(wù)插件必須實(shí)現(xiàn)預(yù)警業(yè)務(wù)插件接口。預(yù)警服務(wù)運(yùn)行時(shí),根據(jù)定義的預(yù)警條目執(zhí)行業(yè)務(wù)插件的

18、適當(dāng)業(yè)務(wù),并將產(chǎn)生的預(yù)警信息寫(xiě)入預(yù)警文件,進(jìn)行企業(yè)業(yè)務(wù)預(yù)警。2.1 業(yè)務(wù)插件接口1 nc.bs.pub.pa.IBusinessPlugin最普通最原始的接口。定義接口如下:public interface IBusinessPlugin public int IMPLEMENT_RETURNMESSAGE = 0;/ 返回一個(gè)字符串信息,后臺(tái)會(huì)生成只包含一個(gè)字符串的HTML文件public int IMPLEMENT_RETURNOBJECT = 1;/ 返回一個(gè)可以序列化的對(duì)象,后臺(tái)會(huì)生成一個(gè)序列化的文件public int IMPLEMENT_WRITEFILE = 2;/ 自定義寫(xiě)一個(gè)

19、文件,即插件自己去寫(xiě)文件.預(yù)警后臺(tái)不做任何處理.(集群除外)這時(shí)候條目的文件名即為生成的文件名,不允許再拼接public int IMPLEMENT_RETURNFORMATMSG = 3;/ 返回格式化的信息.,后臺(tái)會(huì)生成一Table格式的HTML文件./*返回實(shí)現(xiàn)類(lèi)型,其值為如上幾個(gè)常量*/public int getImplmentsType();/下面的四個(gè)接口實(shí)現(xiàn)依照返回類(lèi)型,分別選擇實(shí)現(xiàn)之一即可,并不需要都要實(shí)現(xiàn)*/* * 返回給定格式的一個(gè)接口對(duì)象. */public nc.bs.pub.pa.html.IAlertMessage implementReturnFormatMsg

20、(Key keys, String corpPK,UFDate clientLoginDate) throws BusinessException;/* * 業(yè)務(wù)插件實(shí)現(xiàn)此方法時(shí),如果只需要預(yù)警,則返回一個(gè)非空的字符串.*/ public String implementReturnMessage(Key keys, String corpPK, UFDate clientLoginDate)throws BusinessException;/* * 當(dāng)業(yè)務(wù)插件實(shí)現(xiàn)此方法時(shí),則如果需要預(yù)警,則返回一個(gè)非空的的對(duì)象 */public Object implementReturnObject (K

21、ey keys, String corpPK, UFDate clientLoginDate)throws BusinessException;/* * 業(yè)務(wù)插件如果實(shí)現(xiàn)此方法,則意味著預(yù)警平臺(tái)將 Key 數(shù)組和 fileName 傳入 業(yè)務(wù)插件可以根據(jù) Key * 來(lái)判斷是否需要預(yù)警,如果要,則將預(yù)警信息寫(xiě)入到 fileName 文件中,并且一定要返回 true,否則視為不需預(yù)警 */public boolean implementWriteFile(Key keys, String fileName, String corpPK,UFDate clientLoginDate) throws

22、 BusinessException;其接口中其它在此未列出的接口,在v5.0種都沒(méi)有用, 現(xiàn)在只是為了產(chǎn)品的向下兼容性而而保留,開(kāi)發(fā)人員之需要返回null即可。關(guān)于key值的說(shuō)明:Key其實(shí)就閾值的描述,但并不是5.0中對(duì)應(yīng)的數(shù)據(jù)庫(kù)表結(jié)構(gòu),由于也是為了向下兼容,而進(jìn)行了轉(zhuǎn)換,但對(duì)二次開(kāi)發(fā)任意是透明的。2.2 業(yè)務(wù)插件接口2nc.bs.pub.pa.IBusinessPlugin2它是nc.bs.pub.pa.IbusinessPlugin的子類(lèi),適用于當(dāng)業(yè)務(wù)插件的實(shí)現(xiàn)時(shí)候需要客戶端的登錄信息參數(shù)。/* * 返回給定格式的一個(gè)接口對(duì)象. */public nc.bs.pub.pa.html.I

23、AlertMessageimplementReturnFormatMsg (Key keys, Object currEnvVO,UFDate clientLoginDate) throws BusinessException;/其它的接口實(shí)現(xiàn)相識(shí),故省略之差別如上框線陰影可見(jiàn),預(yù)警平臺(tái)會(huì)傳給插件一個(gè)currEnvVO.這個(gè)參數(shù)其實(shí)就是一個(gè)nc.vo.pub.pa.CurrEnvVO對(duì)象.其中包含了登錄公司PK,登錄用戶Pk等信息。2.3 業(yè)務(wù)插件接口3nc.bs.pub.pa.IBusinessPlugin3也是nc.bs.pub.pa.IbusinessPlugin的子類(lèi)。適用于插件的實(shí)現(xiàn)

24、需要傳遞主體賬簿的接口。/* * 返回給定格式的一個(gè)接口對(duì)象. */public nc.bs.pub.pa.html.IAlertMessage implementReturnFormatMsg(Key keys, String corpPK,String accountPk,UFDate clientLoginDate) throws BusinessException;/其它的接口實(shí)現(xiàn)相識(shí),故省略之差別如上框線陰影可見(jiàn),預(yù)警平臺(tái)會(huì)傳給插件一個(gè)accountPk.這個(gè)參數(shù)意義是主體賬簿的Pk。誠(chéng)如條目設(shè)置所述,其現(xiàn)在只支持財(cái)務(wù)(fa和總賬(gl).故其它模板即使實(shí)現(xiàn)了此接口也沒(méi)用,因?yàn)榈綍r(shí)調(diào)

25、用時(shí)傳過(guò)來(lái)的值就是null了。3. 返回格式化消息接口(可選)3.1 實(shí)現(xiàn)切入點(diǎn)如果插件類(lèi)返回類(lèi)型為格式化信息對(duì)象。即插件實(shí)現(xiàn)類(lèi)的返回實(shí)現(xiàn)類(lèi)型方法返回格式化消息。如下所示:public int getImplmentsType() return IBusinessPlugin.IMPLEMENT_RETURNFORMATMSG;那么在其實(shí)現(xiàn)類(lèi)的實(shí)現(xiàn)方法中必須實(shí)現(xiàn)如下接口方法:(其它的接口方法不用實(shí)現(xiàn))。public IAlertMessage implementReturnFormatMsg()throws BusinessException / 具體實(shí)現(xiàn) -/* returnnull;(那么

26、其不生成消息文件,只是執(zhí)行一些動(dòng)作和事情) 或者 return一個(gè)實(shí)現(xiàn)了IalertMessage的對(duì)象 */3.2 術(shù)語(yǔ)解析格式消息:即要求返回的是滿足一定要求的一定格式的方便展示的消息,我們此處即為HMTL,而核心又在HMTL中的表格展現(xiàn)。3.3 接口聲明ü 格式化消息也有三個(gè)主要接口nc.bs.pub.pa.html.IalertMessage;nc.bs.pub.pa.html.IalertMessage1;nc.bs.pub.pa.html.IalertMessage2后兩者都是IalertMessage的子類(lèi),它們的接口方法差別如下表所示:InterfaceIAlertM

27、essageIAlertMessage1IAlertMessage2V5.0增加新接口(推薦使用)公有的詳細(xì)見(jiàn)下接口2特有/表格寬度String getTableWidth();接口3特有int getBodyColumnType();String getNullPresent();String getOmitPresent();詳細(xì)各接口方法意義見(jiàn)下表5-1格式化消息各個(gè)接口的接口方法差異ü nc.bs.pub.pa.html.IalertMessage的接口聲明如下public interface IAlertMessage extends java.io.Serializabl

28、e / 省略若干常量的定義,推薦返回對(duì)應(yīng)值時(shí)使用此定義的常量/* 得到消息體的域通常為字段名稱(chēng) */String getBodyFields();/* 得到消息體的值通常為各字段的值即數(shù)據(jù)部分*/Object getBodyValue();/* 得到消息體的各個(gè)域的寬通常為各字段寬即列寬 */float getBodyWidths();/* 得到消息格式底部值 */String getBottom();/* 得到消息格式的標(biāo)題 */String getTitle();/* 得到消息格式的底部值即臨近Title下的內(nèi)容 */String getTop();ü . V5.0新增接口(推薦

29、使用此接口)public interface IAlertMessage2 extends IAlertMessage /* 定制各個(gè)列的類(lèi)型。其相關(guān)類(lèi)型見(jiàn)IAlertMessage中的定義 */int getBodyColumnType();/* 定制空值時(shí)的顯示.<br> 實(shí)現(xiàn)接口者可以返回null,此時(shí)默認(rèn)的為空格(""). */String getNullPresent();/* 定制缺省時(shí)的顯示.<br> 實(shí)現(xiàn)接口者可以返回null,此時(shí)默認(rèn)的為空格(""). */String getOmitPresent();4. 多

30、語(yǔ)支持這里的多語(yǔ)的意思主要是有兩個(gè)方面:4.1 預(yù)警類(lèi)型注冊(cè)的多語(yǔ)在預(yù)警類(lèi)型注冊(cè)時(shí)候,我們只對(duì)預(yù)置的類(lèi)型多語(yǔ),這是需要對(duì)庫(kù)直接操作,填充對(duì)應(yīng)表的對(duì)應(yīng)多語(yǔ)字段。此可參見(jiàn)預(yù)警平臺(tái)相關(guān)表。注意產(chǎn)品組的多語(yǔ)放在多語(yǔ)目錄的prealerttype下。自己新建文件,必須符合多語(yǔ)規(guī)范了!對(duì)于界面的操作,不能影響到多語(yǔ)。因?yàn)槲覀兗僭O(shè)用戶在何語(yǔ)言環(huán)境下增加類(lèi)型就是在何語(yǔ)言環(huán)境下使用。4.2 預(yù)警消息文件的多語(yǔ)預(yù)警平臺(tái)本身不知道該如何去多語(yǔ),而是要插件自身去多語(yǔ),而返回給預(yù)警平臺(tái),預(yù)警平臺(tái)會(huì)根據(jù)條目配置中的語(yǔ)言選擇,設(shè)置當(dāng)前的線程的語(yǔ)言環(huán)境,然后去調(diào)用適當(dāng)?shù)亩嗾Z(yǔ)。這不僅針對(duì)格式化消息,而是所有的消息都一樣。如實(shí)現(xiàn)

31、接口IalertMessage的,多語(yǔ)代碼應(yīng)該用服務(wù)端的多語(yǔ)。public String getTitle()return NCLangResOnserver.getInstance().getStrByID("101502", "UPP101502-000261");/ "預(yù)警測(cè)試樣例"第六章 程序?qū)崿F(xiàn)舉例1. 業(yè)務(wù)插件舉例定義一個(gè)實(shí)現(xiàn)IBussinessPlugin 接口的預(yù)警類(lèi)型業(yè)務(wù)插件類(lèi) ,比如現(xiàn)在創(chuàng)建 庫(kù)存存量 預(yù)警處理類(lèi)nc.bs.pub.pa.SampleBusinessPluginpackage nc.bs.pub.p

32、a;import nc.bs.logging.Logger;import nc.bs.pub.pa.html.IAlertMessage;import nc.bs.pub.pa.html.SampleAlertMessage;import nc.vo.pub.BusinessException;import nc.vo.pub.lang.UFDate;import nc.vo.pub.pa.Key;/* * 預(yù)警平臺(tái)插件接口實(shí)現(xiàn)示范類(lèi)。兼預(yù)警平臺(tái)的測(cè)試類(lèi).。 * * author huangzg 2006-10-10 */public class SampleBusinessPlugin im

33、plements IBusinessPlugin public int getImplmentsType() /return IBusinessPlugin.IMPLEMENT_RETURNMESSAGE;return IBusinessPlugin.IMPLEMENT_RETURNFORMATMSG;/ since v5.0 此接口方法沒(méi)有用!返回null亦可。public Key getKeys() return null;/ since v5.0 此接口方法沒(méi)有用!返回null亦可。public String getTypeDescription() return null;/ sinc

34、e v5.0 此接口方法沒(méi)有用!返回null亦可。public String getTypeName() return null;/ 這里雖然實(shí)現(xiàn)了,但是由于返回的是格式化消息,所以等于沒(méi)有起作用public String implementReturnMessage(Key keys, String corpPK, UFDate clientLoginDate)throws BusinessException /業(yè)務(wù)實(shí)現(xiàn)。如果要返回格式化的HTML消息,請(qǐng)參考nc.bs.pub.pa.html.IAlertMessagedouble testValue = 10;double lowStor

35、ageVolume = -1, highStorageVolume = -1;if (keys != null && keys.length > 0) for (int i = 0; i < keys.length; i+) if (keysi.getName().equals("lowVolume") lowStorageVolume = new Double(keysi.getValue().toString().doubleValue(); else if (keysi.getName().equals("highVolume&q

36、uot;) highStorageVolume = new Double(keysi.getValue().toString().doubleValue();if (lowStorageVolume = -1 | highStorageVolume = -1) Logger.error("預(yù)警類(lèi)型配置未完成");return null;if (testValue < lowStorageVolume) return "預(yù)警平臺(tái)測(cè)試示例:庫(kù)存安全最低量超過(guò)限制" if (testValue > highStorageVolume) return

37、 "預(yù)警平臺(tái)測(cè)試示例:庫(kù)存安全最高量超過(guò)限制" return null;public boolean implementWriteFile(Key keys, String fileName, String corpPK,UFDate clientLoginDate) throws BusinessException return false;public Object implementReturnObject(Key keys, String corpPK, UFDate clientLoginDate)throws BusinessException return n

38、ull;public IAlertMessage implementReturnFormatMsg(Key keys, String corpPK, UFDate clientLoginDate)throws BusinessException / FIXME 直接返回 一個(gè)格式化文件return new SampleAlertMessage();這個(gè)插件例子,是返回一個(gè)格式化的消息,直接new了一個(gè)格式化消息的實(shí)例類(lèi)。而對(duì)于其中實(shí)現(xiàn)的方法implementReturnMessage沒(méi)有用途,這里只是個(gè)示范。1.1 格式消息舉例package nc.bs.pub.pa.html;import

39、nc.bs.ml.NCLangResOnserver;import nc.vo.pub.lang.UFBoolean;import nc.vo.pub.lang.UFDate;import nc.vo.pub.lang.UFDateTime;import nc.vo.pub.lang.UFDouble;/* * 預(yù)警信息接口實(shí)現(xiàn)類(lèi)示例。 * * author:huangzg 2006-10-10 */public class SampleAlertMessage implements IAlertMessage2 /* * SampleAlertMessage 構(gòu)造子注解。 */public

40、SampleAlertMessage() super();public java.lang.String getBodyFields() String fields = "I", "II", "III", "IV", "V", "VI" ;return fields;public java.lang.Object getBodyValue() Object value = new String("XXXXX"), new UFDate(new java.u

41、til.Date(), new Integer(0), new UFDouble(0),new UFBoolean(false), new FDateTime() , new String("XX"), new UFDate(new java.util.Date(), new Integer(1111),new UFDouble(1111), new UFBoolean(true), new Long(3289324) , new String("XXXXXXXXX"), new UFDate(new java.util.Date(), new Inte

42、ger(442452442),new UFDouble(), new UFBoolean(true) , new String("x"), new UFDate(), new UFDouble(4235435.54235), new UFBoolean(true) , new String("XXXXXXXX"), new UFDate(), new UFDouble(54325234.5243), new UFBoolean(false) , new String("XXXX"), new UFDate(), new Integer

43、(234), new UFDouble(345234543.54235),new UFBoolean(true) , null, new UFDate(), new Integer(324), new UFDouble(), new UFBoolean(false) , new String("XXXXXXX"), null, new Integer(423541153), new UFDouble(), new UFBoolean(true) ;return value;public float getBodyWidths() float widths = 0.2F, 0

44、.15F, 0.25F, 0.3F, 0.1F, 0.1F ;return widths;public java.lang.String getBottom() String bottom = "AAAAAAAAA", "", "BBBBB", "CCCCC", "DDDDD", "EEEE", "FFF", "GGGG", "HHHH","II", "JJJJJJJJJ" ;

45、return bottom;public String getTitle() / return "預(yù)警信息示例"/多語(yǔ)return NCLangResOnserver.getInstance().getStrByID("101502", "UPP101502-000261");/ "預(yù)警信息示例"public java.lang.String getTop() String top = "AAAAA", "PPPPPPP", "BBBBB", "

46、CCCC", "DDDDD", "EEEEEE", "FFFFFFFFF","GGGGGGGGMMMMM", "NN" ;return top;public int getBodyColumnType() return new int 0, 1, 6, 0, 0, 0 ;public String getNullPresent() return "null"public String getOmitPresent() return "omitted&quo

47、t;這個(gè)例子只是一個(gè)例子,并沒(méi)有什么查詢(xún)表或者業(yè)務(wù)邏輯等。在實(shí)踐環(huán)境中可以插件類(lèi)同時(shí)實(shí)現(xiàn)業(yè)務(wù)插件接口和格式消息接口。第七章 系統(tǒng)環(huán)境配置1. 調(diào)度引擎的配置這里配置NC服務(wù)器啟動(dòng)時(shí),加載一些需要調(diào)度的任務(wù)。對(duì)于預(yù)警平臺(tái)就是是否需要加載定時(shí)的條目。這個(gè)在ncSysConfig中也能配置文件路徑:.ierpbinscheduleengine.xml<autoLoader><classQualifiedName>nc.bs.pub.pa.PreAlerLoader</classQualifiedName><moduleName>uap</modul

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論