Saltar al contenido

Regla de notificación para construir una tabla HTML a partir de una consulta dinámica

Introducción

Esta página proporciona un ejemplo de cómo enviar una notificación que contenga datos formateados en HTML.

El ejemplo considera el caso de uso de un negocio que necesita una aplicación para gestionar un proceso de aprobación de reinicio de servidor. La aplicación debe ser capaz de enviar un correo electrónico a cada gerente de sistema designado del servidor. Los servidores pueden tener más de un gerente designado. El correo electrónico debe contener una tabla HTML que muestre los servidores que se van a reiniciar.

Para configurar este ejemplo, sigue los pasos en cada sección.

Configurar la configuración de correo electrónico

Para configurar la configuración de correo electrónico de tu aplicación, sigue estos pasos:

  1. Configura el servidor SMTP:

    1. Selecciona IDE > Servidores de Notificación.
    2. Haz clic en el ícono abrir registro para la entrada SMTP. Se abre el diálogo Punto final de Notificación.
    3. En el campo Dirección del Remitente, ingresa la dirección de correo electrónico del remitente.
    4. En el campo Uri, ingresa la dirección de tu servidor SMTP, incluyendo el prefijo de protocolo (smtp:// o smtps://), y el sufijo del número de puerto (generalmente :587, pero también puede ser uno de :25, :465 o :2525).
    5. Expande la sección Seguridad.
    6. Ingresa las credenciales del servidor SMTP en los campos Nombre de Usuario y Contraseña.
    7. Expande la sección Pruebas.
    8. Ingresa direcciones de correo electrónico válidas en los campos De y Para, luego haz clic en el botón Probar Correo Electrónico. Esto envía un correo electrónico desde y hacia estas direcciones a través del servidor SMTP configurado.
    9. Cuando la prueba sea exitosa, cierra el diálogo Punto final de Notificación.
  2. Configura tu dirección de correo electrónico:

    1. Selecciona > Ver Perfil de Usuario. Se abre el diálogo Perfil de Usuario.
    2. En el campo Dirección de Correo Electrónico, ingresa una dirección de correo electrónico válida. (Esta es la dirección desde la cual parecen enviarse los correos electrónicos.)
    3. Presiona Enter, luego cierra el diálogo.
  3. Establece la URL del sitio predeterminado:

    1. Selecciona IDE > Proveedores de Seguridad.
    2. En el panel Configuración, selecciona Más > Sitios.
    3. Haz clic en el ícono abrir registro para la fila marcada como predeterminada. Se abre el diálogo Sitio.
    4. Haz clic en el botón Editar.
    5. En el campo URL, ingresa un valor para la URL de la aplicación.
    6. Haz clic en el botón Guardar.
    7. Cierra el diálogo.

Crear una aplicación

  1. Desde el menú del sitio, haz clic en el botón + App.
  2. En el campo Name, ingresa ServerOwners, luego haz clic en el botón Create App.

Nota

Si deseas usar una aplicación existente, selecciona el valor correcto para Source Data Source al configurar las reglas en esta página.

Crear tablas

Para configurar las tablas para este ejemplo, selecciona > App Workbench > Tables, luego utiliza los botones + Table y + Column para agregar las tablas y columnas en esta sección.

Importante

Para cada tabla, haz clic en el botón Publish to Business Layer, luego haz clic en el botón Publish to UI Layer, seleccionando los valores predeterminados Home para la ubicación del menú y Grid and Form para el tipo de panel.

Tabla: Servers

Esta tabla almacena los detalles de tus servidores:

Nombre de columna Tipo de dato Clave
primaria
Clave
foránea
Requerido
ServerID ID único
ServerName Cadena
ServerLocation Cadena
(Opcional) Detalles adicionales sobre el servidor según sea necesario.

Tabla de servidores

Tabla: Owners

Esta tabla almacena los detalles de las personas responsables de los servidores:

Nombre de columna Tipo de dato Clave
primaria
Clave
foránea
Requerido
OwnerID ID único
OwnerName Cadena
OwnerEmailAddress Correo electrónico
(Opcional) Detalles adicionales sobre los propietarios según sea necesario.

Tabla de propietarios

Tabla ServerOwners

Esta tabla conecta propietarios con servidores:

Nombre de columna Tipo de dato Clave
primaria
Clave
foránea
Requerido
ServerOwnerID ID único
ServerID ID único
OwnerID ID único

Tabla ServerOwners

Consejo

Para esta tabla, selecciona la pestaña Columnas, luego haz clic en el ícono en la columna FK para agregar las claves foráneas.

Agregar datos de ejemplo

Para agregar datos de ejemplo, haz lo siguiente:

  1. Desde el App Workbench, haz clic en el ícono Configuración de la app para ejecutar la app.

  2. En la página de Inicio de la app, para cada uno de Propietarios, Servidores y Propietarios de Servidores, selecciona la opción, haz clic en el botón Crear, luego agrega suficientes entradas para que el ejemplo tenga sentido para ti. Por ejemplo:

    Datos de ejemplo de propietarios

    Datos de ejemplo de servidores

    Datos de ejemplo de ServerOwners

Crear reglas

Regla: ServerOwners (Subconsulta)

Esta regla de subconsulta devuelve los datos en la regla ServerOwners (Regla de Negocio), con la adición de los nombres de propietarios y servidores:

  1. Crear la regla:

    1. Abre tu app, luego selecciona > App Workbench > Reglas.

    2. Haz clic en el botón + Regla.

    3. En el panel Regla en la página Constructor de Reglas, establece los siguientes valores:

      • Nombre: ServerOwners (Subconsulta)
      • Propósito: Subconsulta
      • Fuente de Datos: ServerOwners
      • Objetivo: ServerOwners
    4. Haz clic en el botón Crear (o presiona Control+S).

  2. Agregar tablas:

    • Propietarios:

      1. En la pestaña Tablas, haz clic en el botón + Tablas. Se abre un diálogo.
      2. Haz clic en el botón Agregar en la entrada de Propietarios. El diálogo se cierra.
    • Servidores:

      1. Haz clic en el botón + Tablas.
      2. Haz clic en el botón Agregar en la entrada de Servidores.
  3. Seleccionar columnas: Selecciona las siguientes columnas:

    • OwnerName en la tabla Propietarios.
    • ServerName en la tabla Servidores.
    • ServerOwnerID en la tabla ServerOwners.

      Regla de subconsulta ServerOwners

  4. Verificar la regla:

    1. Haz clic en el botón Validar.
    2. (Opcional) Verifica los resultados de la regla en la pestaña Resultados:

      Resultados de la regla de subconsulta ServerOwners

Regla: ServerOwnersTable (Subconsulta)

Esta regla de subconsulta produce el HTML utilizado en la notificación del cuerpo.

  1. Crear la regla:

    1. Selecciona > App Workbench > Reglas.
    2. Haz clic en el botón + Regla.
    3. En el panel Regla en la página Constructor de Reglas, establece los siguientes valores:

      • Nombre: ServerOwnersTable (Subconsulta)
      • Propósito: Subconsulta
      • Fuente de Datos: ServerOwners
      • Objetivo: ServerOwners
    4. Haz clic en el botón Crear.

  2. Agregar tablas:

    • ServerOwners (Subconsulta):

      1. Haz clic en el botón + Tablas.
      2. Haz clic en el botón Agregar para la regla de ServerOwners (Subconsulta).
  3. Unir tablas: Arrastra y suelta la columna ServerOwnerID de ServerOwners a la misma columna en ServerOwners (Subconsulta).

  4. Seleccionar columnas: Selecciona todas las columnas en la regla de ServerOwners (Subconsulta):

    Regla de subconsulta ServerOwnersTable

  5. Agregar columnas:

    1. Columna count:

      1. Haz clic en el botón + Columna.
      2. En el panel Columna o Expresión, ingresa lo siguiente:

        count(1)
        
      3. Haz clic en el botón Guardar.

    2. Columna TableHeader:

      1. Haz clic en el botón + Columna.
      2. En el panel Columna o Expresión, ingresa lo siguiente:

        '<table><tbody><tr><td>Propietario del Servidor</td><td>Nombre del Servidor</td></tr>'
        
      3. En el campo Alias, ingresa TableHeader.

      4. Haz clic en el botón Guardar.
    3. Columna TableBody:

      1. Haz clic en el botón + Columna.
      2. En el panel Columna o Expresión, ingresa lo siguiente:

        GroupConcat('<tr><td>' || SOS.OwnerName || '</td><td>' || SOS.ServerName || '</td></tr>','')
        
      3. En el campo Alias, ingresa TableBody.

      4. Haz clic en el botón Guardar.
    4. Columna TableClose:

      1. Haz clic en el botón + Columna.
      2. En el panel Columna o Expresión, ingresa lo siguiente:

        '</table><div>&nbsp;</div> <div>Gracias,</div> <div>Equipo del Servidor</div>'
        
      3. En el campo Alias, ingresa TableClose.

      4. Haz clic en el botón Guardar.
    5. Columna TableStyle:

      1. Haz clic en el botón + Columna.
      2. En el panel Columna o Expresión, ingresa lo siguiente:

        '<style>table, th, td { border: 1px solid black; border-collapse: collapse; }</style>'
        

        Nota

        Esto proporciona un estilo mínimo para la tabla.

      3. En el campo Alias, ingresa TableStyle.

      4. Haz clic en el botón Guardar.

        ServerOwnersTable

  6. Verificar la regla:

    1. Haz clic en el botón Validar.
    2. (Opcional) Verifica los resultados de la regla en la pestaña Resultados:

      ServerOwnersTable results

Regla: ServerOwners (Notificación)

Esta regla genera la notificación enviada a los propietarios del servidor.

  1. Crear la regla:

    1. Selecciona > App Workbench > Notificaciones.
    2. Haz clic en el botón + Notificación.
    3. En el panel Regla en la página Constructor de Reglas, establece los siguientes valores:

      • Nombre: ServerOwners (Notificación)
      • Propósito: Notificación
      • Método de Entrega: Email

        Consejo

        Mientras pruebas, o cuando no tengas un servidor SMTP, establece el Método de Entrega en Alerta de App Builder.

    4. Haz clic en el botón Crear.

  2. Agregar tablas:

    • ServerOwnersTable (Subconsulta):

      1. Haz clic en el botón + Tablas.
      2. Haz clic en el botón Agregar para la entrada ServerOwnersTable (Subconsulta).
    • ServerOwners (Objeto de Negocio):

      1. Haz clic en el botón + Tablas.
      2. Haz clic en el botón Agregar para la entrada ServerOwners (Objeto de Negocio).
    • Owners (Objeto de Negocio):

      1. Haz clic en el botón + Tablas.
      2. Haz clic en el botón Agregar para la entrada Owners (Objeto de Negocio).
  3. Unir tablas: Arrastra y suelta la columna ServerOwnerID de ServerOwnersTable (Subconsulta) a la misma columna en ServerOwners (Objeto de Negocio).

    Consejo

    La unión OwnerID entre ServerOwners (Objeto de Negocio) y Owners (Objeto de Negocio) se realiza automáticamente.

  4. Agregar columnas:

    1. Columna To():

      1. Selecciona la pestaña Columnas.
      2. Haz clic en el botón + Columna.
      3. En el panel Columna o Expresión, ingresa lo siguiente:

        OBO.OwnerEmailAddress
        
      4. En el campo Alias, ingresa OwnerEmail.

      5. Abre el menú Destino, luego selecciona To().
      6. Haz clic en el botón Guardar.
    2. Columna Binding():

      1. Haz clic en el botón + Columna.
      2. En el panel Columna o Expresión, ingresa lo siguiente:

        SOBO.ServerOwnerID
        
      3. Abre el menú Destino, luego selecciona Binding().

      4. Haz clic en el botón Guardar.
    3. Columna Table:

      1. Haz clic en el botón + Columna.
      2. En el panel Columna o Expresión, ingresa lo siguiente:

        GroupConcat(SOTS.TableStyle || SOTS.TableHeader || SOTS.TableBody || SOTS.TableClose, '')
        
      3. En el campo Alias, ingresa Table.

      4. Haz clic en el botón Guardar.

        ServerOwners (Notification) columns

    4. Verifica la regla:

      1. Haz clic en el botón Validar.
      2. (Opcional) Verifica los resultados de la regla en la pestaña Resultados:

        ServerOwners (Notification) results

Prueba

  1. (Opcional) Ejecuta la aplicación, selecciona la página Owners, luego verifica que las direcciones de correo electrónico de los propietarios sean válidas.
  2. Selecciona > App Workbench > Notifications.
  3. En el panel Reglas de Notificación, selecciona ServerOwners (Notification). (Esto ya está seleccionado si es la única regla de notificación.)
  4. En el panel Mensaje, haz clic en el botón Editar.
  5. En el campo Asunto, ingresa tu elección de asunto.
  6. En el panel de edición del Cuerpo, ingresa lo siguiente:

    {{Table|HTML}}
    
  7. Haz clic en el botón Guardar.

  8. Haz clic en el botón Probar, luego haz clic en el botón Continuar.
  9. Verifica tu bandeja de entrada de correo electrónico para el mensaje. (Si estás probando con una Alerta de App Builder, aparece un mensaje emergente que contiene el cuerpo del mensaje.)