皇甫漢聰
(廣東電網(wǎng)有限責(zé)任公司佛山供電局 廣東 佛山 528000)
在電網(wǎng)企業(yè)中,蘊含著大量的數(shù)據(jù)與報表。在日常業(yè)務(wù)中,需要很頻繁的對這些報表進行查詢、分析及打印。對報表的管理水平,成為了影響業(yè)務(wù)質(zhì)量與效率的一個很大的因素。此外,在電力體制改革的大背景下,這對電網(wǎng)企業(yè)的經(jīng)營效益提出了新的要求,大數(shù)據(jù)分析的重要性日益提高,如何使用合適的報表管理技術(shù)對報表進行全過程管理也因此變得至關(guān)重要。
電網(wǎng)企業(yè)中的報表數(shù)據(jù)主要來源于各大主營業(yè)務(wù)系統(tǒng),具有種類多、復(fù)雜度高、難管理的特點。此外,近年來電網(wǎng)企業(yè)對大數(shù)據(jù)分析的需求日益增長,在電力體制改革的大背景下,需要更好的挖掘電力市場運行數(shù)據(jù),分析電力市場運行規(guī)律,為企業(yè)的決策提供支持。
目前,多數(shù)情況下用戶只能對系統(tǒng)原有固定格式的報表進行輸入、輸出操作,如需改變報表格式,要更改系統(tǒng)的配置。而報表的流轉(zhuǎn)采用“上級傳遞至下級填寫,再提交給上級匯總”的形式,且大多以“線下”的方式流轉(zhuǎn)。這種方式并不能夠很靈活的支撐紛繁復(fù)雜的業(yè)務(wù)。
為滿足新形勢下的業(yè)務(wù)需求,報表管理體系需要覆蓋報表管理的全過程,從報表生命周期的開始到結(jié)束,都要達(dá)到靈活、便捷、高效和自動化的目標(biāo)。本文針對電網(wǎng)企業(yè)的組織架構(gòu)及業(yè)務(wù)特點,并考慮電力體制改革對電網(wǎng)企業(yè)帶來的影響,設(shè)計出一種適用于電網(wǎng)企業(yè)的報表管理體系,主要包括報表生成、報表流轉(zhuǎn)及報表分析3大部分,如圖1所示。文中將重點論述報表生成與報表流轉(zhuǎn)。
2.1.1 報表類型
靜態(tài)報表:多個報表項的某一部分輸出項目和輸出格式是相同的,只是每個輸出項目的數(shù)據(jù)是變化,我們稱這個是靜態(tài)報表。
動態(tài)報表:多個報表項的某一部分輸出項目和輸出格式是不相同的,以及每個輸出項目的數(shù)據(jù)是變化的,我們稱這個是動態(tài)報表[1]。
圖1 報表管理體系Fig.1 Report management system
2.1.2 報表生成技術(shù)
VisualBasic forApplications(VBA)是一種Visual Basic的一種宏語言,主要能用來擴展Windows的應(yīng)用程序功能,特別是Microsoft Office軟件,也可說是一種應(yīng)用程序視覺化的Basic Script。VBA對于Excel功能的擴展具有天然的優(yōu)勢,因為VBA封裝了Excel的所有對象,并可以通過OLEDB對所有支持ODBC接口的關(guān)系型數(shù)據(jù)庫進行操作,從而很好的連接了數(shù)據(jù)庫與Excel[2]。而絕大多數(shù)的報表以Excel的形式存在,因此基于VBA是報表生成最簡單直接的方法。
VBA采用XML替代傳統(tǒng)的HTML作為服務(wù)器端返回給客戶端的數(shù)據(jù)載體[3]。XML是被設(shè)計用來傳送及攜帶數(shù)據(jù)信息的一種標(biāo)記語言。標(biāo)記指計算機所能理解的信息符號,通過此種標(biāo)記,計算機之間可以處理包含各種信息的文章等。對于數(shù)量越發(fā)增大的動態(tài)報表來說,報表表樣與取數(shù)口徑需要根據(jù)業(yè)務(wù)需求做出變更,而且在報表檢索的過程中不同報表的檢索參數(shù)各不相同,因此XML具有以下幾個特點[4]:
1)信息的描述與信息的處理分開;
2)具有自我描述能力;
3)具有良好的開放性和可擴展性;
4)具有可驗證的特性。
根據(jù)上述特點,采用XML具有幾項優(yōu)勢[5]:
1)報表中的每個模塊易于被替換;
2)報表信息容易被機器識別;
3)對報表信息的變化具有一定的適應(yīng)性,使報表的格式更為靈活。
2.2.1 報表流轉(zhuǎn)方式
由于電網(wǎng)企業(yè)承擔(dān)了較為重要的社會義務(wù),需要確保安全生產(chǎn)和供電可靠性的要求,電網(wǎng)企業(yè)的業(yè)務(wù)邏輯較為嚴(yán)謹(jǐn),一般需要通過層層的審批以確保工作的萬無一失。而對于大量的報表上報工作,特別是臨時下達(dá)的任務(wù),目前往往缺乏一個高效的自動化流轉(zhuǎn)方法,甚至有很多報表仍然使用紙質(zhì)審批的方式。
報表的下發(fā)、上報的過程是影響報表數(shù)據(jù)質(zhì)量與數(shù)據(jù)流轉(zhuǎn)效率的一個很重要的因素,為了確保數(shù)據(jù)在不丟失的前提下高效流轉(zhuǎn),需要將日常報表流轉(zhuǎn)工作以流程的形式固化到信息系統(tǒng)中。工作流是一類能夠完全或者部分自動執(zhí)行的經(jīng)營過程,它根據(jù)一系列過程規(guī)則,文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間進行傳遞與執(zhí)行,工作流技術(shù)能以動態(tài)的方式實現(xiàn)業(yè)務(wù)過程集成和部門協(xié)同,非常適合于報表管理。
2.2.2 工作流模型設(shè)計
采用工作流技術(shù)對報表進行管理的核心在于工作流模型的建立,因此需要基于業(yè)務(wù)流程建立一個定義良好的工作流模型,該模型必須是計算機可以理解的,而且能夠準(zhǔn)確的描述企業(yè)經(jīng)營過程[6]。
目前,建立工作流模型的方法主要分3種:基于通信的工作流建模方法、基于加工對象的工作流建模方法和基于活動的工作流建模方法[6]。針對電網(wǎng)的業(yè)務(wù)特點,本文采用基于活動的工作流建模方法。通過梳理,可歸納出每類業(yè)務(wù)對應(yīng)的流程。而對于某個流程,又可定義出常規(guī)任務(wù),并通過業(yè)務(wù)的需求制定出任務(wù)間傳遞的規(guī)則及不同權(quán)限的角色。報表管理的工作任務(wù)由不同角色的員工按照工作流制定的工作流規(guī)則執(zhí)行。
為了進一步清楚的表達(dá)上述的工作流模型,下面以企業(yè)信息系統(tǒng)用戶申請流程為例,采用表1的形式描述。該流向定義如下:起草人起草申請單,送本部門領(lǐng)導(dǎo)審批,送業(yè)務(wù)主管部門審批,最后送系統(tǒng)管理員實施變更。其中中間過程可回退至起草人。
表1 審批流程的工作流定義Tab.1 Workflow definition approval process
以下以筆者參與開發(fā)的“數(shù)據(jù)上報平臺”項目為例來說明上述報表管理體系的使用。該項目采用基于struts 2的MVC架構(gòu),使得該平臺謹(jǐn)遵“高內(nèi)聚,低耦合”的原則進行開發(fā),所開發(fā)的平臺具備足夠的可擴展性和易維護性。該系統(tǒng)分為數(shù)據(jù)管理和用戶管理兩大模塊,數(shù)據(jù)管理為核心模塊,包括報表模板的生成、數(shù)據(jù)上報、數(shù)據(jù)查詢等功能,如圖2所示為系統(tǒng)的首頁界面。下面將重點說明模板管理與數(shù)據(jù)上報。
圖2 數(shù)據(jù)上報平臺主界面Fig.2 Data reporting platform main interface
在模板管理功能的設(shè)計當(dāng)中,對不同版本的Excel文件分開處理。對于Excel 2003以下版本的Excel文件,采用Jxl(Java Excel API)進行操作,而對于目前主流的Excel 2003以上版本Excel文件,采用Apache的Jakarta POI進行操作。POI具有兩種不同的模式對Excel文件進行讀取,用戶模式與事件驅(qū)動模式。由于用戶模式在讀取大文件的時候會出現(xiàn)內(nèi)存溢出的問題,因此該系統(tǒng)采用事件驅(qū)動模式。實際上,處理Excel就是解析 XML,該項目采用SAX(Simple API for XML)解析XML。這種模型在讀取XML文檔時,并沒有將整個文檔讀入內(nèi)存,而是按順序?qū)⒄麄€文檔解析完,在解析過程中,會主動產(chǎn)生事件交給程序中相應(yīng)的處理函數(shù)來處理當(dāng)前內(nèi)容。因此這種方式對系統(tǒng)資源要求不高,可以處理海量數(shù)據(jù)。
目前,該項目將某市供電局的3類報表上報業(yè)務(wù)流程固化到了系統(tǒng)中,其中包括主營業(yè)務(wù)系統(tǒng)數(shù)據(jù)處理審批、功能變更審批以及上面提到的權(quán)限變更審批。在以往需要通過線下流轉(zhuǎn)的報表,現(xiàn)在用戶可通過該系統(tǒng)自動化的進行報表流轉(zhuǎn),大大縮短了業(yè)務(wù)審批用時。由于struts 2 MVC架構(gòu)具有很強的擴展性,未來可根據(jù)業(yè)務(wù)需求對其他業(yè)務(wù)流程在該系統(tǒng)進行固化,進一步提高各類報表流轉(zhuǎn)業(yè)務(wù)的效率。
文中構(gòu)建的報表管理體系,充分考慮到了電網(wǎng)企業(yè)的業(yè)務(wù)特點及發(fā)展趨勢,涵蓋了報表管理的全過程,并結(jié)合了XML及工作流的計算機技術(shù),提出了系統(tǒng)的解決方案。此外,根據(jù)上述體系采用struts 2 MVC架構(gòu)開發(fā)的數(shù)據(jù)上報平臺,將體系的理論應(yīng)用到了實際生產(chǎn)中,為電網(wǎng)企業(yè)中涉及報表上報的業(yè)務(wù)帶來了業(yè)務(wù)可靠、數(shù)據(jù)可溯、降本增效以及應(yīng)用廣泛的積極意義。
[1]李永鋒,谷川.一種模板化的Web打印方法的設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2010,27(4):118-119.
[2]楊爭林,宋燕敏,曹榮章,等.基于Excel的電力市場報表管理系統(tǒng)[J].電力系統(tǒng)自動化,2003,27(1):27-30.
[3]趙真玉.Excel中VBA開發(fā)技術(shù)的探討[J].勝利油田職工大學(xué)學(xué)報,2007,21(4):81.
[4]趙中華,耿玉冰,孔祥翠.基于XML的B/S架構(gòu)下動態(tài)報表的實現(xiàn)方式[J].山東輕工業(yè)學(xué)院學(xué)報,2008,22(1):29-31.
[5]凌宇.基于XML的動態(tài)報表的實現(xiàn)[J].計算機工程,2004,30(增刊):607-609.
[6]林仁風(fēng),李沛,林蔚.基于工作流的同集熱電報表管理系統(tǒng)設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2009,5(34):9711-9714.