miércoles, 13 de abril de 2016

Problemas con correo electrónico inválido

En el formulario de Órdenes de Compra después de guardar una Orden de Compra y seleccionar para aprobación. En la pantalla Aprobar Documento, en la región Métodos de Transmisión hay una opción de correo electrónico donde se coloca la dirección de correo electrónico del proveedor por defecto. Esto depende si la configuración en el formulario de Proveedores a nivel de la sucursal se le colocado un Correo Electrónico. 


El usuario tiene la opción de introducir cualquier dirección de correo electrónico en este campo que puede causar problemas si se introduce una dirección de correo electrónico inválido.


Estas direcciones de correo electrónico son registradas en la tabla WF_LOCAL_USER_ROLES. Si la dirección de correo electrónico no es válida, entonces puede provocar que no se puedan entregar notificaciones por correo electrónico que son enviados al administrador del sistema. Por ejemplo el siguiente mensaje sin entregar fue entregado mostrando la dirección de email errado con los siguientes detalles:

From: TOR-IS-Postmaster
To: sales_ti@shopti.com
Sent: Tuesday, January 19, 2013 11:29 AM
Subject: Undeliverable: Closed: Standard PO 301, 0
Delivery has failed to these recipients or distribution lists:
sales_ti@shopti.com

El problema de este error es que la notificación no se proporciona a ningún correo electrónico y este queda como un residuo dentro de la bandeja de correos del Administrador. Una forma para evitar este error es crear una personalización que evite este problema.

Para ello nos ubicamos en la pantalla de Ordenes de Compra, y seleccionamos Ayuda >> Diagnóstico >> Código Personalizado >> Personalizar.  Dentro de la pantalla Personalizaciones de Pantalla debemos agregar el siguiente registro:

Sec= 2 u Otro numero disponible
Descripción = Validar Correo Electrónico
Nivel = Función
Activado= Marcado


En la pestaña Condición ingresamos lo siguiente:

Evento Trigger = WHEN-VALIDATE-RECORD
Objeto Trigger = PO_APPROVE
Condición =  
:PO_APPROVE.EMAIL_ADDRESS is not null and
not exists (select email_address from po_vendor_sites_all
where email_address = :PO_APPROVE.EMAIL_ADDRESS)
and not exists (select email_address from po_vendor_contacts
where email_address = :PO_APPROVE.EMAIL_ADDRESS)
and not exists (select email_address from fnd_user
where email_address = :PO_APPROVE.EMAIL_ADDRESS)
and not exists (select email_address from per_people_f
where email_address = :PO_APPROVE.EMAIL_ADDRESS)
Modo Procesamiento= No en Modo Ingresar Consulta.

Luego hacer clic en la pestaña de Acciones e  ingresamos lo siguiente:

Sec = 10
Tipo= Mensaje
Descripción = Error
Idioma = All
Activado= Marcado
Tipo Mensaje = Mostrar
Texto Mensaje = Correo Electrónico Inválido


Luego agregar la siguiente acción:

Sec = 20
Tipo= Propiedad
Idioma = All
Activado= Marcado
Tipo Objeto = Artículo
Objeto Objetivo= PO_APPROVE.EMAIL_ADDRESS
Nombre Propiedad = VALUE


Guarde el registro, no olvidar cerrar  el formulario, para  completar la actualización. Ir de nuevo al formulario de Ordenes de Compra para aprobar una nueva OC. Para validar esta personalización supongamos que se ingresa un correo que no esta registrado en las tablas: po_vendor_sites_all, po_vendor_contacts, fnd_user y  per_people_f. Al presentarse un caso que no exista en estos objetos saltara el siguiente mensaje y con ello evitaremos enviar una notificación de correo invalido.


3 comentarios:

  1. Gustavo,
    Trabaste con clases standard java ? Me gustaria encontra un blog de donde aprender de ella y como customizarlas.
    Saludos, Pablo.

    ResponderEliminar
  2. Gustavo, Sigo esperando tu respuesta. Jaja
    Encontré esto http://www.ukocn.com/files/case-studies/Oracle%20Fusion%20Developer%20Guide_Ch1Preview.pdf

    ResponderEliminar
    Respuestas
    1. Hola. disculpa por tiempos no te he podido responder, te recomiendo estos blogs:

      http://www.awasthiashish.com/
      http://mahmoudoracle.blogspot.pe/

      Eliminar