董一方
(浙江經(jīng)濟(jì)職業(yè)技術(shù)學(xué)院 數(shù)字信息技術(shù)學(xué)院,杭州 310018)
基于PDA的倉(cāng)存數(shù)據(jù)采集系統(tǒng)由三個(gè)子系統(tǒng)組成,分別為條形碼子系統(tǒng)、數(shù)據(jù)收發(fā)子系統(tǒng)、數(shù)據(jù)采集子系統(tǒng),如圖1所示。其中服務(wù)端數(shù)據(jù)收發(fā)子系統(tǒng)與PDA端數(shù)據(jù)采集子系統(tǒng)通過(guò)無(wú)線網(wǎng)絡(luò)進(jìn)行通信[2]。

圖1 系統(tǒng)組成
各子系統(tǒng)的功能模塊如圖2所示。

圖2 系統(tǒng)功能模塊圖
條形碼子系統(tǒng)部署在客戶端,其主要功能是讀取ERP系統(tǒng)中的基礎(chǔ)數(shù)據(jù)與業(yè)務(wù)數(shù)據(jù)以生成條形碼標(biāo)簽并打印,然后將其粘貼到對(duì)應(yīng)的倉(cāng)位與物品上,以建立物品、批次、倉(cāng)位之間的關(guān)聯(lián)與跟蹤。
1)條形碼標(biāo)簽生成:讀取ERP系統(tǒng)中的物品、規(guī)格、批次、倉(cāng)位、單據(jù)號(hào)和數(shù)量等相關(guān)數(shù)據(jù),按照事先定義的條形碼編碼規(guī)則生成條形碼標(biāo)簽。支持的條形碼包括Code 39、Code 93、Code 128、EAN 8、EAN 13等一維條碼。可根據(jù)需要設(shè)置條形碼標(biāo)簽的文字、高度、寬度和布局等,比如以條碼值“1234567890”為例,圖3生成的條形碼標(biāo)簽寬度為100、高度為40,標(biāo)簽文字位于正上方。

