摘 要:本課題研究旨在探索信息技術(shù)在采購工作中的應(yīng)用,設(shè)計和開發(fā)出適合神東公司內(nèi)部應(yīng)用的采購尋源及供應(yīng)商管理系統(tǒng)。首先,基于需求調(diào)研,利用業(yè)務(wù)流程圖和用例圖完成了系統(tǒng)的業(yè)務(wù)流程和需求分析工作,在此基礎(chǔ)上,通過對比不同技術(shù)架構(gòu),給出系統(tǒng)的技術(shù)架構(gòu)方案,即系統(tǒng)開發(fā)框架采用三層結(jié)構(gòu),并給出了系統(tǒng)數(shù)據(jù)模型和數(shù)據(jù)表設(shè)計;然后,通過時序圖描述了采購方案管理、采購尋源、合同管理、供應(yīng)商管理四個功能模塊的詳細(xì)設(shè)計,其中重點討論了采購方案創(chuàng)建、采購?fù)扑]子功能;最后,針對上述功能模塊,給出了功能實現(xiàn)效果圖和編碼實現(xiàn)過程,同時,介紹了系統(tǒng)測試方法,驗證了系統(tǒng)功能的正確性。
關(guān)鍵詞:采購尋源;ASP.NET技術(shù);C# SQL Server 數(shù)據(jù)庫
1 概述
進入21世紀(jì)以來,各類信息化軟件的運用開始普遍,但仍然存在許多企業(yè)未運用信息化,或者是信息化程度較低。企業(yè)在采購過程中,是否有系統(tǒng)化的軟件進行跟蹤管理是確保企業(yè)采購過程順利進行的必要保障。首先,在信息的共享方面,據(jù)調(diào)研,目前很多企業(yè)未能實現(xiàn)信息的多方共享,同時,企業(yè)的內(nèi)部相關(guān)組織機構(gòu)也不能夠共享企業(yè)的信息,這使得每完成一項工作,都存在重復(fù)勞動,浪費人力和財力。其次,企業(yè)在采購的過程中,沒有系統(tǒng)的軟件進行過程跟蹤,采購人員往往需要花費大量的時間在手工記錄跟蹤信息上。作為企業(yè)的領(lǐng)導(dǎo)人員,由于采購事務(wù)涉及到很多環(huán)節(jié),也不能及時了解到采購的具體推進情況,影響企業(yè)的整體資金運轉(zhuǎn)。
綜上所述,考慮到神東煤炭集團公司作為一家煤炭生產(chǎn)型企業(yè),針對該公司目前在采購管理與供應(yīng)商管理方面的現(xiàn)狀,探討如何利用信息化的方式來實現(xiàn)采購的自動尋源以及高效的供應(yīng)商管理,開發(fā)出一套適合公司內(nèi)部應(yīng)用的采購信息化系統(tǒng),實現(xiàn)神東煤炭公司的采購與供應(yīng)商管理工作的信息化。
2 需求分析
經(jīng)過對神東集團公司物料采購部門的深入調(diào)研,其采購工作的實際流程可以描述為:首先,公司計劃部門根據(jù)生產(chǎn)管理部門傳遞來的生產(chǎn)計劃,結(jié)合當(dāng)前庫存情況,擬定采購計劃,采購部門制定采購方案并上報給采購主管審批,在采購方案審批通過后,委托招標(biāo)公司招標(biāo),根據(jù)中標(biāo)結(jié)果創(chuàng)建合同,完成采購業(yè)務(wù)。
從以上流程可以看出如下問題,首先,盡管企業(yè)已有生產(chǎn)管理信息化系統(tǒng),但企業(yè)生產(chǎn)部門傳遞給采購部門的采購計劃,都是通過紙質(zhì)或電子報表的方式,這使得采購部門在制定采購方案時,需要消耗很多的時間;其次,采購方案要經(jīng)過采購主管審批才能生效,這個審批過程并沒有實現(xiàn)信息化操作,導(dǎo)致效率低下。
針對上述存在的問題,設(shè)計和開發(fā)采購尋源及供應(yīng)商管理系統(tǒng)時,首先要集成企業(yè)的ERP管理系統(tǒng),從該系統(tǒng)中自動獲取采購計劃信息以作為制定采購方案的依據(jù);其次,要實現(xiàn)采購方案制定和審批的信息化處理;再次,針對供應(yīng)商選擇的問題,要研究自動推薦供應(yīng)商的功能應(yīng)用,節(jié)省采購人員挑選供應(yīng)商的時間;最后,改變合同擬定通過手工完成的方式,實現(xiàn)采購結(jié)果自動回傳、合同自動生成,在線提交審批,從而提高合同管理效率。
結(jié)合以上分析,采購尋源及供應(yīng)商管理系統(tǒng)要實現(xiàn)的業(yè)務(wù)模塊需要包括采購方案管理、采購尋源、訂單及合同管理、供應(yīng)商管理等。針對每個功能模塊,可以進一步劃分若干子業(yè)務(wù),完整的系統(tǒng)結(jié)構(gòu)如圖1所示。
2.1 采購方案管理業(yè)務(wù)
采購分包創(chuàng)建是基于ERP系統(tǒng)提供的采購計劃信息自動生成一個采購分包初稿,當(dāng)采購分包生成后,采購員可以對采購分包進行采購方案創(chuàng)建操作,然后提交給采購部門主管審批,因此,采購方案管理包括三個子模塊,分別是采購分包創(chuàng)建、采購方案創(chuàng)建、采購方案審批。
2.2 采購尋源業(yè)務(wù)
采購尋源是指在采購工作中尋找到合適的供應(yīng)商,為了達(dá)成這一目標(biāo),首先要發(fā)布采購需求,然后根據(jù)各個供應(yīng)商的報價、產(chǎn)品情況,從中選擇最為合適的供應(yīng)商。
2.3 合同管理業(yè)務(wù)
訂單及合同管理要實現(xiàn)合同生成和審批、采購訂單下達(dá)等基本操作。
2.4 供應(yīng)商管理業(yè)務(wù)
供應(yīng)商是目標(biāo)系統(tǒng)的參與用戶,其基本信息是由供應(yīng)商在目標(biāo)系統(tǒng)注冊時產(chǎn)生和阿里巴巴同步時獲取。為了使供應(yīng)商信息更加完整,允許采購員對供應(yīng)商信息進行補充操作。
3 系統(tǒng)設(shè)計
3.1 系統(tǒng)技術(shù)方案
目標(biāo)系統(tǒng)在設(shè)計中采用的是三層架構(gòu)模式,即在傳統(tǒng)的二層基礎(chǔ)上,獨立出新的一層,即業(yè)務(wù)邏輯層,將整個應(yīng)用劃分成表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,具體的系統(tǒng)的技術(shù)架構(gòu)設(shè)計如圖2所示。
三層架構(gòu)的應(yīng)用,其優(yōu)勢在于實現(xiàn)了各業(yè)務(wù)的邏輯獨立,就系統(tǒng)而言,能有效增強系統(tǒng)的靈活性、可維護性、可擴展性;就系統(tǒng)開發(fā)而言,易于大型軟件開發(fā)項目的分工,提高開發(fā)效率。
采購尋源及供應(yīng)商管理系統(tǒng)的開發(fā)技術(shù)采用當(dāng)前流行的ASP.NET和ADO.NET技術(shù),數(shù)據(jù)庫平臺選擇SQL Server數(shù)據(jù)庫,編程語言選擇C#語言。
3.2 數(shù)據(jù)庫的設(shè)計
在采購尋源及供應(yīng)商管理系統(tǒng)中,涉及到的數(shù)據(jù)表主要有采購計劃表、采購分包信息表、采購方案審批表、采購方案表、詢價單信息表、合同信息表、合同樣式表、合同樣式定義表、合同審批信息表、采購訂單表、物料信息表、供應(yīng)商信息表。
在數(shù)據(jù)表設(shè)計階段,要設(shè)計表的字段、字段類型和字段長度。受篇幅限制,只給出系統(tǒng)購方案信息表設(shè)計結(jié)果。如表1所示,該數(shù)據(jù)表用于存放采購分包基本信息,其中,采購分包編號為主鍵,對應(yīng)采購計劃為外鍵。
3.3 功能詳細(xì)設(shè)計
3.3.1 采購方案管理
采購方案管理包含了采購分包創(chuàng)建、采購方案創(chuàng)建、采購方案審批、采購方案維護等子功能,其中,采購分包創(chuàng)建首先由系統(tǒng)根據(jù)采購計劃,自動生成一個采購分包,然后由采購員對該分包進行完善,在確認(rèn)創(chuàng)建后,再執(zhí)行采購方案創(chuàng)建并提交審批操作。采購方案審批是由采購主管進行的,在審批時,需要給出具體的審批意見,“通過”或“不通過”,然后才能開展采購的后續(xù)流程。采購方案維護是指對采購方案進行修改、刪除或查詢操作。
采購分包創(chuàng)建數(shù)據(jù)是通過系統(tǒng)接口從企業(yè)現(xiàn)有的ERP系統(tǒng)中獲得,存放在采購計劃表。采購分包需要將相同性質(zhì)的采購標(biāo)的歸為一類,其操作的數(shù)據(jù)對象是采購分包信息表。在執(zhí)行采購分包創(chuàng)建時,從數(shù)據(jù)表提出數(shù)據(jù)進行運算,最終得出初步的采購分包,其流程如圖3所示。
采購分包生成后,采購員可以內(nèi)容進行修改,然后提交修改后的分包信息,這時表示層和業(yè)務(wù)邏輯層分別調(diào)用采購分包信息保存方法進行業(yè)務(wù)請求響應(yīng),最后,數(shù)據(jù)訪問層完成分包信息插入操作,
并將操作結(jié)果返回至業(yè)務(wù)邏輯層,并進一步傳給表示層,表示層根據(jù)操作結(jié)果值,分別向客戶端用戶提示相應(yīng)信息。
當(dāng)采購分包創(chuàng)建好后,緊接著即進入采購方案的創(chuàng)建和審批階段,采購方案的審批工作通常是由采購主管來完成,采購主管根據(jù)企業(yè)的實際情況確定是否給予審批。
3.3.2 采購尋源
通過采購尋源,可以從眾多供應(yīng)商中找到最合適的供應(yīng)商。該模塊包含四個子模塊,分別是詢價單發(fā)布、詢價撤消、供應(yīng)商報價、采購?fù)扑]。由于采購尋源主要是基于IBS平臺進行,在目標(biāo)系統(tǒng)中不是常用模塊,在此不做重點討論。
3.3.3 合同管理
合同管理包括合同生成、合同審批、合同維護等。本節(jié)將重點探討合同生成、合同審批這兩個子功能的詳細(xì)設(shè)計。
(1)合同生成提交
合同生成提交指的是生成采購合同,并提交至對應(yīng)的采購主管部門。采購合同生成包括兩個步驟,首先是調(diào)用采購合同的模板,將合同模板展示在頁面,即加載合同模塊;其次,獲取用戶輸入的合同信息,將這些信息插入到合同信息表中。合同模板加載執(zhí)行的是數(shù)據(jù)讀取操作,操作的數(shù)據(jù)對象是合同樣式表和合同樣式定義表。
(2)合同審批
合同審批針對的是企業(yè)的采購主管,當(dāng)采購合同提交至采購主管后,采購主管登錄系統(tǒng)即可查看到需要審批的采購合同。因此,合同審批在具體實現(xiàn)時包括兩個步驟,首先是綁定未審批的合同信息,然后針對未審批合同執(zhí)行審批操作。
合同審批操作的數(shù)據(jù)對象是合同審批信息表,執(zhí)行的是數(shù)據(jù)插入操作,因此,合同審批功能流程可以描述為:采購主管選擇待審批的合同記錄,表示層獲取選擇的合同記錄編號,然后調(diào)用業(yè)務(wù)邏輯層方法響應(yīng)該請求,業(yè)務(wù)邏輯層根據(jù)合同編號調(diào)用數(shù)據(jù)訪問層方法完成數(shù)據(jù)檢索操作,并將數(shù)據(jù)綁定顯示。在采購主管給出具體審批意見后,表示層便調(diào)用審批意見錄入方法,完成向合同審批信息表的數(shù)據(jù)插入操作,最終將審批意見反饋給采購員。
3.3.4 供應(yīng)商管理
供應(yīng)商管理主要實現(xiàn)對供應(yīng)商基本信息的維護,在采購尋源及供應(yīng)商管理系統(tǒng)中,供應(yīng)商信息來源于兩個途徑,一是通過供應(yīng)商直接注冊而成;二是從1688平臺同步供應(yīng)商信息。
供應(yīng)商注冊業(yè)務(wù)的主體就是供應(yīng)商自身,通過系統(tǒng)提供的注冊頁面完成基本信息注冊操作,從程序?qū)崿F(xiàn)角度看,供應(yīng)商注冊實質(zhì)是向供應(yīng)商信息表執(zhí)行數(shù)據(jù)插入操作。
供應(yīng)商在注冊頁面提交注冊業(yè)務(wù)請求后,表示層便獲取供應(yīng)商注冊信息,然后進行數(shù)據(jù)校驗,在數(shù)據(jù)校驗通過后,業(yè)務(wù)邏輯層調(diào)用數(shù)據(jù)層的供應(yīng)商信息錄入方法執(zhí)行對供應(yīng)商信息表的數(shù)據(jù)插入操作,最后,表示層通過數(shù)據(jù)操作返回值向供應(yīng)商用戶提示相應(yīng)信息。
在目標(biāo)系統(tǒng)中,供應(yīng)商信息還可從1688平臺通過同步而獲取的,其實現(xiàn)原理是從1688平臺的數(shù)據(jù)接口讀取供應(yīng)商信息,然后將其插入到本地數(shù)據(jù)庫的供應(yīng)商信息表中。
4 系統(tǒng)實現(xiàn)
4.1 采購方案管理
采購方案管理主要實現(xiàn)采購方案分包創(chuàng)建、采購方案創(chuàng)建和維護、審批等主要功能,采購方案創(chuàng)建的實現(xiàn)界面如圖4所示。其中,采購方案編號為程序自動生成。整個采購方案包括采購方案基本信息、創(chuàng)建人信息、招標(biāo)人信息三部分,在填寫相關(guān)信息后,點擊提交審批按鈕,事件即可觸發(fā)。
采購方案創(chuàng)建從應(yīng)用程序?qū)崿F(xiàn)的角度看,是向采購方案信息表執(zhí)行數(shù)據(jù)插入操作。功能實現(xiàn)的表示層代碼如下:
//響應(yīng)業(yè)務(wù)請求事件
protected void CreatePurPlan_Click(object sender, EventArgs e)
{
… … …//獲取頁面輸入值
Model.plan thisPlan=new plan();
thisPlan.name = TB_planName.Text.ToString();
BLL.planBLL uB=new planBLL();
//調(diào)用業(yè)務(wù)邏輯層方法
if (uB.addPlan(thisPlan))
{
//根據(jù)數(shù)據(jù)庫返回值向客戶端輸出業(yè)務(wù)操作結(jié)果
Response.Write(“true”);
}
else
{
Response.Write(“1”);
}
}
采購方案在提交之后,方案創(chuàng)建人可以查看采購方案的審批情況,在審批通過之前,采購方案處于不可修改狀態(tài)。功能實現(xiàn)的界面如圖5所示。
采購方案審批查看的實現(xiàn)主要依賴采購方案信息表的狀態(tài)字段,在采購方案創(chuàng)建時,該狀態(tài)值默認(rèn)寫入0。當(dāng)采購員查看采購方案審批情況時,程序會讀取該值,如果為0,則向用戶提示,并置方案內(nèi)容為不可編輯狀態(tài)。
當(dāng)采購員提交采購方案之后,采購主管可以在管理后臺查看待審批的采購方案,并執(zhí)行審批操作。從程序?qū)崿F(xiàn)角度看,采購方案審批是向采購方案審批表執(zhí)行數(shù)據(jù)插入操作。插入數(shù)據(jù)主要包括采購方案編號、審批人、審批結(jié)果、審批結(jié)果說明、審批時間等。其中,采購方案編號是從頁面Session中獲取,這是因為用戶首先要選擇待審批的采購方案,然后頁面要跳轉(zhuǎn)到審批界面。
4.2 采購尋源
采購方案審批通過后,采購員要針對采購內(nèi)容,向IBS平臺發(fā)布詢價信息,這個過程就是創(chuàng)建詢價單、發(fā)布詢價單。創(chuàng)建詢價單實質(zhì)是向詢價單信息表執(zhí)行數(shù)據(jù)插入操作,由于實現(xiàn)過程與采購方案創(chuàng)建類似,在此不做介紹。
4.3 合同及訂單管理
IBS在將采購結(jié)果回傳后,系統(tǒng)會根據(jù)模板自動生成采購合同,為了便于打印,合同可以以word形式輸出,同時為了方便提交審批,也可以在客戶端顯示合同內(nèi)容。如果用word輸出這時需要解決的問題是如何實現(xiàn)程序?qū)ord文檔的定義。實現(xiàn)的關(guān)鍵代碼如下:
Word.InlineShape oShape;
object oClassType = “MSGraph.Chart.8”;
wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
oShape = wrdRng.InlineShapes.AddOLEObject(ref oClassType, ref oMissing,
ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing);
合同生成后,需要提交給采購主管審批,首先,合同信息顯示在頁面,同時,點擊合同文本,可以下載之前自動生成的word文檔。在合同信息確認(rèn)后,點擊提交審批,即可向采購主管提交合同信息,并等待審批結(jié)果。采購主管審批合同的實現(xiàn)界面如圖6所示。當(dāng)合同可以通過時,點擊批準(zhǔn)按鈕,即可觸發(fā)合同審批事件,完成合同審批操作。
4.4 供應(yīng)商管理業(yè)務(wù)
在采購尋源及供應(yīng)商管理系統(tǒng)中,供應(yīng)商信息其中一個渠道是來源于1688平臺,這些信息在注冊時,存放在1688平臺數(shù)據(jù)庫,為了便于本系統(tǒng)進行管理,需要定期同步下載1688平臺的供應(yīng)商信息,為此,需要同步兩個數(shù)據(jù)庫的數(shù)據(jù)。實現(xiàn)的代碼如下:
//創(chuàng).建.鏈.接.服.務(wù).器
exec sp_addlinkedserver ′ITSV′,′′,′SQLOLEDB′,′遠(yuǎn)程服務(wù)器名或ip地址′
exec sp_addlinkedsrvlogin ′ITSV′,′1′,1,′用戶名′,′密碼′
//查詢
select*from openrowset(′SQLOLEDB′,′sql服務(wù)器名′;′用戶名′;′密碼′,數(shù)據(jù)庫名.dbo.表名)
//生成本地表
select*into表from openrowset(′SQLOLEDB′,′sql服務(wù)器名′;′用戶名′;′密碼′,數(shù)據(jù)庫名.dbo.表名)
//把本地表導(dǎo)入遠(yuǎn)程表
insert openrowset(′SQLOLEDB′,′sql服務(wù)器名′;′用戶名′;′密碼′,數(shù)據(jù)庫名.dbo.表名)
select*from本地表
//更新本地表
updateb
set b列A=a列A
from openrowset(′SQLOLEDB′,′sql服務(wù)器名′;′用戶名′;′密碼′,數(shù)據(jù)庫名.dbo.表名)as a inner join本地表 b
on acolumn1=bcolumn1
5 系統(tǒng)測試
系統(tǒng)測試的目的是驗證目標(biāo)系統(tǒng)在功能以及性能方面是否正確,在目標(biāo)系統(tǒng)測試工作中,主要采用了兩種測試方法,即白盒測試與黑盒測試。
白盒測試:白盒測試的重點是驗證系統(tǒng)的所有內(nèi)部邏輯結(jié)構(gòu)是否正確,由于一般的用戶對于系統(tǒng)的內(nèi)部邏輯結(jié)構(gòu)不熟悉,因此白盒測試應(yīng)該由軟件開發(fā)人員來完成。
黑盒測試:黑盒測試的重點是驗證功能的輸入輸出接口,對于黑盒測試而言,由于不涉及到具體的邏輯結(jié)構(gòu),因而可以由普通的用戶來進行測試,根據(jù)設(shè)計好的測試用例以及測試數(shù)據(jù)進行測試即可。
目標(biāo)系統(tǒng)功能測試主要是以白盒與黑盒相結(jié)合的測試方法進行的,性能測試需要借助于LoadRunner自動化測試工具。測試結(jié)果均通過測試。
參考文獻
[1]郭修甫.煤炭企業(yè)物資采購與配送策略[M].武漢:中國地質(zhì)大學(xué)出版,2013:189-192.
[2]申寶玉.淺談煤炭物資供應(yīng)企業(yè)的采購管理[N].西部時報,2014-10-21.
[3]諸克軍.企業(yè)物資采購與配送政策[M].武漢:中國地質(zhì)大學(xué)出版社,2014,78-80.
[4]王曉東.采購與供應(yīng)鏈管理[M].北京:電子工業(yè)出版社,2014:109-111.
[5]梁雪梁.現(xiàn)代采購管理實務(wù)[M].北京:科學(xué)出版社,2014:156-159.
[6]劉伯瑩,劉伯鈞.MRPⅡ/ERP原理與實施[M].天津:天津大學(xué)出版社,2014:190-192.
作者簡介:張水霞(1982-),女,工學(xué)學(xué)士,工程師,2005年畢業(yè)于陜西科技大學(xué),現(xiàn)任神東煤炭分公司物資供應(yīng)中心采購部采購員。