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

7 comentarios:

Unknown dijo...

Hola Oscar y funcionaria igual para hacerlo desde el cliente/servidor es decir, desde peoplenet

Oscar López dijo...

Está hecho con PeopleNet da igual que se lance usando una página JSP en el SSE o si lo haces usando una presentación o un proceso.

Un saludo!
Oscar L.

Anónimo dijo...

Muy buenas, por rizar un poco más la cosa, sabes si en el campo CC se pueden poner varios Mail separados por punto y coma??

Algo tipo:
MsMailResponsable = SSE_VALIDADORES!SSE_VALIDADORES.SSE_EMAIL_RESP
MsMailResponsable2 = SSE_VALIDADORES!SSE_VALIDADORES.SSE_EMAIL_RESP2
MAIL!MAIL.CC = MsMailEmpleado+";"+MsMailEmpleado2

Oscar López dijo...

No es rizar :-)

Se puede hacer y se hace como indicas... usando ";" como separador de mails y en campos como CC o DESTINATION.

Un saludo!
Oscar L.

Anónimo dijo...

Buenas Oscar:
Hay forma de enviar un correo con Peoplenet en formato HTML y popder usar codigo HTML en el texto del Body del correo?

S2

joseba velez dijo...

Hola Oscar:
Se puede enviar un correo desde PeopleNet en formato HTML y asi poder utilizar codigo HTML paera componer el texto del Body?

Un saludo

Oscar López dijo...

Joseba, es posible mandar Correos en formato HTML. Hay que informar un parámetro general de la aplicación (dentro de la sección de correo). Normalmente esta así. Luego incluye código HTML en el body y listo. En peoplenet 8 vienen más posibilidades en el correo.