我是靠谱客的博主 高兴小伙,最近开发中收集的这篇文章主要介绍EBS批量导入用户及相应的职责,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、创建临时表 CUX_IMPORT_USER_TMP 用来存放登录名、对应的员工名及职责名称 如下图所示

USER_NO 字段对应 hr_employees_all_v(员工表) 表的 EMPLOYEE_NUM 字段

LOGIN_NAME 字段 作为 登录名


RESP_NAME 字段对应 FND_RESPONSIBILITY_TL (指责表)的 RESPONSIBILITY_NAME字段

2、创建 相应的 PKG

create or replace package CUX_IMPORT_USER_PKG is

    -- Author  : DIEGO
    -- Created : 2013-5-15 10:24:44
    -- Purpose : 通过CUX.CUX_IMPORT_USER表导入用户的PKG

    /*=====================================
    ** PROCEDURE:   main
    ** PARAMETER:   
    ** PURPOSE:     入口程序
    **=====================================*/
    PROCEDURE main(errbuf OUT VARCHAR2, retcode OUT NUMBER);

end CUX_IMPORT_USER_PKG;

create or replace package body CUX_IMPORT_USER_PKG is

    PROCEDURE main(errbuf OUT VARCHAR2, retcode OUT NUMBER) IS
        ---------游标开始--------------------------
        CURSOR cur_main IS
            SELECT ABC.USER_NO,
                   ABC.login_name,
                   TL.RESPONSIBILITY_ID,
                   hr.EMPLOYEE_ID
              FROM FND_RESPONSIBILITY_TL   TL,
                   CUX.CUX_IMPORT_USER_TMP ABC,
                   hr_employees_all_v      hr
             WHERE TL.LANGUAGE = 'ZHS'
               AND ABC.RESP_NAME = TL.RESPONSIBILITY_NAME
               and hr.EMPLOYEE_NUM = ABC.USER_NO
               and UPPER(ABC.login_name) not in
                   (select UPPER(FU.user_name) FROM FND_USER FU);
        ------------------------------------------------------------------------------------------
        CURSOR cur_resp(p_resp_id number) IS
            SELECT fa.application_id,
                   fa.application_short_name,
                   fr.responsibility_id,
                   fr.responsibility_name,
                   fr.responsibility_key,
                   fsg.security_group_key
              FROM fnd_application       fa,
                   fnd_responsibility_vl fr,
                   fnd_security_groups   fsg
             WHERE fr.RESPONSIBILITY_ID = p_resp_id --lower(fr.responsibility_name) = lower(p_resp)
               AND fa.application_id = fr.application_id
               AND fr.data_group_id = fsg.security_group_id;
        -----------------游标结束---------------------
        ---------------变量开始-----------
        l_createNumber number := 0;
        l_count_user number:=0;
        l_username VARCHAR2(20);
        --------------变量结束-------------
    begin    
            SELECT COUNT(*)
            INTO l_count_user
              FROM CUX.CUX_IMPORT_USER_TMP ABC
             WHERE UPPER(ABC.login_name) not in
                   (select UPPER(FU.user_name) FROM FND_USER FU);
    dbms_output.put_line('预计导入'|| l_count_user||'个用户');
     dbms_output.put_line('-----------------------------------------------------------------------');
        dbms_output.put_line('开始增加用户');
        FOR r_catg IN cur_main LOOP
        l_username:=r_catg.login_name;
            dbms_output.put_line('开始处理用户名为' || r_catg.login_name || '的用户');
            l_createNumber := 0;
            fnd_user_pkg.CreateUser(x_user_name            => r_catg.login_name,
                                    x_owner                => 'SEED',
                                    x_unencrypted_password => '111111',
                                    x_employee_id          => r_catg.employee_id);
            commit;
            select count(*)
              into l_createNumber
              from fnd_user fu
             where fu.user_name = upper(r_catg.login_name);
        
            if l_createNumber > 0 then
                dbms_output.put_line('用户增加成功');
                dbms_output.put_line('开始为该用户增加职责');
                for r_resp IN cur_resp(r_catg.responsibility_id) loop
                    dbms_output.put_line('职责名为' ||
                                         r_resp.responsibility_name);
                    fnd_user_pkg.AddResp(username       => upper(r_catg.login_name),
                                         resp_app       => r_resp.application_short_name,
                                         resp_key       => r_resp.responsibility_key,
                                         security_group => r_resp.security_group_key,
                                         description    => null,
                                         start_date     => sysdate,
                                         end_date       => null);
                
                end loop;
                COMMIT;
                dbms_output.put_line('职责添加成功');
            end if;
        END LOOP;
    
    EXCEPTION
        WHEN OTHERS THEN
       dbms_output.put_line('用户名为'||l_username||'在传入时报错,请查看具体原因');
            ROLLBACK;
    end;
end CUX_IMPORT_USER_PKG;



最后

以上就是高兴小伙为你收集整理的EBS批量导入用户及相应的职责的全部内容,希望文章能够帮你解决EBS批量导入用户及相应的职责所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部