皇甫漢聰
(廣東電網(wǎng)有限責(zé)任公司佛山供電局 廣東 佛山 528000)
在電網(wǎng)企業(yè)中,蘊(yùn)含著大量的數(shù)據(jù)與報(bào)表。在日常業(yè)務(wù)中,需要很頻繁的對(duì)這些報(bào)表進(jìn)行查詢(xún)、分析及打印。對(duì)報(bào)表的管理水平,成為了影響業(yè)務(wù)質(zhì)量與效率的一個(gè)很大的因素。此外,在電力體制改革的大背景下,這對(duì)電網(wǎng)企業(yè)的經(jīng)營(yíng)效益提出了新的要求,大數(shù)據(jù)分析的重要性日益提高,如何使用合適的報(bào)表管理技術(shù)對(duì)報(bào)表進(jìn)行全過(guò)程管理也因此變得至關(guān)重要。
電網(wǎng)企業(yè)中的報(bào)表數(shù)據(jù)主要來(lái)源于各大主營(yíng)業(yè)務(wù)系統(tǒng),具有種類(lèi)多、復(fù)雜度高、難管理的特點(diǎn)。此外,近年來(lái)電網(wǎng)企業(yè)對(duì)大數(shù)據(jù)分析的需求日益增長(zhǎng),在電力體制改革的大背景下,需要更好的挖掘電力市場(chǎng)運(yùn)行數(shù)據(jù),分析電力市場(chǎng)運(yùn)行規(guī)律,為企業(yè)的決策提供支持。
目前,多數(shù)情況下用戶只能對(duì)系統(tǒng)原有固定格式的報(bào)表進(jìn)行輸入、輸出操作,如需改變報(bào)表格式,要更改系統(tǒng)的配置。而報(bào)表的流轉(zhuǎn)采用“上級(jí)傳遞至下級(jí)填寫(xiě),再提交給上級(jí)匯總”的形式,且大多以“線下”的方式流轉(zhuǎn)。這種方式并不能夠很靈活的支撐紛繁復(fù)雜的業(yè)務(wù)。
為滿足新形勢(shì)下的業(yè)務(wù)需求,報(bào)表管理體系需要覆蓋報(bào)表管理的全過(guò)程,從報(bào)表生命周期的開(kāi)始到結(jié)束,都要達(dá)到靈活、便捷、高效和自動(dòng)化的目標(biāo)。本文針對(duì)電網(wǎng)企業(yè)的組織架構(gòu)及業(yè)務(wù)特點(diǎn),并考慮電力體制改革對(duì)電網(wǎng)企業(yè)帶來(lái)的影響,設(shè)計(jì)出一種適用于電網(wǎng)企業(yè)的報(bào)表管理體系,主要包括報(bào)表生成、報(bào)表流轉(zhuǎn)及報(bào)表分析3大部分,如圖1所示。文中將重點(diǎn)論述報(bào)表生成與報(bào)表流轉(zhuǎn)。
2.1.1 報(bào)表類(lèi)型
靜態(tài)報(bào)表:多個(gè)報(bào)表項(xiàng)的某一部分輸出項(xiàng)目和輸出格式是相同的,只是每個(gè)輸出項(xiàng)目的數(shù)據(jù)是變化,我們稱(chēng)這個(gè)是靜態(tài)報(bào)表。
動(dòng)態(tài)報(bào)表:多個(gè)報(bào)表項(xiàng)的某一部分輸出項(xiàng)目和輸出格式是不相同的,以及每個(gè)輸出項(xiàng)目的數(shù)據(jù)是變化的,我們稱(chēng)這個(gè)是動(dòng)態(tài)報(bào)表[1]。

