EBS開發常見問題及學習方向總結

一、例外處理問題
有很多人喜歡在處理exception時置爲'null',應該說這是一個很不好的習慣,如果沒有定義特定的exception,最起碼應該把數據庫的錯誤信息完整的報出來。
        錯誤的寫法:
               EXCEPTION
               WHEN OTHERS THEN
               NULL;
               END;
        正確的寫法:
             EXCEPTION
             WHEN OTHERS THEN
             FND_FILE.PUT_LINE(FND_FILE.OUTPUT, SQLCODE);
             FND_FILE.PUT_LINE(FND_FILE.OUTPUT, SQLERRM);
             END;
 
二、併發請求的OUTPUT和LOG不分
       輸出到請求的輸出:FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'XXXXXXX');
       輸出到請求的日誌:FND_FILE.PUT_LINE(FND_FILE.LOG, 'XXXXXX');
       一般情況是把報表的內容輸出到OUTPUT,把報表中間的debug邏輯輸出到log中。
三、在EBS環境之外運行EBS程序的初始化問題
我們經常會遇到在pl/sql中運行某個視圖,不能顯示出數據,但是在界面上確有數據,這主要是因爲視圖是OU屏蔽的,因此需要你在pl/sql中初始化你的身份,初始化的程序如下,這樣你就可以在任何pl/sql環境中運行EBS的視圖了,例如PO_HEADERS,PO_LINES等.
        BEGIN
        FND_GLOBAL.APPS_INITIALIZE(USER_ID => ,RESP_ID => ,RESP_APPL_ID => );
        END;
 
四、消息的使用
我經常看到有的喜歡在FORM中直接使用FND_MESSAGE.DEBUG('xxxxx');來顯示錯誤或提示信息,實際上這是非常不正確的做法。
顧名思及DEBUG是用來調試的,並不是用來進行人機交互的友好的方式,也不符合Oracle的標準用法。
Oracle的標準用法是使用FND_MESSAGE.SET_NAME( APPL_SHORT_NAME,MESSAGE_NAME) ;
一般情況下在FORM中顯示出錯信息使用以下代碼:
        FND_MESSAGE.SET_NAME( APPL_SHORT_NAME,MESSAGE_NAME) ;
        FND_MESSAGE.ERROR ;
       在PACKAGE中顯示出錯信息一般使用以下代碼:
        FND_MESSAGE.SET_NAME( APPL_SHORT_NAME,MESSAGE_NAME) ;
        APP_EXCEPTION.RAISE_EXCEPTION ;
        然後在EBS的應用開發者下定義中文和英文消息,然後提交請求"生成信息"來生成消息,使用這種方式可以適用於多語言和修改人機界面的提示信息,而不用去修改源程序。
        五、EBS中客戶化表結構的設計原則
1.必須包括一個主鍵,並建立相應的序列;
2.建立5個WHO字段,也就是:
              CREATED_BY NUMBER
              CREATION_DATE DATE
              LAST_UPDATED_BY NUMBER
              LAST_UPDATE_DATE DATE
              LAST_UPDATE_LOGIN NUMBER
在FORM中使用屬性類:CREATION_OR_LAST_UPDATE_DATE,WHO字段並不會自動地被賦值,必須自己在FORM中編寫代碼來完成這項工作。
        EBS中提供了一個函數FND_STANDARD.SET_WHO,大家只要在FORM的BLOCK級觸發器PRE-INSERT/PRE-UPDATE中進行調用即可。
3.對於業務數據表,要考慮建立15個彈性域字段;
4.如果對於需要併發請求處理過的數據表,則需要增加跟蹤請求的4個字段;
             REQUEST_ID NUMBER
             PROGRAM_APPLICATION_ID NUMBER
             PROGRAM_ID NUMBER
             PROGRAM_UPDATE_DATE DATE
        5.要考慮這個表是否區分OU和庫存組織;
 
