martes, 21 de diciembre de 2010

Personalizaciones Oracle 11i

(Por Finalizar)
Personalizaciones Oracle 11i

Las personalizaciones pueden utilizarse en Oracle para añadir validaciones nuevas a las ventanas, por ejemplo cuando el usuario añade cierto tipo de pedido de compra (completar un campo con un valor en concreto).

En el siguiente blog vamos a comentar como crear una personalización para que el sistema visualize un mensaje de error cuando intentamos meter facturas con fecha contable inferior a la fecha contable superior de la base de datos (de esta forma conseguimos que todas las fechas contables aumentan con el numero de documento de AP que el sistema genera).

En Italia, por ejemplo, es obligatorio que el documento de AP sea secuancial (al igual que la fecha contable). No puede aparecer un numero de documento superior con fecha contable inferior.

No es posible:
Factura 1; Fecha contable:12-dec-2010 numero documento : 100
Factura 2; Fecha contable:11-dec-2010 numero documento : 101

Vayamos a crear la personalización para que al usuario le aparezca el mensaje de error, cuando se de ese caso (sin que genere el número de documento). Aunque el usuario puede seguir adelante y crear la factura (es un mensaje informativo solamente)


1.- Ir a la pantalla de Oracle en la que queremos que se de el mensaje de error:
Menu:

2.- Necesitamos tres cosas para crear la personalización,
2.1.- La descripción de la personalización, cuando queremos que se ejecute (cuando existan facturas con GL_DATE superior al que vamos a introducir por pantalla) , y que queremos que aparezca (un mensaje de error)

2.1.1.- Nombre/Descripción de la personalización
Test fecha contable inferior a ultima fecha contable
(Adjuntar Pantallazo)

2.1.2.- Pestana "" - cuando queremos que se ejecute la acción
(Adjuntar Pantallazo)
WHEN-NEW-ITEM-INSTANCE
INV_SUM_FOLDER.GL_DATE
:inv_sum_folder.GL_DATE < (select max(ap.GL_DATE) from ap_invoices_v ap where ap.SET_OF_BOOKS_ID='135') and :inv_sum_folder.SET_OF_BOOKS_ID='135'
2.1.3.- Pestana "Action" - que se quiere que el sistema haga
(Adjuntar Pantallazo)
Type: Mensaje ( Hay facturas con fecha GL_DATE superior al que intenta introducir )

IMPORTANTE: Para que se vea la acción de la personalización es necesario salir de la ventana en concreto y entrar denuevo (en este caso la ventana de facturas/Invoices)

Admin

lunes, 20 de diciembre de 2010

SQL responsabilidad-concurrente

SQL
En Oracle hay veces que no sabemos en que responsabilidades estan ciertos concurrentes o requests. Para ello, de una forma sencilla con SQL podremos sacar el listado entero de las responsabilidades desde los cuales podemos lanzar el concurrente que estamos buscando.


Al ejecutar la sentencia sql, nos aparecerá un pequeño pop-up donde debemos indicar el nombre EXACTO de la concurrente que estamos buscando. (este pequeño pop-up se consigue introduciendo el siguiente comando '&conc_name' y el valor que introducimos en ese popup lo comparamos con fnd_concurrent_programs_tl.user_concurrent_program_name)


---- Para encontrar el concurrente relacionado a una responsabilidad
select frt.responsibility_name, frg.request_group_name,frgu.request_unit_type,frgu.request_unit_id,fcpt.user_concurrent_program_nameFrom fnd_Responsibility fr, fnd_responsibility_tl frt,fnd_request_groups frg, fnd_request_group_units frgu,fnd_concurrent_programs_tl fcptwhere frt.responsibility_id = fr.responsibility_idand frg.request_group_id = fr.request_group_idand frgu.request_group_id = frg.request_group_idand fcpt.concurrent_program_id = frgu.request_unit_idand fcpt.user_concurrent_program_name = '&conc_name'order by 1,2,3,4


-----------Para encontrar el concurrente SET (Request SET) relacionado a una responsabilidad
select frt.responsibility_name, frg.request_group_name,frgu.request_unit_type,frgu.request_unit_id,fcpt.user_request_set_nameFrom apps.fnd_Responsibility fr, apps.fnd_responsibility_tl frt,apps.fnd_request_groups frg, apps.fnd_request_group_units frgu,apps.fnd_request_Sets_tl fcptwhere frt.responsibility_id = fr.responsibility_idand frg.request_group_id = fr.request_group_idand frgu.request_group_id = frg.request_group_idand fcpt.request_set_id = frgu.request_unit_idand fcpt.user_request_set_name = '&conc_name'order by 1,2,3,4


Admin