圖1 報(bào)表管理體系Fig.1 Report management system
2.1.2 報(bào)表生成技術(shù)
VisualBasic forApplications(VBA)是一種Visual Basic的一種宏語(yǔ)言,主要能用來(lái)擴(kuò)展Windows的應(yīng)用程序功能,特別是Microsoft Office軟件,也可說(shuō)是一種應(yīng)用程序視覺(jué)化的Basic Script。VBA對(duì)于Excel功能的擴(kuò)展具有天然的優(yōu)勢(shì),因?yàn)閂BA封裝了Excel的所有對(duì)象,并可以通過(guò)OLEDB對(duì)所有支持ODBC接口的關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行操作,從而很好的連接了數(shù)據(jù)庫(kù)與Excel[2]。而絕大多數(shù)的報(bào)表以Excel的形式存在,因此基于VBA是報(bào)表生成最簡(jiǎn)單直接的方法。
VBA采用XML替代傳統(tǒng)的HTML作為服務(wù)器端返回給客戶端的數(shù)據(jù)載體[3]。XML是被設(shè)計(jì)用來(lái)傳送及攜帶數(shù)據(jù)信息的一種標(biāo)記語(yǔ)言。標(biāo)記指計(jì)算機(jī)所能理解的信息符號(hào),通過(guò)此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種信息的文章等。對(duì)于數(shù)量越發(fā)增大的動(dòng)態(tài)報(bào)表來(lái)說(shuō),報(bào)表表樣與取數(shù)口徑需要根據(jù)業(yè)務(wù)需求做出變更,而且在報(bào)表檢索的過(guò)程中不同報(bào)表的檢索參數(shù)各不相同,因此XML具有以下幾個(gè)特點(diǎn)[4]:
1)信息的描述與信息的處理分開(kāi);
2)具有自我描述能力;
3)具有良好的開(kāi)放性和可擴(kuò)展性;
4)具有可驗(yàn)證的特性。
根據(jù)上述特點(diǎn),采用XML具有幾項(xiàng)優(yōu)勢(shì)[5]:
1)報(bào)表中的每個(gè)模塊易于被替換;
2)報(bào)表信息容易被機(jī)器識(shí)別;
3)對(duì)報(bào)表信息的變化具有一定的適應(yīng)性,使報(bào)表的格式更為靈活。
2.2.1 報(bào)表流轉(zhuǎn)方式
由于電網(wǎng)企業(yè)承擔(dān)了較為重要的社會(huì)義務(wù),需要確保安全生產(chǎn)和供電可靠性的要求,電網(wǎng)企業(yè)的業(yè)務(wù)邏輯較為嚴(yán)謹(jǐn),一般需要通過(guò)層層的審批以確保工作的萬(wàn)無(wú)一失。而對(duì)于大量的報(bào)表上報(bào)工作,特別是臨時(shí)下達(dá)的任務(wù),目前往往缺乏一個(gè)高效的自動(dòng)化流轉(zhuǎn)方法,甚至有很多報(bào)表仍然使用紙質(zhì)審批的方式。
報(bào)表的下發(fā)、上報(bào)的過(guò)程是影響報(bào)表數(shù)據(jù)質(zhì)量與數(shù)據(jù)流轉(zhuǎn)效率的一個(gè)很重要的因素,為了確保數(shù)據(jù)在不丟失的前提下高效流轉(zhuǎn),需要將日常報(bào)表流轉(zhuǎn)工作以流程的形式固化到信息系統(tǒng)中。工作流是一類(lèi)能夠完全或者部分自動(dòng)執(zhí)行的經(jīng)營(yíng)過(guò)程,它根據(jù)一系列過(guò)程規(guī)則,文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間進(jìn)行傳遞與執(zhí)行,工作流技術(shù)能以動(dòng)態(tài)的方式實(shí)現(xiàn)業(yè)務(wù)過(guò)程集成和部門(mén)協(xié)同,非常適合于報(bào)表管理。
2.2.2 工作流模型設(shè)計(jì)
采用工作流技術(shù)對(duì)報(bào)表進(jìn)行管理的核心在于工作流模型的建立,因此需要基于業(yè)務(wù)流程建立一個(gè)定義良好的工作流模型,該模型必須是計(jì)算機(jī)可以理解的,而且能夠準(zhǔn)確的描述企業(yè)經(jīng)營(yíng)過(guò)程[6]。
目前,建立工作流模型的方法主要分3種:基于通信的工作流建模方法、基于加工對(duì)象的工作流建模方法和基于活動(dòng)的工作流建模方法[6]。針對(duì)電網(wǎng)的業(yè)務(wù)特點(diǎn),本文采用基于活動(dòng)的工作流建模方法。通過(guò)梳理,可歸納出每類(lèi)業(yè)務(wù)對(duì)應(yīng)的流程。而對(duì)于某個(gè)流程,又可定義出常規(guī)任務(wù),并通過(guò)業(yè)務(wù)的需求制定出任務(wù)間傳遞的規(guī)則及不同權(quán)限的角色。報(bào)表管理的工作任務(wù)由不同角色的員工按照工作流制定的工作流規(guī)則執(zhí)行。
為了進(jìn)一步清楚的表達(dá)上述的工作流模型,下面以企業(yè)信息系統(tǒng)用戶申請(qǐng)流程為例,采用表1的形式描述。該流向定義如下:起草人起草申請(qǐng)單,送本部門(mén)領(lǐng)導(dǎo)審批,送業(yè)務(wù)主管部門(mén)審批,最后送系統(tǒng)管理員實(shí)施變更。其中中間過(guò)程可回退至起草人。

