martes, 7 de octubre de 2014

User Exits in Oracle Reports

Cuando desarrollamos reportes por Report Builder, hay ocasiones que usamos vistas o el uso de perfiles que van a depender de como estamos consultando en el EBS ya sea por Responsabilidad o por la Organización, la información a consultar sera diferente. En el archivo .rdf podemos inicializar los perfiles pero hay otra forma mas practica, tan solo utilizando los User Exits.

Los User Exits son APIS para transferir información del Report Builder a Aplicaciones de ORACLE o cualquiera , donde se llevará a cabo la ejecución del reporte. Para entender esta funcionalidad la explicación es sencilla , cuando ejecutamos un programa concurrente, se genera un id de solicitud bajo el parámetro P_CONC_REQUEST_ID. Cuando utilizamos los User Exits indicando el comando FND SRWINIT en el Trigger Before Report en el Report Builder. El API utiliza el id de la solicitud para consultar el contexto en las Aplicaciones de Oracle, al encontrarlo inicializa todos  valores  de la sesión por defecto. 

Al tener los valores de sesión inicializados podemos usar el reporte para nuestras consultas en base a los acceso por responsabilidades o organizaciones. Es necesario agregar el parámetro  P_CONC_REQUEST_ID definido como un parámetro de usuario en el reporte, de lo contrario el API finaliza en error indicando agregar dicho parámetro en el reporte.




User Exists

FND SRWINIT: 
Se utiliza para buscar la información de la solicitud del programa concurrente y también para establecer las opciones de perfil. En él se establecen los valores de las opciones del perfil y permite que el usuario obtenga la información en base a sus accesos y privilegios.

Se utiliza en el Trigger before report ,tal como se muestra a continuacion:


function BeforeReport return boolean is
begin
  SRW.user_exit('FND SRWINIT');
  return (TRUE);

end;

FND SRWEXIT: 
Se utiliza para liberar la memoria que ha sido asignado por los otros User Exist. Este comando  asegura que toda la memoria asignada se  ha liberado correctamente. 

Se utiliza en el Trigger After report ,tal como se muestra a continuacion:


function AfterReport return boolean is
begin
  srw.user_exit('FND SRWEXIT');
    RETURN (TRUE); 

end;

2 comentarios:

  1. Hola, soy usuario que diariamente trabaja en la aplicación y me encanta tu blog esta muy completísimo, me ha servido mucho en el trabajo y espero no lo descuides y sigas trabajando en seguir entregando información a través de el sobre el EBS de Oracle, muy agradecida, lo leo y reviso a diario, muchas gracias.

    ResponderEliminar