圖3 條形碼標(biāo)簽
2)條形碼標(biāo)簽打印:生成條形碼標(biāo)簽后即可打印,系統(tǒng)支持專用條形碼打印機(jī)打印,也支持普通打印機(jī)打印以節(jié)省成本。
數(shù)據(jù)收發(fā)子系統(tǒng)部署在服務(wù)端,其主要功能是讀取ERP系統(tǒng)中的倉(cāng)存作業(yè)任務(wù),通過(guò)無(wú)線網(wǎng)絡(luò)向指定PDA手持設(shè)備發(fā)送基礎(chǔ)數(shù)據(jù)與作業(yè)任務(wù)數(shù)據(jù),接收并處理PDA手持設(shè)備上傳的倉(cāng)存業(yè)務(wù)數(shù)據(jù)。
1)基礎(chǔ)數(shù)據(jù)發(fā)送:定時(shí)或者根據(jù)PDA手持設(shè)備的請(qǐng)求,向PDA手持設(shè)備發(fā)送物品、規(guī)格、批號(hào)、倉(cāng)位、供應(yīng)商和客戶等基礎(chǔ)數(shù)據(jù),以方便PDA用戶進(jìn)行業(yè)務(wù)操作。
日前,《自然》雜志在線發(fā)表了一篇論文,描述的是中國(guó)科學(xué)院覃重軍研究團(tuán)隊(duì)與合作者在國(guó)際上首次人工創(chuàng)建單條染色體的真核細(xì)胞,創(chuàng)造了自然界不存在的全新生命。有意思的是,這個(gè)被認(rèn)為是繼原核細(xì)菌“人造生命”之后的又一個(gè)重大突破,最初源于覃重軍5年前一個(gè)大膽到近乎“瘋狂”的猜想,當(dāng)時(shí)很多人覺得他就是在異想天開,如今這個(gè)“異想天開”卻成為了現(xiàn)實(shí)。
2)作業(yè)任務(wù)發(fā)送:讀取ERP系統(tǒng)中下達(dá)的作業(yè)任務(wù),進(jìn)行相關(guān)處理后即時(shí)向指定PDA手持設(shè)備發(fā)送作業(yè)任務(wù)數(shù)據(jù)。
3)業(yè)務(wù)數(shù)據(jù)接收:接收PDA手持設(shè)備上傳的各類倉(cāng)存業(yè)務(wù)數(shù)據(jù),進(jìn)行相關(guān)轉(zhuǎn)換與處理后保存到服務(wù)端數(shù)據(jù)庫(kù)。
4)業(yè)務(wù)數(shù)據(jù)查詢與統(tǒng)計(jì):根據(jù)時(shí)間、物品、倉(cāng)位等條件查詢與統(tǒng)計(jì)各PDA手持設(shè)備采集的各類業(yè)務(wù)數(shù)據(jù),進(jìn)行審計(jì)與跟蹤。
數(shù)據(jù)采集子系統(tǒng)部署在各PDA手持設(shè)備中,實(shí)時(shí)接收服務(wù)端數(shù)據(jù)收發(fā)子系統(tǒng)發(fā)送的作業(yè)任務(wù)數(shù)據(jù),作業(yè)任務(wù)包括入庫(kù)、出庫(kù)、盤點(diǎn)、移庫(kù)等,通過(guò)掃描條形碼標(biāo)簽進(jìn)行業(yè)務(wù)數(shù)據(jù)的采集,并通過(guò)無(wú)線網(wǎng)絡(luò)及時(shí)向服務(wù)端數(shù)據(jù)收發(fā)子系統(tǒng)發(fā)送業(yè)務(wù)數(shù)據(jù)。
1)PDA用戶登錄認(rèn)證:開啟PDA手持設(shè)備后,用戶需輸入正確的帳號(hào)與密碼才能進(jìn)入數(shù)據(jù)采集子系統(tǒng),這樣可跟蹤與審計(jì)各PDA用戶的操作,確保系統(tǒng)安全性。
2)登錄密碼修改:用戶登錄數(shù)據(jù)采集子系統(tǒng)后,可根據(jù)需要修改登錄密碼,修改密碼需驗(yàn)證舊密碼。
3)基礎(chǔ)數(shù)據(jù)同步:實(shí)時(shí)接收服務(wù)端數(shù)據(jù)收發(fā)子系統(tǒng)發(fā)送的物品、規(guī)格、批號(hào)、倉(cāng)位等基礎(chǔ)數(shù)據(jù),同步更新至PDA手持設(shè)備的數(shù)據(jù)庫(kù)中,為隨后的業(yè)務(wù)操作提供方便,比如當(dāng)掃描物品條形碼時(shí)可關(guān)聯(lián)查詢基礎(chǔ)數(shù)據(jù)自動(dòng)顯示物品的名稱、批號(hào)等信息。
4)作業(yè)任務(wù)接收:實(shí)時(shí)接收服務(wù)端數(shù)據(jù)收發(fā)子系統(tǒng)發(fā)送的作業(yè)任務(wù)數(shù)據(jù)。
5)業(yè)務(wù)操作與數(shù)據(jù)采集:PDA用戶按照接收到的作業(yè)任務(wù)到指定倉(cāng)位進(jìn)行業(yè)務(wù)操作,業(yè)務(wù)操作包括入庫(kù)、出庫(kù)、庫(kù)存盤點(diǎn)、移庫(kù)。使用PDA掃描出入庫(kù)物品與倉(cāng)位的條形碼標(biāo)簽,然后錄入數(shù)量進(jìn)行業(yè)務(wù)數(shù)據(jù)的采集,并保存在PDA手持設(shè)備的數(shù)據(jù)庫(kù)中。在采集過(guò)程中系統(tǒng)對(duì)數(shù)據(jù)格式、數(shù)值范圍等進(jìn)行有效性檢測(cè),以確保數(shù)據(jù)的正確性,當(dāng)檢測(cè)到錯(cuò)誤時(shí)則給出提示。圖4為入庫(kù)數(shù)據(jù)采集之前的操作界面,如圖5所示為入庫(kù)數(shù)據(jù)采集之后的操作界面,其中條碼通過(guò)掃描入庫(kù)物品的條形碼標(biāo)簽得到、架號(hào)通過(guò)掃描入庫(kù)倉(cāng)位的條形碼標(biāo)簽得到,件數(shù)與零頭由手工輸入,其余字段由物品條形碼關(guān)聯(lián)查詢基礎(chǔ)數(shù)據(jù)后自動(dòng)顯示。