表1 審批流程的工作流定義Tab.1 Workflow definition approval process
以下以筆者參與開(kāi)發(fā)的“數(shù)據(jù)上報(bào)平臺(tái)”項(xiàng)目為例來(lái)說(shuō)明上述報(bào)表管理體系的使用。該項(xiàng)目采用基于struts 2的MVC架構(gòu),使得該平臺(tái)謹(jǐn)遵“高內(nèi)聚,低耦合”的原則進(jìn)行開(kāi)發(fā),所開(kāi)發(fā)的平臺(tái)具備足夠的可擴(kuò)展性和易維護(hù)性。該系統(tǒng)分為數(shù)據(jù)管理和用戶管理兩大模塊,數(shù)據(jù)管理為核心模塊,包括報(bào)表模板的生成、數(shù)據(jù)上報(bào)、數(shù)據(jù)查詢(xún)等功能,如圖2所示為系統(tǒng)的首頁(yè)界面。下面將重點(diǎn)說(shuō)明模板管理與數(shù)據(jù)上報(bào)。

圖2 數(shù)據(jù)上報(bào)平臺(tái)主界面Fig.2 Data reporting platform main interface
在模板管理功能的設(shè)計(jì)當(dāng)中,對(duì)不同版本的Excel文件分開(kāi)處理。對(duì)于Excel 2003以下版本的Excel文件,采用Jxl(Java Excel API)進(jìn)行操作,而對(duì)于目前主流的Excel 2003以上版本Excel文件,采用Apache的Jakarta POI進(jìn)行操作。POI具有兩種不同的模式對(duì)Excel文件進(jìn)行讀取,用戶模式與事件驅(qū)動(dòng)模式。由于用戶模式在讀取大文件的時(shí)候會(huì)出現(xiàn)內(nèi)存溢出的問(wèn)題,因此該系統(tǒng)采用事件驅(qū)動(dòng)模式。實(shí)際上,處理Excel就是解析 XML,該項(xiàng)目采用SAX(Simple API for XML)解析XML。這種模型在讀取XML文檔時(shí),并沒(méi)有將整個(gè)文檔讀入內(nèi)存,而是按順序?qū)⒄麄€(gè)文檔解析完,在解析過(guò)程中,會(huì)主動(dòng)產(chǎn)生事件交給程序中相應(yīng)的處理函數(shù)來(lái)處理當(dāng)前內(nèi)容。因此這種方式對(duì)系統(tǒng)資源要求不高,可以處理海量數(shù)據(jù)。
目前,該項(xiàng)目將某市供電局的3類(lèi)報(bào)表上報(bào)業(yè)務(wù)流程固化到了系統(tǒng)中,其中包括主營(yíng)業(yè)務(wù)系統(tǒng)數(shù)據(jù)處理審批、功能變更審批以及上面提到的權(quán)限變更審批。在以往需要通過(guò)線下流轉(zhuǎn)的報(bào)表,現(xiàn)在用戶可通過(guò)該系統(tǒng)自動(dòng)化的進(jìn)行報(bào)表流轉(zhuǎn),大大縮短了業(yè)務(wù)審批用時(shí)。由于struts 2 MVC架構(gòu)具有很強(qiáng)的擴(kuò)展性,未來(lái)可根據(jù)業(yè)務(wù)需求對(duì)其他業(yè)務(wù)流程在該系統(tǒng)進(jìn)行固化,進(jìn)一步提高各類(lèi)報(bào)表流轉(zhuǎn)業(yè)務(wù)的效率。
文中構(gòu)建的報(bào)表管理體系,充分考慮到了電網(wǎng)企業(yè)的業(yè)務(wù)特點(diǎn)及發(fā)展趨勢(shì),涵蓋了報(bào)表管理的全過(guò)程,并結(jié)合了XML及工作流的計(jì)算機(jī)技術(shù),提出了系統(tǒng)的解決方案。此外,根據(jù)上述體系采用struts 2 MVC架構(gòu)開(kāi)發(fā)的數(shù)據(jù)上報(bào)平臺(tái),將體系的理論應(yīng)用到了實(shí)際生產(chǎn)中,為電網(wǎng)企業(yè)中涉及報(bào)表上報(bào)的業(yè)務(wù)帶來(lái)了業(yè)務(wù)可靠、數(shù)據(jù)可溯、降本增效以及應(yīng)用廣泛的積極意義。
[1]李永鋒,谷川.一種模板化的Web打印方法的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2010,27(4):118-119.
[2]楊爭(zhēng)林,宋燕敏,曹榮章,等.基于Excel的電力市場(chǎng)報(bào)表管理系統(tǒng)[J].電力系統(tǒng)自動(dòng)化,2003,27(1):27-30.
[3]趙真玉.Excel中VBA開(kāi)發(fā)技術(shù)的探討[J].勝利油田職工大學(xué)學(xué)報(bào),2007,21(4):81.
[4]趙中華,耿玉冰,孔祥翠.基于XML的B/S架構(gòu)下動(dòng)態(tài)報(bào)表的實(shí)現(xiàn)方式[J].山東輕工業(yè)學(xué)院學(xué)報(bào),2008,22(1):29-31.
[5]凌宇.基于XML的動(dòng)態(tài)報(bào)表的實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(增刊):607-609.
[6]林仁風(fēng),李沛,林蔚.基于工作流的同集熱電報(bào)表管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2009,5(34):9711-9714.