Alerta de órdenes de envío retrasadas - Controlador de eventos del flujo de trabajo
Cuando una orden se envía tarde y un usuario móvil se ha suscrito a las alertas de órdenes de envío retrasadas de un cliente concreto, este controlador de eventos envía una notificación acerca de este envío al 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 cuando el controlador se activa y en las 24 horas siguientes. (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 existen suscriptores a la alerta de envío de órdenes retrasadas) y actualiza la lista cada vez que se envía una orden retrasada.
El activador de eventos ejecuta el procedimiento LateOrderShippingAlertsSp 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 retrasadas, 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 retrasadas 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 retrasadas.
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.
Evento asociado y procedimientos almacenados
El evento LateOrderShippingAlert tiene tres acciones:
- Tipo acción: Llamar al método de la base de datos: llama a LateOrderShippingAlertsSp y devuelve dos variables: una para la lista de suscriptores y otra par 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 LateOrderShippingAlertsSp.
- Tipo acción: Llamar al método de la base de datos: llama a DeleteCoShipTrackRowsSp. Se le llama únicamente si el correo electrónico generado en la acción anterior se ha enviado correctamente.
Activador de eventos
- Condición: TRUE
- Intervalo de restablecimiento de la condición: 86400
- Intervalo de restablecimiento del activador: 86400
- Programa: Se inicia cuando se activa el controlador. 24 horas después se inicia el activador.