2012年4月12日 星期四

如何在report中使用fnd_profile.value

 問題:在 EBS report客戶化開發中,如何使用 fnd_profile.value

方法:report中使用fnd_profile.valueoracle標準方法為:

       1、添加用戶參數p_conc_request_id

       2
、在BeforeReportAfterReport兩個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;


原因:The   oracle   standard   report   always   use   srw.user_exit   ('FND   SRWINIT')   to   get   the  
previous session  information depend on p_conc_request_id, and set the client session to be the same   OU.
Because the application is difference session with concurrent program.If   you   use   fnd_profile.value(...)
to get the profile.You  may get the same OU  ,eventhough  you  change  OU.  You can also get the correct  OU by using definitoin of parameter  to pass in report.

沒有留言:

張貼留言