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 método OrderShippingAlertsSp a la hora especificada 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 existen suscriptores de la publicación, el método obtiene las direcciones de correo electrónico de los suscriptores, utilizando la dirección definida en el formulario Usuarios.
- Para cada suscriptor de la publicación, el método busca cualquier registro de envío de órdenes para ese cliente que se haya creado desde la última vez que se ejecutó el método. Introduce aquellos en una variable que se convertirá en el cuerpo del mensaje de un correo electrónico.
- El método da salida a 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 método DeleteCoShipTrackRowsSp borra la tabla TrackRows después de que la notificación por correo electrónico del envío de la orden se haya enviado correctamente.
El evento OrderShippingAlert tiene tres acciones:
- Llama a OrderShippingAlertsSp y devuelve dos variables: una para la lista de suscriptores y otra para el cuerpo del mensaje.
- Crea un correo electrónico y lo envía a la lista de suscriptores utilizando las variables transmitidas desde OrderShippingAlertsSp.
- 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.