Dinaup - Base de Conocimientos Help

Envío automático de Emails usando Documentos Dinámicos

Los documentos dinámicos tienen la capacidad de leer datos de una amplia variedad de fuentes en todo Dinaup, lo que los hace muy potentes para diferentes usos.

En este apartado se verá como se pueden crear documentos dinámicos autoejecutables, que se lanzan después de qué ocurra algún evento en el sistema, como alta de un nuevo cliente, cambio de la prioridad de alguna tarea, etc.

Confección de un Email mediante un Documento Dinámico

A continuación, se va a crear un documento dinámico encargado de enviar un Email al administrador de un proyecto cada vez que se registre un nuevo ticket con prioridad crítica en uno de sus proyectos.

Componentes reutilizables

Primero se van a crear componentes reutilizables, en este caso el encabezado y el pié de página común para todos los emails.

Crear el encabezado

  1. Crea un nuevo documento dinámico con la plantilla HTML.

  2. Rellena el nombre y la categoría.

    documento-cabecera-email-nombre.png
  3. Muévete al código y escribe el código en formato HTML. También puedes definir los estilos que se van a usar.

    documento-cabecera-codigo-superior.png
    documento-cabecera-codigo-inferior.png

    Algunas etiquetas del body se dejan abiertas, ya que dentro irá el contenido de los emails. Estas etiquetas se cerrarán en el componente de pie de página.

  4. Dale a ✔ Aceptar.

Crear pié de página

  1. Vuelve a crear otro documento dinámico con la plantilla HTML.

  2. Rellena el nombre y la categoría.

  3. Muévete al código.

    documento-piepagina-codigo.png

    Cierra todas las etiquetas abiertas del encabezado

  4. Dale a ✔ Aceptar.

Condiciones del documento

Antes de seguir con la confección, es importante tener en cuenta las condiciones que debe cumplir el documento para que el sistema lo ejecute.

Tener una única variable de tipo Relación

Mediante esta variable, el sistema identifica la sección que estás monitorizando, para que cuando ocurra algún evento, revise si debe ser ejecutado según las condiciones definidas en el próximo punto.

  1. Para agregar una variable a un documento, consulta los puntos 7 y 8 de Crea tu primer Documento Dinámico.

  2. Puedes llamar a la variable como quieras, aunque se recomienda llamarlo igual que la sección relacionada, en este caso Ticket.

  3. Modifica el Formato de la variable a Tipo Relación y busca la sección correspondiente, en este caso Tickets & Soporte.

    doc-dinamico-nueva-variable.png
  4. Dale a ✔ Aplicar.

En el código tienes acceso a esta variable, que resulta muy útil, ya que no solo puedes acceder a los valores propios del Ticket por ejemplo, sino que puedes llegar hasta el Lider del proyecto al que afecta dicho ticket, que forma parte de otra sección.

Condiciones para la ejecución el documento

Ahora que, gracias a la variable anterior, el sistema sabe qué sección debe monitorizar, hace falta indicar que tipo de eventos se tendrían que producir para que se ejecute.

Estas condiciones pueden ser, por ejemplo, que el campo Prioridad de un elemento de la sección monitorizada (Tickets) haya cambiado su valor y ha pasado de normal a crítica.

Se pueden definir tantas condiciones como el usuario quiera.

  • El tipo de eventoF.InitializeTrigger(n)

    • n = 1 (Agregar): Se lanza cuando se agregue un registro nuevo.

    • n = 2 (Editar): Se lanza cuando se edite un registro existente.

    • n = 0 (Todos): Se lanza en cualquiera de los 2 casos anteriores.

  • Este campo debe estar rellenadoF.TriggerIfFieldsFilled(campo.id)

  • El valor de este campo ha cambiadoF.TriggerOnFieldChange(campo.id)

Obtener la ID del email emisor

Normalmente, para enviar los emails desde cualquier sistema de mensajería, debes estar logueado con tu usuario y contraseña. En Dinaup no es diferente, se necesita el email y la clave, pero teniendo en cuenta que no es conveniente poner en texto plano la clave, Dinaup proporciona una manera simple de obtener acceso al email, accediendo únicamente a la ID de estas.

  1. Busca la siguiente sección en Dinaup y abrelo.

    cuentas-email-seccion.png
  2. Haz doble click sobre el email del que quieras obtener la ID.

  3. Una vez abierto, sigue los pasos de la imagen.

    Cuenta email general

