1. 程式人生 > >PDA開發從入門到精通

PDA開發從入門到精通

 倉促的開局 2016年初,三方物流撤出,帶走了全部的軟體技術,留下了一堆PDA。 新年上班第一個星期裡,我們要實現PDA收貨批量匯入ERP系統功能。 沒有準備時間,沒有接觸過PDA裝置,要在受限的WINCE上開發程式,滿足繁忙的物流業務,這些就是當時的場景。 還好,ERP系統聯調的收貨介面之前出至我手。多年的VC開發經驗加上對PDA背後業務的濃厚興趣,我想這是當時能夠走下去的內因。 萬無一失的防錯設計 庫管員每次收貨,PDA都會產生大量的文字檔案,這些檔案要匯入ERP中,完成它對資訊流變更的使命。 管理的PDA多,匯出到電腦上的檔案也多,這就可能會有異常發生,如果同一個或一批檔案多次匯入,就會使實物和資訊流產生差異。
時間戳,是把當前的時間轉換為一串對應的數字。  這串數字是1970 年1月1日到當前時間點的總秒數。 在每一次庫管員對物料掃描時,PDA程式都儲存了掃描時的時間戳。  時間是不會停止的,這些時間戳也是不會重複的。 ERP的批匯入程式匯入完成後會記錄這些時間戳,並在每一次匯入時會對比這些時間戳,一旦發現有相同的出現,就會停止處理。 庫管員會得到提示:檔案重複匯入! 設計的靈感來自周星馳的:根本就沒有什麼食神,或者人人都是食神。 沒有USB PDA程式初期交付使用時,我們遇到了一個問題,當庫管員收集完條碼資訊,從PDA匯出到電腦上時,PDA死活連線不上電腦。 要麼是USB線接觸不良,要麼是USB口接觸不良。現場的情況,庫管員要連線幾十次才有一次成功,我鬱悶了。
我們使用的三方留下的PDA型號是優博訊i6080,WINCE5.0, ROM+RAM一共128M, 最高支援.NET COMPACT FRAMEWORK 2.0元件。 硬體的情況逼做我們要去實現網路通訊,當時我不知道能否實現。 今天,再倒回去梳理時,我發現我們一步步的實現了WINCE的資料庫直連、FTP傳輸、HTTP連線、SOCKET傳輸等幾乎所有的網路技術。 試想如果當時的硬體條件良好,我可能不會這麼快去掌握PDA開發網路技術。 忘記了它們的存在 當PDA功能基本滿足了前端業務後,有半年的時間,因為庫管員再也沒有來找過我們,我們幾乎忘記了它的存在,直到胡總要求我們重新梳理前端業務時, 我們才發現,原來PDA在RDC和VMI倉庫一直在使用。我查了一下伺服器日誌,ASN收貨功能已經收集條碼資料10萬條。
開放的伺服器 OpenServer PDA簡單的特性註定了它需要一個強大的後端伺服器才能實現更多的功能。OpenServer 一個基於C#平臺開發的服務程式,隨著應用的深入,它會實現越來越多的功能。我為它封裝開源中國NO.1的網路引擎實現標準的SOCKET連線,封裝SAP官方 .Net connector元件連線SAP系統,使用微軟的LINQ語言處理資料邏輯、EF框架連通各種資料庫。可謂從腳尖武裝到了牙齒。 OpenServer 第一個比較正式的專案是用在MES系統上。 庫管員每一次空箱的資訊由PDA收集,實時傳遞給OpenServer,OpenServer鬆耦合的連線到MES資料庫,寫入資訊。 從2016年11月正式部署後,持續運行了3個月,收集資料9000條,伺服器沒有重啟過一次。 PDA直連SAP,實現實時收貨,是我一直想要去實現的功能,這個功能也是主流的WMS系統軟體具備的核心功能。終於在節後,我們放出了一個DEMO,PDA上點選收貨按鈕,SAP完成實時收貨。目前業務顧問正在嚴格的測試,相信在不久的將來,該功能會在新倉庫中投入使用。 OpenServer The End(2017.7 我離開了濰柴(重慶)汽車 2017年5月,我們正式上線了PDA直連SAP終級版本,實現在ERP中實時收貨,   通過PDA客戶端程式,OpenServer伺服器端程式,SAP中RFC介面程式 三端完整的開發, ERP採購訂單物流收貨業務中,我認為我們實現了物流和資訊流的高度融合: 1、減少之前PDA操作時間滯後環節,達到了實際物流現場和ERP中資料實時對應, ERP系統對物料收貨物流的管控已經沒有延遲。 2、減少了一半以上的人工操作,原來3個庫管員乾的事情,現在只要一個庫管員幹。 原來庫管員需要分類處理大量的檔案檔案匯入,現在不需要了。 3、大大提高了物流部門使用者對ERP系統收貨環節的使用者體驗。 在程式設計上,進一步用例項驗證了OpenServer伺服器設計的高穩定性:

2017.6月至8月,伺服器沒有重啟過一次,接受PDA客戶端600次以上登入,處理採購訂單和ASN收貨資料上萬條。

而因為資料走底層SOCKET,伺服器執行幾乎不需要硬體資源,任何PC機都能很好的執行,包括586!