lunes, 10 de mayo de 2010

Calcular responsable y su mail

Desde hace ya un tiempo los clientes me piden que, tras ciertas acciones de un empleado en el Portal del Empleado (SSE), se remita un correo de cortesía a su responsable avisando de esta acción. [Obviamente cuando son procesos fuera de los flujos estándar]

Bueno el tema podría ser realizar una pequeña carga de un nodo con la Unidad a la que el empleado pertenece, revisar su responsable, los emails de ambos y lanzar el mail, pero vamos a "simplificarlo" usando el Meta4Object estándar SSE_VALIDADORES.

Primero es necesario generar dos alias de Meta4Object, uno para el SSE_VALIDADORES y otro obviamente para el Meta4Object MAIL:

MAIL:


SSE_VALIDADORES:

Después crearemos un método, conectado, por ejemplo antes del PERSIST_TREE() con un código semejante a este:

SSE_VALIDADORES!SSE_VALIDADORES.BEGIN()
MsIdPersona = [campo del ID de la Persona i.e. STD_ID_HR]
SSE_VALIDADORES!SSE_VALIDADORES.SSE_CALC_EMAIL(MsIdPersona,"SSE_EMAIL")

MsMailEmpleado = SSE_VALIDADORES!SSE_VALIDADORES.SSE_EMAIL
MsEmpleado = SSE_VALIDADORES!SSE_VALIDADORES.SCO_GB_NAME
SSE_VALIDADORES!SSE_VALIDADORES.ID_HR_PAR = MsIdPersona
SSE_VALIDADORES!SSE_VALIDADORES.SSE_CALC_RESPONSABLE("WORKUNIT10")
MsIdPersonaResp = SSE_VALIDADORES!SSE_VALIDADORES.SSE_ID_PERSON_RESP
MsMailResponsable = SSE_VALIDADORES!SSE_VALIDADORES.SSE_EMAIL_RESP

Este código nos deja en:

  • MsEmpleado el Nombre del empleado
  • MsMailEmpleado el email del empleado
  • MsIdPersonaResp el ID del responsable
  • MsMailResponsable el email del responsable

Luego con generar un mail ya estaría:

MAIL!MAIL.COMPOSE()
MAIL!MAIL.FROM = MsMailEmpleado
MAIL!MAIL.CC = MsMailEmpleado
MAIL!MAIL.DESTINATION = MsMailResponsable
MAIL!MAIL.SUBJECT = "Aviso de cambio en ...."
MAIL!MAIL.BODY = "Este correo electrónico se remite de forma automática desde el Portal del Empleado para avisarte de que " + MsEmpleado + " ha realizado ..."
MAIL!MAIL.SENDALL()



Espero que os sirva!!