ARES資通電子報

技術交流

Oracle EBS客製必備技能之FNDLOAD

文 - Tina Xu

最近在做的一個案子,客戶是一家國際貿易公司,業務流程極其複雜, Oracle ERP 遠不能滿足其需求,我們進行了大量的客製。為充分驗證系統流程和資料的準確性,客戶的單元測試進行了六次,從 UAT1 至 UAT6 ,每切換一個環境,都需要進行大量的程式安裝和設定工作,使完成流程所需時間又更加緊迫。這時, FNDLOAD 就充分體現了它的價值,能節省大量寶貴時間,提高工作效率,在此把它介紹給大家,讓所有從事 Oracle EBS 客製的人員都不再為反覆的程式安裝和設定而苦惱。

FNDLOAD 全稱為 “ Solution The Generic Loader” ,是 Oracle 提供的一個 Oracle EBS 資料移植工具,通過下載相關定義到一個文字檔做中轉,再安裝到另一個應用環境中,從而保持兩個環境資料庫中資料的同步。通過該檔,可以方便地進行版本控制,安裝、移植和克隆。其實就是 Oracle 為 Oracle EBS 而寫的一個併發程式,此程式可以把 Oracle EBS 中資料在資料庫和 TXT 檔之間互相移動,也就是把 db 裡面的資料讀出來已固定格式寫到檔中,再把檔中的內容讀出來寫到 db 中的過程。

下面從幾方面對 FNDLOAD 進行講解:
FNDLOAD 的工作原理
FNDLOAD 主要處理哪些資料
FNDLOAD 的操作模式
FNDLOAD 使用步驟.

舉例說明:
一.FNDLOAD 的工作原理:


上圖是通過一個尾碼為 lct 的設定檔來工作的。此設定檔放在伺服器的 fnd/patch/115/import 目錄下,為 Oracle所提供,只能引用而不可手動修改,且每種資料類型有各自對應的 lct 設定檔。

二. FNDLOAD 可以處理哪些資料:
Oracle EBS 中的資料可以分為三類:
1) 交易資料,如採購單、日記帳、工單等資料。
2) 基本設定資料:如組織、客戶、供應商、料號類別等。
3) 物件程式庫數據:如併發請求、彈性欄位元、表單、值集等。

使用 FNDLOAD 主要處理第3類資料,大體如下:
1.併發請求,可執行程式。
2.請求組,請求集。
3.設定檔選項。
4.鍵彈性域和描述性彈性域。
5.菜單。
6.表單,表單函數。
7.附件。
8.消息。
9.值集和值。
10.Lookups。
11.職責。
12.用戶。
13.印表機定義等。

三.FNDLOAD的操作模式:
FNDLOAD 分為兩種操作模式,分別為 download 和 upload:

1.Downdload 就是將應用環境中的設定資訊 download 到 ldt 檔中,例:
FNDLOAD apps/pwd 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct/tmp/myfile.ldt PROGRAM APPLICATION_SHORT_NAME= =<application_short_name>CONCURRENT_PROGRAM_NAME= <concurrent_program_short_name> >> /tmp/ myfile.out 2>/tmp/ myfile.log

此命令表示要將某一個併發程式的設定資訊 download 下來放到 ldt 檔 myfile 中,執行完畢我們可以到 tmp 目錄下找到此 ldt 檔。

2.Upload 就是將 ldt 檔中的資訊移植至應用環境中,例:
FNDLOAD apps/pwd O Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct /tmp/myfile.ldt-CUSTOM_MODE=FORCE >> /tmp/myfile.out 2>/tmp/myfile.log
此命令運行結束,會把 myfile.ldt 檔中記錄的資訊寫入 db,我們可以在 EBS 中查到對應的程式定義資訊,包含 value set 的定義和 value set 的值。

CUSTOM_MODE=FORCE 為參數,當加入此參數時不管以前此程式是否有定義過,本次執行將強迫重新定義成 ldt 檔中的格式。當不加此參數時,若此程式以前有定義過,這次 upload 執行不會做任何動作,為了保持兩個環境資料的一資,建議把此參數加上。

四. FNDLOAD 使用步驟.
1.通過 telnet 或是 PuTTY 工具登陸 application1。
2.切換到 tmp 環境中執行 download 命令。
3.將生成的 ldt 檔從 server 上 down 到本機。
4.此步驟可以跳過。打開 ldt 檢查內容是否完整,若為併發程式,檔裡面有標誌 value set 的內容就說明文件內容完整了,即檔中會有 BEGIN VALUE_SET , END VALUE_SET 等內容。
5.將本機上的 ldt 檔放到 application2 對應的 tmp 目錄下。
6.通過 telnet 或是 PuTTY 工具登陸 application2,並切換到 tmp 目錄下。
7.執行 upload 命令。
8.登錄 application2 ,查看當前資料是否已成功遷移。

五.舉例
1.Download 與 upload profile 定義:
FNDLOAD apps/pwd O Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct /tmp/TEST1.ldt PROFILE PROFILE_NAME="TEST%" >> /tmp/TEST1.out 2>/tmp/TEST1.log
FNDLOAD apps/pwd O Y UPLOAD $FND_TOP/patch/115/import/afscprof.lct /tmp/ TEST1.ldt >> /tmp/ TEST1.out 2>/tmp/ TEST1.log
執行完畢將以 “TEST” 開頭的所有 profile 定義遷移至另一個 EBS 環境,可以通過 TEST1.log 檔查看命令是否執行成功。

2.Download 與 upload 菜單 XXXX_CUST
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct /tmp/XXXX_CUST.ldt MENU MENU_NAME='XXXX_CUST' >> /tmp/ XXXX_CUST.out 2>/tmp/
XXXX_CUST.log
FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct /tmp/XXXX_CUST.ldt >> /tmp/ XXXX_CUST.out 2>/tmp/ XXXX_CUST.log
執行完畢,將 XXXX_CUST 功能表下的所有註冊資料成功遷移,包含此菜單下表單和表單函數的註冊資訊。

3.Download 與 upload 彈性欄位元的定義:
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct flex_test.ldt DESC_FLEX P_LEVEL=?COL_ALL:REF_ALL:CTX_ONE:SEG_ALL?
APPLICATION_SHORT_NAME="AR" DESCRIPTIVE_FLEXFIELD_NAME="XXXX " P_CONTEXT_CODE="xxxx_test "
FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct flex_test.ldt
執行完畢將 AR 下標題為 “XXXX” 的 “xxxx_test” 彈性欄位元定義完全移植到另一應用環境中。

最常用的幾種用法我都已舉例說明,您只要對命令參數稍加修改就可以使用,簡單實用,它的魅力您發現了嗎?