PS Query Security Tree

--SQL will show the Query Security Tree Name and Permission it is associated with for a specific Table Name.
SELECT
A.TREE_NAME,
A.DESCR,
B.PARENT_NODE_NAME,
B.TREE_NODE,
B.TREE_NODE_TYPE,
C.CLASSID,
B.TREE_NODE_NUM,
B.PARENT_NODE_NUM,
C.ACCESS_GROUP,
C.ACCESSIBLE
FROM PSTREEDEFN A,
PSTREENODE B,
PS_SCRTY_ACC_GRP C
WHERE ( A.SETID = ' '
AND A.TREE_STRCT_ID = 'ACCESS_GROUP'
AND A.SETID = B.SETID
AND A.SETCNTRLVALUE = B.SETCNTRLVALUE
AND A.TREE_NAME = B.TREE_NAME
AND B.TREE_NODE = :1
AND B.TREE_NAME = C.TREE_NAME )
ORDER BY 7, 8, 6
;
--Below SQL will give the List of Queries that is exist in the system, but some of the Records used in Query in not available in the Query Security Tree
SELECT A.QRYNAME, A.DESCR
  FROM PSQRYDEFN A, PSQRYRECORD B
  WHERE ( A.OPRID = B.OPRID
     AND A.QRYNAME = B.QRYNAME
     AND NOT EXISTS (SELECT 'X'
  FROM PSTREEDEFN C, PSTREENODE D
  WHERE C.EFFDT =
        (SELECT MAX(C_ED.EFFDT) FROM PSTREEDEFN C_ED
        WHERE C.SETID = C_ED.SETID
          AND C.SETCNTRLVALUE = C_ED.SETCNTRLVALUE
          AND C.TREE_NAME = C_ED.TREE_NAME
          AND C_ED.EFFDT <= SYSDATE)
     AND C.SETID = D.SETID
     AND C.SETCNTRLVALUE = D.SETCNTRLVALUE
     AND C.TREE_NAME = D.TREE_NAME
     AND D.EFFDT =
        (SELECT MAX(D_ED.EFFDT) FROM PSTREENODE D_ED
        WHERE D.SETID = D_ED.SETID
          AND D.SETCNTRLVALUE = D_ED.SETCNTRLVALUE
          AND D.TREE_NAME = D_ED.TREE_NAME
          AND D_ED.EFFDT <= C.EFFDT)
     AND D.TREE_NODE = B.RECNAME))
;

Comments

Popular posts from this blog

PeopleSoft AP Matching Process Key Tables for troubleshooting purpose

How to Set a Default Password in PeopleSoft