ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 組織同步的解決方案Ultimus之權限同步

組織同步的解決方案Ultimus之權限同步

原创 Linux操作系统 作者:yxw2003110 时间:2008-03-19 16:45:03 0 删除 编辑

CREATE OR REPLACE PACKAGE BODY GROUPSYNC_RIGHT is
PROCEDURE MyProcedure(Param1 IN NUMBER) is
a varchar2(100);
begin
a:='ddd';
end MyProcedure;

PROCEDURE GROUPSYNC_GPEMP(P_EMP_ID IN VARCHAR2,P_EMP_GROUP IN VARCHAR2,P_GROUP_TYPE IN NUMBER,P_CREATE_USER IN VARCHAR2,ERRMSG OUT VARCHAR2)
IS
H_EMP_ID NUMBER;
H_EMP_TYPE NUMBER;
H_GROUP_ID NUMBER;
BEGIN
IF P_EMP_ID IS NULL OR P_EMP_GROUP IS NULL OR P_GROUP_TYPE IS NULL OR P_CREATE_USER IS NULL THEN
ERRMSG:=0;
INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
RETURN;
END IF;
IF P_GROUP_TYPE>1 OR P_GROUP_TYPE<0 THEN
ERRMSG:=1;
INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
RETURN;
END IF;
SELECT COUNT(*) INTO H_GROUP_ID FROM RF_GROUP WHERE TRIM(GP_ID)=P_EMP_GROUP;
IF H_GROUP_ID=1 THEN
 IF P_GROUP_TYPE=1 THEN
  SELECT COUNT(*) INTO H_EMP_ID FROM RF_EMPLOYEE WHERE TRIM(EMP_NTACCNT)=LOWER(P_EMP_ID);
  IF H_EMP_ID=0 THEN
   ERRMSG:=3;
   INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
   RETURN;
  ELSE
   SELECT COUNT(*) INTO H_EMP_TYPE FROM RF_GP_EMP WHERE TRIM(EMP_ID)=LOWER(P_EMP_ID) AND TRIM(GP_ID)=P_EMP_GROUP;
   IF H_EMP_TYPE>0 THEN
      ERRMSG:=4;
   ELSE
    INSERT INTO RF_GP_EMP(GP_ID,EMP_ID,MEMBER_TYPE,TYPE,EMP_NTACCNT)VALUES(P_EMP_GROUP,P_EMP_ID,4,4,P_EMP_ID);
    ERRMSG:=10;
   END IF;
   INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
   RETURN;
  END IF;
 END IF;
 IF P_GROUP_TYPE=0 THEN
    SELECT COUNT(*) INTO H_EMP_TYPE FROM RF_GP_EMP WHERE TRIM(EMP_ID)=LOWER(P_EMP_ID) AND TRIM(GP_ID)=P_EMP_GROUP;
  IF H_EMP_TYPE<1 THEN
   ERRMSG:=5;
   INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,ERRMSG);
   RETURN;
  ELSE
   DELETE RF_GP_EMP WHERE TRIM(EMP_ID)=LOWER(P_EMP_ID) AND TRIM(GP_ID)=P_EMP_GROUP;
   ERRMSG:=10;
   INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,ERRMSG);
   RETURN;
  END IF;
 END IF;
ELSE
 ERRMSG:=2;
 INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
 RETURN;
END IF;
EXCEPTION WHEN OTHERS THEN
ERRMSG:=6;
INSERT INTO UP_GROUP_GP_EMP_LOGTOHR(EMP_ID,GROUP_NAME,TOWF_TYPE,CREATE_USER,MAINT_USER,ERRMSG)VALUES(P_EMP_ID,P_EMP_GROUP,P_GROUP_TYPE,P_CREATE_USER,P_CREATE_USER,ERRMSG);
END GROUPSYNC_GPEMP;
end;
/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13538095/viewspace-211695/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-03-19

  • 博文量
    12
  • 访问量
    5340