Al disponer de esta ID, puedes enviar los emails a través de documentos dinámicos sin necesidad de especificar la dirección email o la clave.

Confección del documento completo

Aquí se unirán los 2 componentes creados anteriormente más el contenido del email.

  1. Crea un documento dinámico nuevo.

  2. Elige la plantilla HTML.

  3. Rellena el nombre y la categoría.

    nuevo_documento_entrada_ticket_urgente.png

  4. Muévete a la pestaña Código y borra todo lo que hay dentro, crearemos nuestro documento de cero.

  5. Añade los componentes de encabezado y pié de página de la siguiente manera.

    doc-dinamico-con-cabecera-pide-pagina.png
    Todo el contenido siguiente irá entre estas 2 etiquetas

  6. Añade las condiciones que determinarán si se va a ejecutar este documento o no.

    Doc din autoejecutable condiciones
    Si alguna de estas comprobaciones no es cierta, el documento dinámico no seguirá ejecutandose y, por tanto, no mandará ningún email.

    • F.InitializeTrigger(0)

      Registra el documento dinámico para ser ejecutado siempre que se agrega o se modifica algún ticket

    • F.TriggerIfFieldsFilled(S.Campos.TicketsSoporte.ReferenciaPrioridad.ID)

      Comprueba que el campo de `Prioridad` del ticket esté rellenado

    • F.TriggerOnFieldChange(S.Campos.TicketsSoporte.ReferenciaPrioridad.ID)

      Comprueba si el valor del campo `Prioridad` ha cambiado respecto al valor anterior

    • If V.Ticket.ReferenciaPrioridad.Titulo = 'Crítica'

      Comprueba si el título de la `Prioridad` es el texto `Crítica`

  7. Ya que queremos que este documento sea enviado por email, hay que indicar el correo del emisor y del receptor

    Doc din autoejecutable email

    • F.MetaData_Set('email_origen', {texto})

      La ID del `email_origen` se obtiene siguiendo los pasos de Obtener la ID del email emisor

    • F.MetaData_Set('email_asunto', {texto})

      El asunto puede ser un texto fijo o con el uso de algunas variables

    • F.MetaData_Set('email_destino1', {texto})

      Puedes definir multiples `Destinatarios` de la siguiente manera

      F.MetaData_Set('email_destino1', V.Ticket.ReferenciaProyecto.ReferenciaEmpleadoPrincipal.IdentificadorAcceso) F.MetaData_Set('email_destino2', '[email protected]') F.MetaData_Set('email_destino3', '[email protected]')
  8. Por último nos quedará definir el cuerpo del mensaje, que será lo que reciba el receptor del email.

    Doc din autoejecutable cuerpo

Así quedaría el documento completo

<!--: F.Include(S.DocumentosDinamicos.Componentes.demoupemailcabecera.ID) :--> <!--: F.InitializeTrigger(0) F.TriggerIfFieldsFilled(S.Campos.TicketsSoporte.ReferenciaPrioridad.ID) F.TriggerOnFieldChange(S.Campos.TicketsSoporte.ReferenciaPrioridad.ID) If V.Ticket.ReferenciaPrioridad.Titulo <> 'Crítica' @ Emisor F.MetaData_Set('email_origen','9f029a3f-76f6-4271-ff92-d0cd38f95f90') F.MetaData_Set('email_asunto',F.Concat('Entrada de Ticket con prioridad "Crítica"')) @ Destinatarios F.MetaData_Set('email_destino1',V.Ticket.ReferenciaProyecto.ReferenciaEmpleadoPrincipal.IdentificadorAcceso) :--> <div class="header"> <h1>Ticket crítico </h1> </div> <div class="content"> <h2><!--: F.WriteText(V.Ticket.Contenido) :--></h2> <p> <b>Autor</b>: <!--: F.Write(V.Ticket.ReferenciaAutor.TextoPrincipal) :--> <br> <b>Proyecto</b>: <!--: F.Write(v.Ticket.ReferenciaProyecto.TextoPrincipal) :--> <br> <b>Fecha</b>: <!--: F.Write(v.Ticket.FechaDato) :--> <br> </p <hr> <b>Contenido</b><br> <p> <!--: F.Write(v.Ticket.Contenido) :--> </p> <br /><br /> <p> Atentamente, <br /> El equipo de Demoup </p> </div> <!--: End If F.Include(S.DocumentosDinamicos.Componentes.Demoupemailpie.ID) :-->
Last modified: 04 February 2025