技術交流

Oracle EBS 客製必備技能之 FNDLOAD

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

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

FNDLOAD 的工作原理

lct

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

FNDLOAD 可以處理哪些資料

Oracle EBS 中的資料可以分為三類

  • 交易資料,如採購單、日記帳、工單等資料。
  • 基本設定資料:如組織、客戶、供應商、料號類別等。
  • 物件程式庫數據:如併發請求、彈性欄位元、表單、值集等。

使用 FNDLOAD 主要處理第3類資料,大致如下:

  • 併發請求,可執行程式。
  • 請求組,請求集。
  • 設定檔選項。
  • 鍵彈性域和描述性彈性域。
  • 菜單。
  • 表單,表單函數。
  • 附件。
  • 消息。
  • 值集和值。
  • Lookups。
  • 職責。
  • 用戶。
  • 印表機定義。

操作模式

  • 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 檔。

  • 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 使用步驟

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

舉例

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 檔查看命令是否執行成功。

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 功能表下的所有註冊資料成功遷移,包含此菜單下表單和表單函數的註冊資訊。

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 彈性欄位元定義完全移植到另一應用環境中。

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

Tags:OracleERPEBS程式客製
閱讀更多