1.report Builder 獲取當前request id不能直接用 fnd_global.conc_request_id 或者 fnd_profile.value('USER_ID');
必須定義參數 P_CONC_REQUEST_ID,然後像如下引用,即獲取當前request id;
必須定義參數如P_1,通過:P_1 := fnd_profile.value('USER_ID'); (通過變量賦值,才能获得 fnd_profile.value(’XXX‘)的值)
如:
function AfterReport return boolean is
begin
:P_1:=0;
IF :P_CHOOSE_MOLD='VIS' THEN
UPDATEfnd_conc_pp_actions
SET ARGUMENT2 = 'WST_QC_INSPECTION_VIS'
WHERE concurrent_request_id = :P_CONC_REQUEST_ID--fnd_global.conc_request_id
AND action_type = 6;
:P_1:=1;
END IF;
IF :P_CHOOSE_MOLD='B' THEN
UPDATE fnd_conc_pp_actions
SET ARGUMENT2 = 'WST_QC_INSPECTION_B'
WHERE concurrent_request_id = :P_CONC_REQUEST_ID--fnd_global.conc_request_id
AND action_type = 6;
:P_1:=2;
END IF;
IF :P_CHOOSE_MOLD='RS' THEN
UPDATE fnd_conc_pp_actions
SET ARGUMENT2 = 'WST_QC_INSPECTION_RS'
WHERE concurrent_request_id =:P_CONC_REQUEST_ID--fnd_global.conc_request_id
AND action_type = 6;
:P_1:=fnd_profile.value('USER_ID');
END IF;
commit;
return (TRUE);
end;
2. 如何直接輸出特定格式(excel格式)的報表,或特定模板(3個模板中的某一個模板)
UPDATE fnd_conc_pp_actions
SET ARGUMENT2 ='AR_STATEMENT_OF_ACCOUNT' --改模板
WHERE concurrent_request_id =:P_CONC_REQUEST_ID-- fnd_global.conc_request_id
AND action_type = 6;
UPDATE fnd_conc_pp_actions
SET ARGUMENT5='EXCEL' --改格式 PDF等
WHERE concurrent_request_id=fnd_global.conc_request_id
AND action_type=6;
3. ,在定義報表參數時來定義,也可用此來取得org_id= :$PROFILES$.ORG_ID;
如何在report中使用fnd_profile.value
问题:在ebs的report客户化开发中,fnd_profile.value('RESP_ID') ,fnd_profile.VALUE('GL_SET_OF_BKS_ID') 等无效。
解约方法:在report中使用fnd_profile.value的oracle标准方法为:
1、添加用户参数p_conc_request_id
2、在BeforeReport和AfterReport两个report trigger中,添加srw.user_exit('FND SRWEXIT');
即可在report中正常使用fnd_profile.value.
function BeforeReport return boolean is begin begin SRW.USER_EXIT('FND SRWINIT'); exception when srw.user_exit_failure then srw.message(3001,'Error in SRWINIT'); raise; end; return (TRUE); end;
function AfterReport return boolean is begin begin SRW.USER_EXIT('FND SRWEXIT'); exception when srw.user_exit_failure then srw.message(4001,'Error in SRWEXIT'); end; return (TRUE); end;