Oracle ERP數據轉換論

Oracle ERP 方法體系中屬實施管理範疇的是AIM(Application Implementation Method),從下圖AIM流程中我們可以看到系統時間軸上共分爲六個階段: 
需求定義階段(Definition) 
業務分析階段(Operations Analysis) 
方案設計階段(Solution Design) 
建立系統階段(Build) 
系統切換階段(Transition) 
正式運行階段(Production)


實施信息系統,計劃爲先,而計劃制定,數據又得先行,全面、準確、及時的數據是系統正常運行的前提,高質量數據是推動上線的巨大動力。本文所要探討的數據轉換(Data Conversion)在時間軸上橫跨了需求定義、方案設計、建立系統及系統切換四階段。在傳統的AIM中,需求定義階段中的數據轉換主要工作是定義數據轉換需求及依據需求制定方案;方案設計階段的數據轉換主要事務是定製轉換標準,準備環境;建立系統階段的數據轉換工作主要是設計和測試導入的程序及驗證腳本,爲接下來的導入做好準備;而系統切換階段的數據轉換主要工作是對導入程序、導入工具在正式環境中的安裝及最終導入收集的數據,及最後的數據驗證。

但方法論更多的是從理論的角度去考慮整體框架,各階段各流程都是“可選”步驟,怎樣去做,如何做好,上面沒有提到。而數據收集工作具有要求高,時間緊,難度大等特點,從定義開始,就應該按一定的緊急、先後順序開始收集。筆者在這總結一下自己的經驗,供同仁參考。由於水平有限,錯漏之處在所難免,歡迎商討及指正。

 

 


一 數據

首先我們來看數據。 通常企業在實施ERP時的數據包含三部分內容,一部分我們稱之爲基礎數據,基數數據是系統設置過程中需要用到的數據,例如,會計科目、稅率、庫存組織、子庫存、貨位等;第二部分我們稱之爲靜態數據,是系統上線後實際操作中需要用到的數據,例如,客戶/供應商、員工、銀行賬戶、物料信息、工藝路線等,基礎數據與靜態數據我們也可以統一稱爲靜態數據;另一部分我們稱之爲動態數據,動態數據是系統初始化時需要用到的時點數據,例如,期初的賬戶餘額、供應商餘額、客戶餘額、庫存現有量,未結銷售/採購訂單,未結工單等。在制定ERP上線方案時需要綜合考慮這三方面的數據,按一定的緊急、先後順序進行收集。

基礎數據通常格式固定,對數據質量要求比較高,時效快,數據收集工作有可能需要提前到需求定義階段就着手準備。基礎數據完成後,我們可以通過系統自帶的診斷工具進行測試系統設置的完整性。

對於靜態數據,通常也是相對比較簡單,由於靜態數據在錄入系統後,基本上不會去改變,所以只要保證這些數據是完整並且準確的就足夠了。而事實上,靜態數據往往存在於企業的現時業務中,一方面收集比較方便,另一方面這些數據在整個企業內部已具有通用性,如果對原有的物料編碼進行改進或重編,必須考慮到唯一性、統一性、實用性及易用性。

動態數據按時點來分,分爲期初數據和日常數據,最爲熟悉的期初數據就是庫存期初值和財務賬戶期初餘額,有條件的企業應該對期初數據進行盤點。而日常數據包括企業未結銷售訂單、未結采購訂單、未結工單。要想準備好這部分數據,企業應該在上線前界定蒐集到哪一天的未結單據, 這些單據只需要統計其未完成數量,也就是說訂單總數減去已交貨數量,工單總數減去已完工入庫數量,而且可以按照一定的條件來彙總,比如一個供應商可能存在多個未結采購訂單,可以按供應商來彙總統計成一個未結采購訂單表來導入系統。而這以後的單據將作爲系統的日常操作,在上線過程中隨時根據需要錄入系統。未結單據應當在上線前儘可能的結清,以減少手工和系統切換的難度,同時也降低日後對賬的工作量。

二 數據收集過程

在數據收集過程中,應當遵循一定的先後順序、一定的收集方法來進行。有條件的企業應該做幾輪數據收集,並分析,儘可能避免在導入正式系統後進行數據的修改。

1) 瞭解及確認企業所屬行業的特點和數據量

不同的行業對數據的要求不盡相同,例如醫療系統對供應商的考覈制度與普通企業的考覈就是不同,同樣數據量的大小也決定着你會使用什麼方法處理導入數據,例如分銷渠道較長的企業的客戶可能只管理到代理商;而短渠道企業可能會管理到批發商、零售商。較少的數據我們可以使用手工的方法導入,但數據量一大了,我們得采取程序導入來協助我們。

2) 討論及確認數據收集的項目及來源、詳細計劃

收集的項目通常結合系統對數據的要求及企業行業特殊性來確定哪些數據需要收集,同樣要決定數據來源於何處,是從舊信息系統移植還是從檔案數據獲取,詳細計劃包括評估數據收集工作量、提前期、責任人等。

3) 整理數據收集方案和數據收集表

收集方案是企業對數據的要求及對這些需求做出的收集策略,是數據收集過程中的指導方針;根據數據收集方案合理設計數據收集表格,應對數據表格進行詳細的數據收集說明。

4) 客戶收集數據

數據從開始收集到結束往往會佔用比較多的時間及資源,爲了保證數據的準確性,我們除了實時解答任何疑問外,通常要對客戶收集過程分階段取樣分析,從一開始就監控數據朝着我們目的方向邁進。

5) 對於導入系統的數據進行格式的整理

根據完成的數據收集表,映射系統需求進行格式的變換及調整。以便能夠按照不同的方式導入或者輸入系統。

6) 確認數據

多方對輸入數據的確認。

三 數據導入方法

