lunes, 26 de septiembre de 2011

SQL Genera Ruta de Acceso a Menú de Peoplesoft.

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..

jueves, 15 de septiembre de 2011

Utilizar Sub-query como campo en PsQuery

Creando una query se me presento el siguiente problema, utilizar una subquery como campo en una PsQuery... pero al querer agregar la subquery en la consulta atravez del Gestor de Consultas por PIA, me generaba el siguiente Error. "No se pueden utilizar cláusulas FROM en las expresiones. (50,536)"

 Para solucionar el problema se resolvio de la siguiente manera:

1.- Se crea, atravez del designer una definicion SQL.
2.- Agregue una variables de %P, la cual me permita pasar el alias de la tabla principal de la Query para realizar el join.
3.- Le damos un nombre y "Guardar"
 
4.- En la expresion se invoca la definicion SQL creada anteriormente atraves del Comando %SQL y se agrega el valor de la variables a sustituir. "Acepta"
 5.- Indicamos que la expresion se Utilizada como Campo Ver Imagen.
 6.-  LISTO, si visualizamos el SQL generado nos daremos cuenta que se agrego a la consulta la subquery creada...
7.- Resultado Final ...


Espero les sea de ayuda ...

miércoles, 14 de septiembre de 2011

Bienvenida..

Bienvenido a Peoplesoft Chile, un sitio dedicado compartir las distintas experiencias sobre  Peoplesoft.
Donde podremos compartir información que ayuden hacer las tarea más faciles..
Suerte... !!