如何在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;
原因: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.