Se Crea un SQL que permite generar la Ruta de de acceso en el menú de PeopleSoft considerando de los siguientes Objetos como filtros:
- Referencia de contenido
- Página
- Componente.
El query, inicialmente se ha realizado para BD ORACLE, pero se pretende diseñarlo para otras Base de Datos, utilizando la misma lógica.
-- Busca Ruta de la Página dentro del menu PIA mediante filtros de :
--Referencia de Contenido, Páginas y Componente.
-- BD: Oracle
WITH PORTAL_REGISTRY AS
(SELECT RTRIM(REVERSE(SYS_CONNECT_BY_PATH(REVERSE(CASE B.PORTAL_LABEL WHEN 'Raíz' THEN 'Menú Principal' ELSE B.PORTAL_LABEL END), ' >> ')), ' >> ') RUTA_PIA,
LEVEL NIVEL
FROM PSPRSMDEFN A, PSPRSMDEFNLANG B
WHERE A.PORTAL_NAME = B.PORTAL_NAME
AND A.PORTAL_REFTYPE= B.PORTAL_REFTYPE
AND A.PORTAL_OBJNAME = B.PORTAL_OBJNAME
AND B.LANGUAGE_CD = 'ESP' -- Idioma
AND A.PORTAL_NAME = 'EMPLOYEE' -- Portal
START WITH A.PORTAL_OBJNAME =
-- Filtros Búsqueda por : Referencia de Contenido
-- Si requieres hacer una busqueda por Referencia de Contenido solo Agregar el Nombre ' Rerf _Cont' y comentar el Sub_quey.
-- Filtros Búsqueda por : Página o Componente
--Si quieres buscar por página o componente utilizar sub_query.
(SELECT DISTINCT(AA.PORTAL_OBJNAME)
FROM PSPRSMDEFN AA, PSPNLGROUP BB
WHERE AA.PORTAL_URI_SEG2 = BB.PNLGRPNAME
AND AA.PORTAL_URI_SEG3 = BB.MARKET
AND AA.PORTAL_NAME = A.PORTAL_NAME
--/ * Filtros Búsqueda - Inicio*/
-- AND BB.PNLGRPNAME = 'USERMAINT' -- Componente
AND BB.PNLNAME = 'INV_RECV_HDR' -- Página
--/* Filtros Búsqueda Fin */
AND BB. MARKET = 'GBL') -- Mercado
CONNECT BY PRIOR A.PORTAL_PRNTOBJNAME = A.PORTAL_OBJNAME)
SELECT DISTINCT(RUTA_PIA)
FROM PORTAL_REGISTRY
WHERE NIVEL =
(SELECT MAX(NIVEL)
FROM PORTAL_REGISTRY);
Cualquier Observación o comentario que ayude a mejorarlo se agreadese..
No hay comentarios:
Publicar un comentario