2016-06-04

[Oracle]Responsibility not display

 參考網址:

http://somebabytina.pixnet.net/blog/post/30684439
https://bbs.aliyun.com/simple/t499645.html

權限名稱:GL_會計負責人
狀況描述:User因為某些關係關閉 GL_會計負責人權限,但是今天因為測試需要重新開啟,於Define_User重新開啟權限後,卻發現沒有在清單中

執行Request:Workflow Directory Services User/Role Validation,參數:10000, Y, Y, Y,
沒有作用後選擇以下方式

SELECT USER_NAME,
       ROLE_NAME,
       USER_END_DATE,
       ROLE_END_DATE,
       ASSIGNING_ROLE_END_DATE,
       EFFECTIVE_END_DATE
  FROM WF_USER_ROLE_ASSIGNMENTS
 WHERE USER_NAME IN ('A0AA','A0BB')
   AND ROLE_NAME LIKE '%GL%CBM%';
SELECT USER_NAME,ROLE_NAME, USER_END_DATE, ROLE_END_DATE, EFFECTIVE_END_DATE,ROWID
  FROM WF_LOCAL_USER_ROLES
 WHERE USER_NAME IN ('A0AA','A0BB')
   AND ROLE_NAME LIKE '%GL%CBM%';

比對以上兩個資料表發現EFFECTIVE_END_DATE不一致,改為9999/1/1,User反應正常顯示

 

20170222補充,因為還是偶爾會遇到,進行程式改良

DECLARE
  P_USER_NAME          VARCHAR2(50) := 'R0028';
  P_USER_ID            NUMBER;
  P_RESPONSIBILITY_KEY VARCHAR2(50);
  P_EFFECTIVE_END_DATE DATE;

  CURSOR CUR_DATA IS
    SELECT FUR.RESPONSIBILITY_ID
      FROM FND_USER_RESP_GROUPS_DIRECT FUR
     WHERE FUR.USER_ID = (SELECT FU.USER_ID
                            FROM FND_USER FU
                           WHERE FU.USER_NAME = P_USER_NAME)
       AND TRUNC(NVL(FUR.END_DATE, SYSDATE + 1)) > TRUNC(SYSDATE);
BEGIN

  FOR C1 IN CUR_DATA LOOP
    SELECT FRV.RESPONSIBILITY_KEY
      INTO P_RESPONSIBILITY_KEY
      FROM FND_RESPONSIBILITY_VL FRV
     WHERE FRV.RESPONSIBILITY_ID = C1.RESPONSIBILITY_ID;
  
    DBMS_OUTPUT.PUT_LINE(P_RESPONSIBILITY_KEY);
  
    UPDATE WF_LOCAL_USER_ROLES WL
       SET WL.EFFECTIVE_END_DATE = TO_DATE('9999/1/1', 'YYYY/MM/DD')
     WHERE WL.USER_NAME = P_USER_NAME
       AND WL.ROLE_NAME LIKE '%' || P_RESPONSIBILITY_KEY || '%';
  END LOOP;
  COMMIT;
END;

20170424補充,程式應該是有作用,只是似乎有背後排程
20171109補充,程式有作用,再去Define_User,同仁帳號表身看不到的權限上,隨便更動一下這筆資料,就會馬上生效
20171201補充

  • Sync responsibility role data into the WF table
  • Synchronize Workflow Local Tables(可能是R12)
  • Synchronize WF LOCAL tables(11i 版本有找到這個)
  • Workflow Directory Services User/Role Validation   ( 在跳出的參數選取畫面的第二欄Fix dangling user/roles 選擇yes)

沒有留言:

張貼留言