Ejemplo de Notificación Que Utiliza una Consultar Dinámica para Insertarla en una Tabla HTML
Este artículo proporciona una descripción general sobre cómo utilizar una consulta dinámica para insertar información en una tabla HTML en una regla de notificación en App Builder hay varios pasos involucrados para lograr este resultado, y el artículo hace las siguientes suposiciones sobre su App Builder ambiente:
- Ejecutar SQL 2017+, necesario para utilizar el
String_Agg()
Función - Existen tablas y datos en la capa de datos para respaldar este escenario
- Comprensión básica de la configuración de la regla de notificación
Nota
Durante la fase de prueba de despliegue de esta (o cualquier regla de notificación), recomendamos utilizar una dirección de correo de prueba como valor Para() en la notificación hasta que funcione correctamente.
Caso de Uso Empresarial
Una empresa quiere utilizar an App Builder aplicación para gestionar un proceso de aprobación en relación con los reinicios de servidores. Como parte de los requisitos, deben enviar una notificación correo que contenga una lista de servidores a los respectivos propietarios de los servidores en un momento específico. Buscan comprender cómo usar una regla de notificación para que funcione de manera dinámica para cada propietario de servidor.
Por ejemplo:
Hay 20 servidores en total. Mary figura como propietaria de 15 servidores. John figura como propietario de los 5 servidores restantes. Un servidor puede tener varios propietarios, por lo que John también es el propietario compartido de 2 de los servidores de Mary, lo que suma un total de 7. Mary debería recibir un correo con sus 15 servidores y John debería recibir un correo con sus 7 servidores (5 de los cuales él es el propietario más los dos de los cuales Mary y John son propietarios compartidos).
La capa empresarial contiene una vista existente con toda la información necesaria para la tabla (por ejemplo, propietarios de cada servidor, direcciones de correo).
Cómo Configurar en App Builder
- Cree una regla de subconsulta que devuelva 1 registro para cada instancia de un propietario del servidor y el servidor. Incluya las columnas ServerOwnerID, ServerOwner, ServerName
-
Lleve la subconsulta a una nueva regla de subconsulta y agregue la columna Server OwnerID (o equivalente). Agregue una nueva expresión para hacer una
count(1)
Luego, agregue las siguientes expresiones adicionales que crearán la tabla HTML:TableBody
${String_AGG('<tr> <td>' + Subquery.ServerOwner + '</td> <td>' + Subquery.ServerName + '</td> </tr>','')}
Encabezado de tabla
'<div> </div><table class="requests"> <tbody> <tr> <td>Server Owner</td> <td>ServerName</td> </tr>'
Cerrar tabla
'</table><div> </div> <div>Thanks,</div> <div>Server Team</div>'
Ejemplo de pestaña Columnas para subconsulta
-
Cree una nueva regla de notificación. Incorpore la subconsulta que creó con la estructura de la tabla.
- Une la subconsulta a la tabla que contiene la lista de propietarios de servidores y sus direcciones de correo.
- Agregue la dirección de correo y diríjala al campo Para().
-
Agregue una nueva expresión para CSS para ayudar a estilizar. Alias como CSS. Ejemplo CSS:
'<style> .requests { font-size: 14px; line-height: 20px; font-weight: 400; -webkit-font-smoothing: antialiased; font-smoothing: antialiased; margin: 0 0 40px 0; width: 50%; box-shadow: 0 1px 3px rgba(0,0,0,0.2); display: table; border-collapse: collapse; border: 1px solid black; } .requests tr:first-child { font-weight: 900; background: #D3D3D3; } .requests th { border: 1px solid black; } .requests tr { border: 1px solid black; } .requests td { padding: 6px 12px; border: 1px solid black; } </style>'
-
Agregue las columnas de encabezado, cuerpo y cierre de la tabla. Cree una nueva expresión que las concatene:
{{Encabezado de tabla}} || {{CuerpoDeTabla}} || {{Cerrar tabla}} || {{CSS}}
y Alias como tabla.Ejemplo de pestaña Columnas para regla de notificación
-
Desde la pantalla App Workbench > Notificaciones puede modificar y probar aún más la regla de notificación. En este punto del ejemplo, ahora puede agregar
{{Tabla|HTML}}
al cuerpo. Puede agregar cualquier otro mensaje que necesite incluir. En este ejemplo, sustituiremos el nombre del empleado e incluiremos un enlace de enlace:Ejemplo de pantalla de notificación