熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows優化 >> 正文

XML組件技術讓客戶訂單系統流程化

2013-11-12 16:47:01  來源: Windows優化 

  通過使用XML程序ExcelAccess以及ASP(Active Server Pages)我們能幫助企業客戶訂單登陸流程化節省客戶重復輸入數據的時間並避免訂單登陸過程中發生錯誤真正吸引客戶的是能夠減少重復性工作節省時間和金錢的項目如果能滿足上述三點要求就可以進一步拉近客戶的關系
  
  最近我受聘對一個現有的訂單登陸系統進行升級下面我將介紹客戶所面臨的問題以及解決這些問題的方法
  
  背景
  客戶使用第三方系統完成訂單登陸庫存維護和貨品計價傳統的工作流程是這樣的
  
   客戶向銷售員申報訂單
   銷售員將訂單輸入系統產生訂購單
   准備好發貨的時候會產生紀錄並將訂購貨品的數量從庫存目錄中扣除
   給客戶產生一個發貨單
  
  這個系統還包含了一個電子商務組件為客戶提供網上交易他們能通過公司的網站進行訂購在這種情況下銷售員不需要將訂單輸入系統訂單將在網上商店裡產生並在當天結束營業時上傳到系統
  
  我的客戶還擁有兩家出版物供應商他們也有自己的訂單登陸系統訂單最初要登陸到其他系統因此客戶將收到兩方的訂單通知
  
  客戶通過Web浏覽器登陸到第一家供應商的系統申報訂購的項目第二家供應商的訂單登陸系統則將向客戶發送電子郵件在這兩種情況下客戶公司的售貨員都必須重復地向訂單登陸系統鍵入訂單信息初步估計每個售貨員每周有超過個小時在重復鍵入這些訂單
  
  而我的任務是將訂單登陸流程自動化從而減少重復鍵入數據的時間並避免任何訂單登陸失誤
  
  解決方案
  將訂單登陸到系統有兩種方法第一種是打開桌面客戶端並鍵入訂單第二種則是在Web站點上登陸訂單Web站點不直接連接到訂單登陸系統
  
  每天鍵入Web站點的訂單被寫成一個XML文件它隨後又被拷貝到應用服務器上接著被系統導入並產生訂單這是我的突破口我將從供應商的系統中獲取數據產生一個和網站上相同schema的XML文件接著將其加載到應用服務器上
  
  我將我的想法傳遞給廠商經核實這種方法是有效的在取得同意之後我獲得了我需要的XML schema我的解決方案的體系結構是簡單易行的
  
  我將通過Microsoft Excel提供的功能打開第一家供應商網站的報告通過Excel Object Model 提取訂單數據並將數據傳遞給產生XML文件的組件
  
  針對第二家供應商的方法相當簡單我將在Microsoft Outlook中獲取其電子郵件通過Outlook Object Model提取訂單數據並將數據傳遞給產生XML文件的組件
  
  這給了我第三種選擇銷售員經可以在家中通過虛擬專用網(VPN)訪問我的客戶的系統或許是從應用服務器向桌面客戶端傳遞的數據量過於龐大原因訂單登陸程序並不能通過VPN連接運行銷售員需要做的只是登陸訂單
  
  我開發出一套簡單而高效的解決方案在公司內部網創建一個簡單的表格可以在這裡登陸訂單數據Web服務器(運行ASP的Microsoft IIS)將從表格提取數據並傳遞到XML生成組件(VPN和內部網被認為是足夠安全的以至於打開訂單登陸程序不需要另外登陸
  
  現在我已經擁有三個相同的XML組件的前端它們能將數據上載到訂單登陸系統計劃的開始是建立XML組件因為它是公共元素能被Excel接口Outlook接口以及ASP表格處理
  
  XML組件
  XML生成器將包含一個ORDER對象來描述訂單這個對象將負責從前端接收訂單數據並輸入XML文件出於簡單考慮文件路徑被復雜地編碼但非常容易被配置文件讀取ORDER對象將包含描繪上述每個元素的屬性
  
  它還將封裝一個LINEITEM的集合描繪項目的細節LINEITEM對象將包含描繪XML schema中相應數據的屬性ORDER對象將接受訂單數據創建所需的LINEITEM對象通過訂單數據創建XML文件結構並將此結構寫入一個XML文件
  
  文件將根據訂單編號命名這個編號是唯一的它將由前端生成擁有獨立的前綴和時間標記
  
  XML組件編程
  我在Visual Basic 編寫了這個組件創建了一個ActiveX DLL工程並添加ORDER和LINEITEM對象的類我首先處理ORDER類為每個XML元素添加屬性
  
  XML schema中的第一個元素是ORDER ordernum=abcde這個ORDER 類將包含一個叫做ordernum的屬性
  
  在VB中定義屬性需要個步驟首先需要創建一個私有變量來存儲屬性值接著將ordernum屬性定義為長度為個字符的字符串
  Private strOrderNum as String
  
  這個屬性對於所有Let屬性和Get屬性子程序類的用戶都是可訪問的這些子程序將私有變量約束為公共屬性並同時實現必須的有效性檢查在這個情況下保證訂單號碼是個字符
  
  這個類的用戶現在能通過下面的程序行來獲得或設置ordernum屬性
  Dim objOrder as Order
  Set objOrder = new Order
  objOrderOrderNum = x
  MsgBox objOrderOrderNum
  
  ORDER類也包含下面XML元素的屬性
  
  clientNum: 對應CLIENT_NUM元素
  orderDate: 對應DATE元素
  clientCostCenter: 對應CLIENT_COST_CENTER元素
  clientPurchaseOrder: 對應CLIENT_PURCHASE_ORDER元素
  attn: 對應 ATTN 元素
  shipTrackNo: 對應SHIPPING元素
  shipCompany: 對應SHIPPING元素company屬性
  shipAddrLine: 對應SHIPPING_LOC 元素中的ADDR_LINE_元素
  shipAddrLine: 對應SHIPPING_LOC 元素中的ADDR_LINE_元素
  shipAddrCity: 對應SHIPPING_LOC 元素中的ADDR_CITY元素
  shipAddrState: 對應SHIPPING_LOC 元素中的ADDR_STATE元素
  shipAddrZipCode: 對應SHIPPING_LOC 元素中的ADDR_ZIP元素
  comments: 對應COMMENTS元素
  LINE_ITEMS屬性的實現略微有些不同ORDER類將包含一個lineItems屬性它搜集LINEITEMS對象
  
  首先存儲集合的私有變量聲明如下
  Private colLineItems as Collection
  
  接著將創建一個添加項目的子程序它能將LINEITEM添加到colLineItems集合中去LINEITEM類本身和ORDER類的實現方法相同包含對應以下XML元素的屬性
  
  itemCatalog: 對應 ITEM 元素catalog屬性
  itemID: 對應ITEM元素
  description: 對應DESCRIPTION元素
  unitPrice: 對應UNIT_PRICE元素
  quantity: 對應QUANTITY元素
  接下來的一步
  我已經定義了為完成描述訂單的XML文件所需的所有組件的屬性今後我將會把重點放到建立Excel 接口通過Excel Object Model 提取第一家供應商訂單數據並將數據傳遞給XML文件
From:http://tw.wingwit.com/Article/os/youhua/201311/10875.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.