Declare
--该脚本只能删除人力资源下的职责,不能删除其他非人事职责.
--不是真正意义上的删除该笔记录,就是加上了一个终止日期
--addresp也能实现,而且日期也能自动的定义
Cursor c_User Is
Select User_Name
From Fnd_User Fu
Where Fu.User_Name='JB012230'; --In ('登录用户');
Cursor c_Resp Is
Select Frv.Responsibility_Key, Frv.Responsibility_Name
From Fnd_Responsibility_Vl Frv
Where 1=1
And Frv.Responsibility_Name ='总帐查询';
--And Frv.Responsibility_Key In ('LQKHDG_HR_USER');
Begin
---初始化
Fnd_Global.Apps_Initialize(User_Id => 3434,
Resp_Id => 20420, ---系统管理员职责
Resp_Appl_Id => 800);
-- 按用户来批量去除赋值职责
For R1 In c_User Loop
For R2 In c_Resp Loop
/* ---该过程只能删除,结束日期就是当天
Fnd_User_Pkg.Delresp(Username => R1.User_Name, --用户名称
Resp_App => 'PER', --应用名称 人事为PER
Resp_Key => R2.Responsibility_Key, ---职责代码
Security_Group => 'STANDARD');
*/
---该过程功能全面一些 日期也能定义 ,同时也可以作为新增职责的过程哦
Fnd_User_Pkg.Addresp(R1.User_Name, ---username varchar2, --用户名称
'SQLGL', --resp_app varchar2, 应用名称 人事为PER
R2.Responsibility_Key, ---resp_key varchar2, --- 职责代码
'STANDARD', -- security_group varchar2, --STANDARD
'批量异动', -- description varchar2, 说明 但是好像没导入值
To_Date('20101201', 'YYYYMMDD'), -- 开始日期 date,
/*To_Date('20111201', 'YYYYMMDD')*/NULL); --结束日期,建立可为空,终止的时候填写值
End Loop;
End Loop;
Exception
When Others Then
Dbms_Output.Put_Line(Sqlerrm);
Rollback;
End;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25103190/viewspace-721865/
,如需转载,请注明出处,否则将追究法律责任。