圖4 入庫(kù)數(shù)據(jù)采集前

圖5 入庫(kù)數(shù)據(jù)采集后
6)業(yè)務(wù)數(shù)據(jù)上傳:通過(guò)無(wú)線網(wǎng)絡(luò)把采集的業(yè)務(wù)數(shù)據(jù)實(shí)時(shí)或批量上傳至服務(wù)端數(shù)據(jù)收發(fā)子系統(tǒng)。批量上傳數(shù)據(jù)時(shí)需顯示上傳進(jìn)度以提高人機(jī)交互性。批量上傳要確保數(shù)據(jù)上傳的原子性,即所有數(shù)據(jù)要么都上傳成功,要么都取消上傳。上傳成功后把已上傳的數(shù)據(jù)標(biāo)記為“已上傳”,這樣下次上傳時(shí)可確保已上傳的數(shù)據(jù)不再重復(fù)上傳。
7)業(yè)務(wù)數(shù)據(jù)維護(hù):采集的業(yè)務(wù)數(shù)據(jù)在上傳之前可在PDA中修改或刪除,當(dāng)數(shù)據(jù)上傳成功之后則不可再在PDA中修改,也不可再次上傳,已確保數(shù)據(jù)的有效性。當(dāng)經(jīng)過(guò)指定的時(shí)間間隔后,系統(tǒng)則自動(dòng)清空“已上傳”的業(yè)務(wù)數(shù)據(jù)以節(jié)省PDA空間。
8)即時(shí)庫(kù)存查詢:可根據(jù)物品代碼、物品名稱、倉(cāng)位查詢各物品、各倉(cāng)位的即時(shí)庫(kù)存數(shù)量,方便用戶操作。
9)系統(tǒng)設(shè)置:設(shè)置作業(yè)任務(wù)下載與業(yè)務(wù)數(shù)據(jù)上傳的服務(wù)端IP地址,設(shè)置已上傳業(yè)務(wù)數(shù)據(jù)自動(dòng)清空的時(shí)間間隔等。
系統(tǒng)使用的集成開發(fā)工具為Visual Studio 2010,編程語(yǔ)言為C#,系統(tǒng)運(yùn)行平臺(tái)如圖6所示。