按着數據方案,確定了收集職責及收集期限,最後收集數據、整理(驗證)提交,在各方確認數據後,那就要開始着手導入數據。Oracle 系統從數據庫、應用兩個層面提供多種方案給您選擇數據導入的方式。下面以資產數據爲例舉例說明。

固定資產數據有兩種導入方法,一種是通過成批增加接口,另一種是手工在系統錄入。

1) 手工錄入數據

如果選擇手工錄入系統,你除了全手工的通過應用界面一條條錄入外,你還可以選用一些工具,諸如dataload、loadrunner 協助你快速完成導入的工作。

你選擇手工導入數據的好處是你可以直觀的輸入數據,可以在輸入的同時檢查錯誤,也很方便的修改一些默認數據,例如根據資產類別自動彈出的折舊方法及剩餘使用壽命(這些在通過接口表的方法中,如果導入的是舊資產,也必需在界面上修改)。當然手工錄入數據只建議數據量相對較小的數據項目上進行,例如稅率數據,如果數據量在千級別以上,還是建議使用通過成批增加接口導入數據。

2) 成批增加接口導入

Oracle 一個很重要的功能是在每一個模塊中都預備了一個或者數個接口表,以方便模塊與模塊之間、系統與系統之前進行數據的移植操作。例如,資產的一個很重要的接口表是“成批增加”(FA_MASS_ADDITIONS);同樣Oracle 提供了很多方法導入數據到接口表中。SQL*Loader就是其中數據庫層次的一個軟件,其外還有ADI、API:

a) ADI

應用桌面集成 (ADI) 是一個第三方工具,可用於於實際的帳務處理及報表輸出。但我們可以使用他來導入一些財務數據。例如日記帳、資產明細及會計科目,通常我們會先創建一個基於EXCEL的模板,如下圖,然後按這些模板格式收集數據,然後直接聯接系統一步完成資產的接口及添加動作。ADI簡單易用,安全性高,有很好的數據驗證功能。 ADI導入功能通常僅用於財務模塊中的總帳及資產模塊。

b) SQL*Loader

SQL*Loader 是個直接把外部數據文件插入數據庫表的工具,速度非常快,僅需要少量的編程就可以進行數據的導入,他包含數據文件、控制文件及命令語法三部分內容。

命令舉例:

sqlldr userid=internal/oracle control=test.ctl

splldr 是命令提示符,userid後面需要輸入數據庫存取用戶名及密碼,control 是你的控制文件名,詳細參數信息請查閱相關文檔。

數據文件舉例:

2003-09-23 | 1 | 04490896 | 347.76 | -
2003-09-28 | 2 | 10256837 | 349.40 | -
2003-09-12 | 3 | 09956875 | 532.30 | -
2003-09-26 | 4 | 10256871 | 581.30 | -

數據僅需要簡單的通過特定的分隔符(|)告訴系統哪些是數據。

Ctl控制文件:

LOAD DATAINFILE '/prod/prodappl/fa/11.5.0/bin/數據文件名.txt'INTO TABLE FA. FA_MASS_ADDITIONSFIELDS TERMINATED BY "|"TRAILING NULLCOLS(mass_addition_id RECNUM,Asset_number NULLIF rec_id_no =BLANKS ,Tag_number NULLIF column1 =BLANKS,Description NULLIF column2 =BLANKS,Asset_category_id NULLIF column3 =BLANKS,……Asset_id NULLIF columnX =BLANKS)


控制文件包括了數據文件路徑和文件名,還定義了導入的表名,分隔符及數據文件各列如何正確導入系統表的各段。SQL*Loader 通常用於有臨時表的數據導入工作,對數據的準確性需要其他手段進一步的校驗。

c) API

Oracel還提供了部分接口程序(Application Programming Interface ,API)。API允許你通過PL/SQL直接導入數據,而對用戶透明化接口表。在新版本的資產系統中,Oracel 提供了標準的Additions API 允許用戶直接調用FA_ADDITION_PUB.DO_ADDITION產生資產數據。有興趣可以上metalink查找文檔:Note:206473.1 進行研究。

以上幾種方法,由上往下,技術要求越高,由下往上,越容易操作。但不代表一定要選用這種或者說選擇簡易操作的,顯然要ORACLE對所有的數據表去做API接口是不可能的。應根據數據的整體情況進行選擇合適的方法進行處理。

四 數據驗證

即使我們在數據導入前經過仔細覈對,並在導入測試中進行嚴格設計,但仍舊不能夠保證所導入的數據是完全正確的,這就要求我們對導入數據進行驗證。常用的輸入數據複覈校驗方法有打印輸出覈對法、屏幕覈對法和二次輸入覈對法等。
在實施處理中,利用打印輸出進行數據驗證是一種常用方法,通過系統“導出”功能,把導入到系統的數據,打印成紙質文檔,然後分發給相關人員覈對,並可做爲檔案永久保存。

屏幕覈對法主要是對於數量量小,數據存儲相對分散的數據進行對累加合計數,覈對餘額,覈對借、貸方的金額,覈對憑證和帳簿等來發現錯誤。

二次輸入法是採用相應的軟件進行測試,錄入過程分三個步驟:一次錄入,兩次錄入,每次錄入數據後保存退出;最後就是對碰,目的就是檢測前兩次錄入的數據是否一致,如果一致,就通過;如果不一致,會提示出錯的地方,工作看上去是繁複了,卻可以省略了人工檢查這一步,這通常需要特殊的條件,例如臨時表、嚴格的程序邏輯。
選用什麼方法驗證也要因數據而異,但只要做到能夠覈對數據準確無誤,能夠讓你放心的數據導入確認報告中放心簽下您的名字,那就是可以的了。

發佈了46 篇原創文章 · 獲贊 10 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章