OracleEBSForm開發小技巧匯總_第1頁
OracleEBSForm開發小技巧匯總_第2頁
OracleEBSForm開發小技巧匯總_第3頁
OracleEBSForm開發小技巧匯總_第4頁
OracleEBSForm開發小技巧匯總_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——OracleEBSForm開發小技巧匯總content

OracleEBSForm開發小技巧匯總2Form中Block的重新查詢9客戶化Form中實現行號功能12使用Custom.pll修改標準Form的LOV16實現主從關系Form中匯總行金額/數量21OracleEBS客戶化程序中格式化金額25Form中動態創立PopList28OracleEBS環境下查找數據源(Form篇)30解決EBS中混淆經營單位和庫存組織問題39多組織訪問控制(MOAC)43序號API46[FORM]一步步教你如何在form中使用pl/sql將數據文件上傳到客戶表中56

OracleEBSForm開發小技巧匯總

09月20,2023分類:OracleEBS二次開發:alther1986本文記錄了一些在Form開發過程中積累下來的技巧:1.Form中提交并發請求2.非數據庫字段查詢處理3.控制Form為只查詢4.控制Item的屬性5.Trigger的執行層次6.按鈕處理規律7.日歷相關

1,Form中提交并發請求

在提交請求之前,首先需要驗證塊,假使某些必填項沒有填的話當然不能提交請求。

?

[Copytoclipboard]ViewCodePLSQL

1APP_STANDARD.APP_VALIDATE(BLOCK_SCOPE);2IF(notFORM_SUCCESS)THEN

3Raiseform_trigger_failure;

4ENDIF;

5IF:SYSTEM.FORM_STATUS='CHANGED'THEN6DO_KEY('COMMIT_FORM');7ENDIF;

其次個IF語句判斷系統狀態,假使用戶更新了一行記錄,之后沒有保存提交請求,那么需要在提交之前進行保存,由于可能使用的請求中使用到了該item所對應的后臺字段,那么保存這一步就很重要了。調用請求的例子:

?

[Copytoclipboard]ViewCodePLSQL

l_request_id:=fnd_request.submit_request

('XXPO','XXPO_JIT_BATCHES_RPT_SECOND','','',FALSE,:SUBJOBS.SUB_JOB_BATCH,CHR(0)--CHR(0)表示參數終止NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,

1

2

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3

4

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,5

6

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,7

8

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,9

10

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,11

12

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,13

14

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,15

16

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);17

--假使請求提交出錯將會返回018

ifl_request_id0then19

ifNOTapp_form.quietcommitthen20

fnd_message.debug('concrequestsubmitedfailed');21

raiseFORM_TRIGGER_FAILURE;22

endif;23

fnd_message.set_name('FND','CONC-SUBMITTEDREQUEST');24

fnd_message.set_token('REQUEST_ID',to_char(l_request_id));fnd_message.show;

endif;

請求運行終止以后,可能還需要對Block進行重新查詢,這個由具體狀況而定。

并發請求中有一個Start_Time的參數,可以設置成何時提交該請求。具體請參考Userguide里面對fnd_request.submit_request的描述。

2,對于非數據庫字段的查詢

在Form中在查詢的記錄不希望某些記錄顯示出來,例如不需要供應商A被顯示出來,假設供應商A是數據庫項,可以使用set_block_property(’block_name’,

DEFAULT_WHERE,

‘VENDOR_NAME’||‘A’)

但是建議不要使用上述方法,因為Block的Defaultwhere一旦被設置了以后,并不是只有本次生效,而是一直生效,也就是當下一次使用Ctrl+F11來進行查詢的時候,實際上,查詢語句的where條件就一直加入了我們手動加進去的查詢語句。所以建議使用app_query.append來添加復雜的查詢語句。

我們的重點是對非數據字段的查詢,也就是如果供應商為非數據庫項,那么如果在查詢窗口中剛好對供應商有這個查詢條件,該如何去做?

由于供應商字段為非數據庫項,那么只能在post-query中去判斷,例如在post-query中寫道:

IfVendor_name=‘A’then

Raiseform_trigger_failure;Endif;

那么供應商A將不會被顯示出來。由于Post-query是在查詢出每條記錄時都執行的,所以raiseform_trigger_failure并不影響只是阻止了本觸發器,但是并不是阻止了所有的。

最后要說明的一點是建議還是不要采用這樣的方式,因為這是效率最低的判斷,如果可以使用數據庫項進行查詢,就盡量不要使用這個方法。

3,控制Form只查詢

在定義Function的時候,如果在參數中加入QUERY_ONLY=YES,那么Form就只能查詢,在Form中調用

FND_FUNCTION.EXECUTE(FUNCTION_NAME=>‘XXPOFJCT’,

OTHER_PARAMS=>‘QUERY_ONLY=YES’);

那么新加出來的form就是只查詢狀態。這個QUERY_ONLY參數是系統自帶的一個參數,但是實際上,它也是在Form的查詢中,進行了對QUERY_ONLY參數的判斷。所以需要特別注意的就是,當使用了這個參數后,客戶化的Form在控制塊查詢時,是需要進行QUERY_ONLY參數判斷的。

?

[Copytoclipboard]ViewCodePLSQL

ifname_in('parameter.query_only')'Y'and:block.item='TTTT'then

12set_block_property('block',update_allowed,property_true);3else4

5set_block_property('block',update_allowed,property_false);

endif;

對于上例中對塊進行控制的語句,假使沒有參與對QUERY_ONLY的判斷,那么對具有只查詢功能的Function來說,QUERY_ONLY這個就等于沒有作用了,由于在這里,其他條件可能使得這個Form也是可以進行修改的。

4,控制Item的屬性

凡是需要改變item屬性,都使用app_item_property.set_property()代替set_item_property。

假設通過某個item的值來決定另外一個item的屬性,例如名為status的item值決定了名為quantity的item是否可以更改,首先,第一個觸發器是POST-QUERY,當查詢出記錄出,根據status的值來決定quantity,當對某條記錄進行更改的時候,需要對該記錄進行重新判斷(假使修改的status就可能需要做出改變),所以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論