圖6 系統(tǒng)運(yùn)行平臺(tái)
操作系統(tǒng)為Windows XP, 運(yùn)行平臺(tái)為.NET Framework 4.0。主要開發(fā)技術(shù)包括Windows Form、ADO.NET,條碼標(biāo)簽生成采用開源組件BarcodeLib.dll[3]。
操作系統(tǒng)為Windows Server 2008,Web服務(wù)器為IIS 7.0,運(yùn)行平臺(tái)為.NET Framework 4.0,數(shù)據(jù)庫(kù)服務(wù)器為Microsoft SQL Server 2005企業(yè)版。主要開發(fā)技術(shù)包括ASP.NET、ADO.NET、Web Service[4]、數(shù)據(jù)庫(kù)事務(wù)等。其中Web Service用于異構(gòu)平臺(tái)(服務(wù)端與PDA手持設(shè)備)之間的數(shù)據(jù)交互。
PDA手持設(shè)備選用優(yōu)博訊I60,此款設(shè)備的操作系統(tǒng)為Windows CE 5.0,運(yùn)行平臺(tái)為.NET Compact Framework 3.5[5],設(shè)備使用的數(shù)據(jù)庫(kù)為SQL Compact Edition 3.5。主要開發(fā)技術(shù)包括ADO.NET,.NET異步與多線程技術(shù)等。其中.NET異步與多線程技術(shù)用于業(yè)務(wù)數(shù)據(jù)批量上傳進(jìn)度的實(shí)時(shí)顯示。
PDA與PC機(jī)相比內(nèi)存較小、CPU處理能力較弱,所以需合理設(shè)計(jì)與優(yōu)化代碼以提高性能,尤其是業(yè)務(wù)數(shù)據(jù)批量上傳時(shí)需確保上傳快速且占用較少內(nèi)存。
業(yè)務(wù)數(shù)據(jù)采集時(shí)需自動(dòng)進(jìn)行有效性檢測(cè)以確保數(shù)據(jù)的準(zhǔn)確性,業(yè)務(wù)數(shù)據(jù)批量上傳時(shí)需進(jìn)行事務(wù)控制以確保數(shù)據(jù)上傳的原子性(即所有數(shù)據(jù)要么都上傳成功,要么都取消上傳),避免業(yè)務(wù)數(shù)據(jù)重復(fù)上傳,已上傳的業(yè)務(wù)數(shù)據(jù)不可再在PDA中修改等。
所有PDA窗體界面風(fēng)格一致、操作方式統(tǒng)一,光標(biāo)自動(dòng)跳轉(zhuǎn)與定位,文本框焦點(diǎn)獲取高亮顯示,掃描物品條形碼后自動(dòng)顯示物品名稱與規(guī)格,操作結(jié)果友好提示,業(yè)務(wù)數(shù)據(jù)上傳進(jìn)度實(shí)時(shí)顯示等。
利用.NET技術(shù)設(shè)計(jì)并實(shí)現(xiàn)基于PDA的倉(cāng)存數(shù)據(jù)采集系統(tǒng),詳細(xì)闡述系統(tǒng)的各組成部分、功能、運(yùn)行平臺(tái)和主要開發(fā)技術(shù),同時(shí)概括系統(tǒng)實(shí)現(xiàn)的關(guān)鍵點(diǎn)。該系統(tǒng)在化工企業(yè)倉(cāng)庫(kù)管理的運(yùn)行情況表明,系統(tǒng)性能良好,運(yùn)行穩(wěn)定可靠,操作簡(jiǎn)潔,方便易用,極大的提高倉(cāng)庫(kù)入庫(kù)、出庫(kù)、盤點(diǎn)和移庫(kù)等各作業(yè)環(huán)節(jié)業(yè)務(wù)數(shù)據(jù)采集的實(shí)時(shí)性與準(zhǔn)確性,減輕倉(cāng)管人員的工作量,提升倉(cāng)存管理的效率。
[1] 何亮, 龔中華, 付松廣. 金蝶ERP-K/3模擬實(shí)戰(zhàn): 財(cái)務(wù), 供應(yīng)鏈, 生產(chǎn)制造[M]. 第2版. 北京: 人民郵電出版社, 2011.
[2] 李俊韜, 岳溥庥, 朱杰. 基于無(wú)線PDA 技術(shù)的物流智能揀選系統(tǒng)[J]. 微計(jì)算機(jī)信息, 2007, 23(12-2): 36-37.
[3] Brad Barnhill. Barcode Image Generation Library[EB/OL]. http://www.codeproject.com/Articles/20823/Barcode-Image-Generation-Library, 2007.
[4] Bill Evjen, Scott Hanselman, Devin Rader. Professional ASP.NET 4 in C# and VB[M]. Hoboken: Wrox, 2010.
[5] Paul Yao, David Durant. Programming. NET Compact Framework 3. 5[M]. 2nd ed. Boston: Addison-Wesley Professional, 2009.