馬宇


摘 要:生產系統實用化考核涉及多項指標,傳統整改方式難以取得較好成效。為解決問題,該文結合相關技術,從數據抓取、數據處理、數據發布3方面創新性地提供了一套系統實用化整改解決方案,準確定位用戶需求,成功開發并應用生產系統實用化整改輔助工具,切實解決用戶迫切的業務需求。
關鍵詞:生產系統 實用化 數據抓取 數據處理 數據發布
中圖分類號:TM72 文獻標識碼:A 文章編號:1674-098X(2016)06(b)-0003-03
1 前言
在電力行業中,生產業務繁雜,涉及業務部門較多。借助信息技術手段,生產系統加強對生產部門相關崗位及基層生產班組的規范管理,實現信息共享。
由于生產系統上每張工作票、操作票的起止時間不一、種類較多,可能導致相關人員因遺漏而未能及時將其歸檔。而且,由于相關數據格式各異,員工無法根據工作票、操作票距離到期日期的剩余天數進行排序以作優先處理。一方面,這會影響相關工作的規范化開展;另一方面,也會拉低生產系統上的工作票、操作票歸檔及時率之類的考核指標。
基于此,該文從數據抓取、數據處理、數據發布3方面闡述創新性的系統實用化整改解決方案。
1.1 數據抓取
設置特定的時間點,由計算機在生產系統上抓取所需數據,比如工作票、操作票數據等,節省獲取數據的時間和工作。
1.2 數據處理
根據用戶需求,計算機將定時處理抓取得到的數據,存儲于后臺數據庫,做好數據備份,特別地,允許用戶在無需修改程序代碼的情況下,自行添加待處理數據文件的種類,并說明其中所包含的字段、屬性、位置等信息。
1.3 數據發布
通過腳本文件,將后臺數據庫的數據匯總統計,實時展現在網頁上供用戶瀏覽,指導其及時做好歸檔工作。
2 相關技術
該文采用3方面技術原理,具體如下。
2.1 POST請求
POST是向服務器傳送數據,把請求數據放置在HTTP請求包的包體中。不同于GET請求,執行POST操作時,瀏覽器不會緩存數據,對URL限制、表單數據限制均無要求。
2.2 JSON
JSON(JavaScript Object Notiation)是一種輕量級的數據交換格式,易于閱讀、編寫、機器解析和生成。它是基于JavaScript的一個子集,采用獨立于語言的文本格式,并兼顧類似C語言家族的習慣。其建構于兩種結構,分別是“名稱/值”對集合與值的有序列表?,F代計算機語言的支持使得一種數據格式在同樣基于上述結構的編程語言之間交換成為可能[1]。
2.3 C#與.NET
作為一種基于現代面向對象設計方法的語言,C#的體系結構和方法論反映了.NET基礎方法論,其特定語言功能依賴于.NET基類。.NET基類內容豐富,直觀且易用,可以完成此前需要經Windows API實現的大部分工作,極大地提升開發人員的效率[2]。
ASP.NET是目前主流網絡開發技術之一,具有高效的運行性能、簡易且靈活、可管理性強、生產效率高,使網絡程序開發傾向于智能化,運行更為流暢[3]。
該文兩個技術關鍵點如下。
(1)準確定位用戶的需求。
項目旨在提高歸檔及時率,希望提供給用戶足夠的統計分析信息以供參考,這會是腳本設計的著力點,如何準確地捕獲用戶的需求亟待考慮。
(2)待處理數據格式各異。
把權力更多地交給用戶決定,這就要求程序本身需要考慮的東西足夠周全,如何把握好格式各異的數據間的共性,這是一個需要思考的問題。
在技術創新方面,該文真正實現自動化處理過程,目前尚未有能夠準確有效協助或替代人工處理相關數據的工具,開發適用于生產部門實際需求的整改工具,在提升工作效率、精簡時間成本等方面是一次有益的嘗試。
3 工具的開發及應用
對于生產系統實用化指標之一的操作票歸檔及時率,業務人員需要檢查“操作票生成時間+5個工作日”在該月的操作票是否在該月結束前完成歸檔。以2016年5月為例,需要檢查開票日期在2016年4月25日至2016年5月25日的操作票是否已及時歸檔,這在生產系統上可以查詢得到。在點擊查詢的同時,可使用Opera瀏覽器的“開發者工具”查看POST請求,如圖1所示。其中Request Headers包含所需的Cookie,將其保存在本地。接下來的工作將全部交由計算機實現。
該文使用JAVA語言開發POST請求發送工具,如圖2所示。通過Java.net.URL來獲取資源,指定POST請求中用到的Request URL。之后打開和URL之間的連接,返回一個URLConnection對象,表示到URL所引用遠程對象的連接。考慮到每次POST請求屬性穩定,于是在程序中對其設置,包括Request Headers包含的accept、connection、user-agent,并讀取此前保存在本地的文本設置cookie。調用上述URLConnection對象的getOutputStream方法,通過java.io.PrintWriter來獲取其對應的輸出流。這里需要調用PrintWriter對象的print方法發送請求參數,程序根據當前系統時間自行設置開票日期起止時間、每頁顯示條目數及當前頁數,通過定義java.io.BufferedReader輸入流來讀取URL的響應,以此獲得所有滿足考核規則的數據。以圖2為例,程序獲得110條記錄,并將其自行導入Oracle數據庫。經開發調試后,程序將以可運行的JAR文件格式導出,為定時執行做準備。
在用戶沒有進行任何操作的情況下,cookie將會在30 min后自行失效。為了保證cookie持續有效,使用Windows系統任務計劃程序功能執行JAR文件,模擬用戶操作,每隔一段時間發送POST請求。為此新建任務,此前將JAR文件保存在D盤,在任務中編輯操作,設置程序或腳本為“java”,設置添加參數為“-jar D:\sc.jar”;編輯觸發器,設置“制定計劃時”開始任務,設置開始時間為當天的0點,每隔1 d發生1次,重復任務間隔5 min,持續時間1 d。如圖3所示,如此即可保證每天每隔5 min模擬1次用戶操作。
在Oracle數據庫持續得到更新的同時,業務人員可以通過數據展示平臺查看所需內容,包括在規定時間內尚未歸檔的操作票。網站首頁提供所有實用化指標的圖表,顯示當前各指標在各部門的分布情況,包括柱狀圖和餅圖,這可通過DevExpress控件群下的一個Web圖表控件WebChartControl實現。在網站開發過程中,提供圖表控件服務類ChartServices.cs以控制生成圖表,包括繪制圖形、設置圖表標題、為X軸添加標題、為Y軸添加標題等方法;提供數據服務類DataServices.cs以提供多維數據,特別是在繪制柱狀圖時可以在一張圖顯示各部門多維指標現狀,讓用戶可以在盡可能少的圖表上獲得盡可能多的信息,從Oracle數據庫讀取以Datatable數據集合的形式返回。
在操作票歸檔及時率模塊,允許業務人員根據自身需要設定條件篩選并展示、匯總分析數據,通過Web控件AspxGridView實現,如圖4所示。用戶在“操作開始時間”設定2016年5月23日,沒有任何數據顯示,對業務人員而言這意味著當天開始的操作票都已經歸檔。需要說明的是,“及時歸檔剩余工作日”、“部門”、“參考部門”、“日期”等字段在生產系統中是不存在的,經計算得到,方便業務人員有針對性地篩選。其中,“及時歸檔剩余工作日”表示距離歸檔時限剩余時間,負數需引起業務人員注意;“部門”和“參考部門”為用戶業務上需要而提供的信息,方便將問題數據及時分派到指定部門;“日期”為記錄導入Oracle數據庫的時間。另外,數據展示平臺允許用戶導出當前AspxGridView上顯示的所有記錄,選擇在單個頁面或者分頁顯示數據,給用戶更多選擇空間。
除了操作票歸檔及時率,數據展示平臺還提供工作票辦結率、管理計劃及時完成率、維護檢修計劃完成率、缺陷驗收及時率、任務觀察記錄辦結率、缺陷錄入及時率等指標問題數據展示頁面,切實解決用戶迫切的業務需求。
4 結語
生產系統實用化指標可以直觀反映生產相關工作開展是否到位,成效能否達到預期目標。對生產線業務人員而言,實用化指標即是工作質量的標尺。如何將數據以更為豐富的形式展示給用戶、方便用戶高效開展實用化整改工作,應是信息人員需要考慮并為之付諸實踐的重要任務。當前信息技術發展突飛猛進,應對實際問題的方法可能不計其數。無論如何,以用戶為中心、切實解決用戶痛點應是當下互聯網思維應有之義。
參考文獻
[1] 閆曉婷,宋佳.AJAX中數據傳輸的新技術——JSON[J].福建電腦,2007(10):62.
[2] (美)內格爾(Nagel C),著.C#高級編程[M].李銘,譯.清華大學出版社,2014.
[3] 張躍廷,顧彥玲.ASP.NET從入門到精通[M].清華大學出版社,2012.