Avisar de envío de orden - Controlador de eventos de flujo de trabajo
Cuando una orden se envía a una compañía y un usuario del portal que pertenece a dicha compañía se ha suscrito a las alertas de órdenes de envío, este controlador de eventos envía una notificación acerca de este envío a este usuario.
Cuando el controlador de eventos esté activado, se creará un nuevo activador de eventos para la alerta con el objetivo de controlar la planificación de las notificaciones de correo electrónico para esta alerta. De forma predeterminada, las notificaciones sobre el envío de órdenes se envían todos los días las 3 p.m. (Puede cambiar los valores predeterminados asociados con la programación del evento en el formulario Activadores de eventos restableciendo la condición, el intervalo de condición y activando los valores de restablecimiento de intervalo en el formulario.
Una vez que el controlador de eventos se ha activado y se ha creado el activador de eventos OrderShippingAlert, el sistema utiliza una tabla TrackRows para guardar una lista de los envíos que necesitan que se envíe una notificación (en función de si el cliente tiene suscriptores a la alerta de envío de órdenes) y actualiza la lista cada vez que se envía una orden.
Detalles técnicos
El activador de eventos ejecuta el procedimiento OrderShippingAlertsSp almacenado a una hora concreta cada día. Realiza las siguientes tareas:
- Comprueba los suscriptores de publicación de la alerta de envío de órdenes, en función del número de cliente. Encontrará a los suscriptores de publicación en el formulario Suscriptores Publicación, usando Nombre de publicación = 'OrderShippingAlert' y la tecla Valor = número de cliente.
- Si hay suscriptores de publicación, el procedimiento almacenado obtiene sus direcciones de correo electrónico mediante la dirección definida en el formulario Usuarios.
- Para cada suscriptor de publicación, el procedimiento almacenado encuentra cualquier registro de envío de órdenes de dicho cliente que se haya creado desde que el procedimiento almacenado se ejecutó por última vez. Introduce aquellos en una variable que se convertirá en el cuerpo del mensaje de un correo electrónico.
- El procedimiento almacenado devuelve estos valores:
- Una lista de suscriptores almacenados en una variable.
- Un cuerpo de mensaje para el correo electrónico de la alerta de envío de órdenes.
Un cuerpo de mensaje de correo electrónico debe contener solo una orden y sus líneas/artículos por correo electrónico. La capacidad del cuerpo del mensaje es de unos 4.000 caracteres (40 líneas aproximadamente). Si el cuerpo del mensaje creado tiene más de 4.000 caracteres se creará otro correo electrónico con el resto de líneas/artículos que no entraron en el correo electrónico anterior.
El procedimiento almacenado DeleteCoShipTrackRowsSp borra la tabla TrackRows una vez que la notificación por correo electrónico de envío de la orden se envía correctamente.
El evento OrderShippingAlert tiene tres acciones:
- Tipo acción: Método de llamada a base de datos Llama a OrderShippingAlertsSp y devuelve dos variables: una para la lista de suscriptores y otra para el cuerpo del mensaje.
- Tipo acción: Enviar correo electrónico Crea un correo electrónico y lo envía a la lista de suscriptores utilizando las variables transmitidas desde OrderShippingAlertsSp.
- Tipo acción: Método de llamada a base de datos Llamadas DeleteCoShipTrackRowsSp. Se le llama únicamente si el correo electrónico generado en la acción anterior se ha enviado correctamente.
Estos valores predeterminados se usan para programar el activador de eventos OrderShippingAlert:
- Condición: CONDITION(DATEPART(hour, CURDATETIME()) = 15)
- Intervalo de restablecimiento de la condición: 60
- Intervalo de restablecimiento del activador: 85.500
- Programa: Se inicia todos los días a las 3 p. m. El activador entra en estado de suspensión durante 23 ¾ horas y, a continuación, se activa y realiza comprobaciones cada minuto hasta que vuelven a ser las 15:00.