解约方法:在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;
原因: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.