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