謝末
[摘 要] 為了滿足企業信息化發展需求,往往要建設多個功能大致相同的中小型信息系統。利用開發哈石化員工餐廳訂餐系統的機會,嘗試了多種軟件相結合的開發方式,為利用企業SharePoint信息平臺開發進行了探索。
[關鍵詞] SharePoint 2010;ASP.NET;InfoPath;企業;訂餐系統
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2018. 07. 067
[中圖分類號] TP311 [文獻標識碼] A [文章編號] 1673 - 0194(2018)07- 0162- 02
0 引 言
目前員工訂餐采用提交紙質單,人工統計和人工計費的方式,效率低且出錯率高。運用微軟公司SharePoint 2010平臺結合ASP.NET技術,開發了一套訂餐系統。
1 需求分析
經過對員工餐廳的業務現狀調研,在整個業務流程中,除了菜單發布外,其他環節均采用紙質單、人工填寫記錄和人工計算的方式。訂餐單匯總到員工餐廳后,工作人員需要對各訂餐單位的餐品進行分類統計,并對每份訂餐信息進行手動計算,投入大量精力,計費準確性也不能得到保證。員工餐廳提出需要建設一個網上訂餐、提供統計與計費的系統。
2 平臺環境的設計與搭建
系統運行環境基于微軟公司的SharePoint 2010平臺搭建。利用原有信息門戶宿主機,新建三臺虛擬服務器,其中提供前臺Web服務,一臺提供數據庫服務。
3 系統功能的設計
經過需求分析,設計訂餐系統具備如下功能。
3.1 員工訂餐功能
用7個表單(form)來實現,其中午餐訂餐與晚餐訂餐提供在線訂餐功能,由各單位訂餐員工提交。午餐菜單、晚餐菜單、午餐主食、晚餐主食和訂餐單位定義訂餐信息,由員工餐廳工作人員定時發布維護。
3.2 自動審核功能
使用SharePoint平臺自帶的工作流技術,將提交8小時的訂單自動進行審核。審核后的訂單,不允許提交者修改。
3.3 統計與計費功能
Sharepoint本身對統計功能支持不理想,無法提供我們所需的分類匯總和按單計算的功能,我們需要到SQL Server數據庫中找到對應的數據表,提取有用的信息,再進行計算和處理。這部分需要使用ASP.NET二次開發。
3.4 權限與角色管理功能
系統基于哈石化hpc域認證,所有域用戶均有訂餐的權限。可以用同一個賬號為多人訂餐。訂餐人只允許修改自己提交的訂餐信息,可以查看所有訂餐信息、選擇訂餐菜單、主食和訂餐地點。員工餐廳管理員可以查看和修改所有人提交的訂餐信息、訂餐菜單、主食和訂餐地點。可以查看按天統計的訂餐菜品數量以及單個訂單的匯總計算結果。
4 主要功能實現
4.1 使用InfoPath定制訂餐表單
SharePoint自帶開箱即用的控件,僅僅提供有限的自定義設置功能,很難滿足實際業務中的需求。為了更好地滿足員工餐廳應用,我們需要使用InfoPath 2010 designer來自定義表單,同時實現表單聯動。在這里以創建午餐菜單為例。
4.1.1 圖形化設計表單
在InfoPath中利用文本框、下拉列表框、時間選擇器等控件自定義訂餐頁面。在添加控件時,要將對應的域命名為有意義的名稱,防止以后的使用中引起不必要的混亂。
4.1.2 創建數據源
在表單中,我們需要使用日期控件來選擇訂餐日期,然后根據所選的日期,從午餐菜單列表和主食列表中篩選出當天的菜單和主食單。
在瀏覽器中選擇庫設置,選擇使用InfoPath自定義表單,在InfoPath的ribbon菜單中選擇數據,數據連接,然后添加一個從SharePoint列表接受數據的數據源。在url中輸入午餐菜單的地址。
4.1.2.1 導入指定的列表和列
選擇要導入的列表和列(這里選擇標題,日期和價格),選擇按ID升序排列。
4.1.2.2 通過訂餐日期來篩選午餐菜單
在InfoPath界面,菜品1對應的下拉框中右鍵選擇下拉列表屬性,將列表框選項改為從外部數據源獲取選項,數據源選擇上一步中創建的數據源。在“項”選擇xpath按鈕,在篩選數據中添加一個篩選器。目的是通過日期等于訂餐日期來實現篩選功能。在最右邊的下拉菜單中選擇域和組,找到主域,然后選擇datafileds中的訂餐日期。
4.1.2.3 通過設置規則來更新數據
在下拉列表框的右鍵,選擇Manage Rules,在新建下拉列表框中,選擇Action,在數據連接中選擇已中創建的數據連接。
通過下拉菜單選擇主食和送餐地點的過程大同小異,不再此贅述細節。
4.2 使用ASP.NET開發統計頁面
由于SharePointp平臺對統計功能支持較弱,所以需要利用ASP.NET結合SharePoint的SQL Server數據庫進行二次開發。主要目的是實現選擇日期后,按照所選日期訂購的菜品統計訂餐份數以及按照菜品價格對每個訂單進行計算。涉及asp控件dropdownlist、datagridview和ado.net操作數據庫部分。
4.2.1 菜品匯總功能
菜品匯總功能,具體來說是要對訂餐表單頁面訂餐結果中按菜品進行統計,計算出當天各個菜品需要做出的份數,提供給廚房。實現的前提是要通過列表ID找到訂餐表單的數據,然后通過一系列參數對數據進行篩選、分組和合并。
4.2.2 訂單計價功能
員工提交訂單后,后臺對選擇的菜品(或主食)查找對應的價格,并乘以預定的份數。實現的方法是通過訂單中的菜品ID,查詢出菜價和份數,在ASP.NET頁面中進行計算。
4.3 實現定時自動審批
在提交訂餐信息后8個小時內,員工可以對提交的信息進行修改,過了規定的時間后,將對訂餐信息進行自動審批并鎖定,不允許修改。利用表單庫的聲明記錄功能與工作流(workflow)技術結合,可以實現這個業務需求。
4.3.1 表單庫實現聲明功能
實現激活表單庫的聲明功能,首先在服務器場管理中心激活:Site Actions->Site Settings->Site Collection Features, 找到現場記錄管理功能。 然后在列表和文檔庫,選中項目后,在文檔/項目ribbon菜單界面出現聲明記錄的選項。如果想手動增加列表或文檔庫的聲明狀態,需要對列表和文檔庫設置做以下修改:Settings 頁面,record declaration settings, 選中Always allow the manual declaration of records。
4.3.2 用順序工作流實現定時審批
SharePoint工作流是一個通過一系列操作自動化相關的業務流程對象。這個SharePoint的對象是一個文件或像一個公告或一個任務列表中的項目。具體到訂餐系統,就是將員工提交的表單在規定的時間后,聲明為記錄。
5 結 論
目前這套訂餐系統已經上線,處于內部測試階段。在開發過程中,綜合應用了多方面技術,包括使用SharePoint提供表單基礎服務和權限控制、使用InfoPath 實現表單設計和聯動、使用ASP.NET進行統計功能的開發以及使用工作流技術實現自動審批。其中InfoPath和工作流都是首次在哈石化應用。雖然有些方面應用不夠深入,對系統架構考慮未必成熟,但總體來說開辟了新的思路,為新的研究方向提供了目標,即在現有平臺的基礎上做二次開發。在以后的工作中,要深入研究SharePoint平臺與工作流技術,利用好已有的信息平臺,提供開發周期短,見效快,運行穩定的信息系統。
主要參考文獻
[1]王浩.SharePoint 2010開發最佳實踐[M].北京:電子工業出版社,2012.
[2]梅衛軍.一步一步學習SharePoint 2010[EB/OL].博客園,2011-07-21.
[3][美]Tom Rizzo,Reza Alirezaei,Paul J Swider.SharePoint 2010開發高級教程 [M].唐富年,譯.北京:清華大學出版社,2012.