六、在FORM開發中不管是FORM級還是BLOCK級或者ITEM級的TRIGGER,不要把代碼直接寫到TRIGGER中,要使用PROGRAM UNIT來創建相應的TRIGGER。
舉例如下:
      FORM級和BLOCK級可以按照下面格式在PROGRAM UNIT中創建PACKAGE:
      PACKAGE BODY FORM_NAME/BLOCK_NAME IS
      PROCEDURE EVENT_HANDLER( EVENT IN VARCHAR2)
      IS
      BEGIN
      IF EVENT = 'WHEN-NEW-FORM-INSTANCE' THEN
      XXXXXXXX;
      ELSIF EVENT = 'PRE-FORM' THEN
      XXXXXXXX;
      ELSE
      APP_EXCEPTION.INVALID_ARGUMENT('EVENT_HANDLER', 'EVENT', EVENT);
      END IF;
      END EVENT_HANDLER;
      END FORM_NAME/BLOCK_NAME;
ITEM級的可以按照下面的格式:
      PACKAGE BODY BLOCK_NAME IS
      PROCEDURE ITEM_NAME( EVENT IN VARCHAR2)
      IS
      BEGIN
      IF EVENT = 'WHEN-NEW-ITEM-INSTANCE' THEN
      XXXXXXXX;
      ELSE
      APP_EXCEPTION.INVALID_ARGUMENT('ITEM_NAME', 'EVENT', EVENT);
      END IF;
      END ITEM_NAME;
      END BLOCK_NAME;
 
七、在EBS如果要使用彈性域或預警等,則必須在EBS註冊TABLE及COLUMN。
    
此註冊功能是通過調用AD_DD函數包來實現的:
          AD_DD.REGISTER_TABLE 註冊TABLE
          AD_DD.REGISTER_COLUMN 註冊COLUMN
          AD_DD.DELETE_TABLE 取消註冊TABLE
          AD_DD.DELETE_COLUMN 取消註冊COLUMN
 
下面是兩條路線所需掌握的專業技能與參考資料
1.ERP開發人員
(1)關於Oracle ERP開發的話的一般要求掌握SOL、PL/SQL、 JDeveloper、workflow builder,report,form,discover等等!以及Oracle、DB2等相關數據庫知識;(SAP的開發採用ABAP語言)
        (2)ERP企業級別的開發,最好能對企業的業務流程非常熟悉,這樣開發纔會得心應手!
        (3)Oracle ERP二次開發書籍集錦
 
PL/SQL部分
ü        (中文) oracle sql function.ppt
ü        (中文) PLSQL程序設計.pdf
ü        (中文) oracle_sql性能優化.doc
ü        (中文) SQL Performance Tuning.doc
Form. 部分
ü        (中文)Form_Builder_Basic_Development.doc
ü        (中文) Form. Builder Develop.doc
ü        (英文) Oracle Applications Developer’’s Guide.pdf
ü        (中文) PPT Form開發入門教程.ppt
ü        (中文) FlexField.ppt
ü        (中文) open_form,call_form,new_form的詳細講解及區別
ü        (中文) Oracle Applications 11i 二次開發經驗總結.PDF
ü        (英文) extend_apps_forms.pdf
ü        (中文) form. builder內置函數說明.pdf
ü        (英文) Trigger Execution Sequence in Oracle Forms
Report 部分
ü        (中文) CrystalReport.chm
ü        (英文) Crystal Enterprise.pdf
ü        (中文) Iss Report Builder Basic Development.doc
ü        (英文) ReportBuilder_ReferenceManual.pdf
ü        (英文) Report Training Material(PPT)
Workflow 部分
ü        (英文) workflow_student_guide.pdf
ü        (中文) OracleERPworkflow.ppt
ü        (英文) Oracle Workflow and Approval Hierarchies.ppt
ü        (英文) Oracle WorkFlow Developer’’s Guide.pdf
ü        (中文) 工作流使用說明.doc
2.ERP應用實施與諮詢人員
(1)一般最好能夠掌握SOL及簡單PL/SQL語句。
(2)必須對企業的業務流程非常熟悉!需求分析、業務流程優化、方案設計、系統測試和上線等環節中都貫穿着我們對流程的深刻理解!
(3)對於Oracle ERP建議先看總結性的精品培訓課件,而後可以參看中文聯機幫助及user gudie、student guide等資料!注意多結合流程來進行。
發佈了6 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章