- Impresión
Trabajar con el tiempo en los Triggers
Resumen
Muchos aspectos de las operaciones dependen de la comprobación de la cantidad de tiempo que ha pasado entre dos eventos. He aquí cómo encontrar ese tiempo.
Comprobar el tiempo transcurrido entre dos marcas de tiempo es a menudo un aspecto crucial de cualquier proceso.
Dos marcas de tiempo pueden determinar
- Una hora de producción determinada
- El tiempo transcurrido desde la ejecución de un lote
- El tiempo transcurrido desde la limpieza de un reactor.
Agregar lógica al tiempo entre dos Datetime puede ser muy poderoso tanto para la recolección de datos, como para las Acciones de la aplicación.
Algunos casos de uso para esta funcionalidad:
- Comprobar el tiempo entre inspecciones
- Averiguar el tiempo que ha pasado desde que un determinado producto fue ejecutado
- Asegurar un programa de mantenimiento.
- Encontrar el tiempo entre dos puntos en una aplicación
Esta guía le mostrará cómo construir algunos de estos escenarios en su aplicación utilizando una combinación de triggers, tablas y el Editor de Expresiones.
Los tres ejemplos cubiertos son:
- Calcular el tiempo entre los pasos en dos partes diferentes de una aplicación
- Comprobar si se ha realizado una inspección de una máquina en la última semana
- Establecer una fecha objetivo para una orden de trabajo cuando se escanea inicialmente en una aplicación
Intervalos útiles de conocer:
1 minuto: 60 segundos
1 hora 3600 segundos
1 día 86.400 segundos
1 semana 604.800 segundos
1 mes (30 días) 2.592.000 segundos
1 año 31.557.600 segundos
Ejemplo 1: Encontrar el tiempo entre dos partes de una app (tiempo de producción)
En este ejemplo, mostraremos cómo calcular la diferencia entre dos marcas de tiempo dentro de un solo uso de una app.
Nivel: Intermedio
Para este ejemplo, usted debe tener una comprensión de:
En el punto de "Inicio" deseado para este proceso, añada una sentencia "Then" en el Editor de Expresiones para capturar la fecha y hora actuales.
Manipulación de datos - Tienda - Información de la aplicación - Fecha y hora actuales - ubicación: .
En el punto deseado de "Fin" de esta medición de tiempo dentro de la app, añada otro Trigger para capturar la fecha y hora actuales**.**
Además de capturar la hora, ahora también puede añadir el trigger para encontrar la diferencia entre las dos marcas de tiempo, y almacenarla en una Variable.
En este ejemplo, ambos tiempos se toman cuando se presiona un botón, pero también sería posible capturar los tiempos para cuando los Pasos se cierran o abren, o cuando los dispositivos se disparan.
La diferencia de tiempo se almacena en una variable "Intervalo" en términos de número total de segundos entre las dos marcas de tiempo.
Ejemplo 2 : Comprobación del tiempo entre inspecciones
Nivel: Avanzado
Para este ejemplo, debe tener conocimiento de:
En el siguiente ejemplo, el objetivo de la aplicación es revisar una Tabla de "Inspección de Máquinas", y determinar cuándo ocurrió la última inspección. Además, si la inspección es mayor que la frecuencia requerida, la aplicación dirigirá al usuario a completar una inspección.
Vinculación de la tabla:
El primer paso de esta aplicación requerirá que se cargue un Registro de Tabla en la aplicación. Por lo tanto, la tabla debe existir ya. La tabla podría tener un aspecto similar al siguiente
- ID (texto)
- Última inspección (marca de tiempo)
- Frecuencia de inspección (intervalo)
Arriba, la tabla contiene tanto la última vez que se inspeccionó la máquina, como la frecuencia de inspección requerida para cada máquina.
Ahora, la tabla debe recibir un marcador de posición de registro en la aplicación para comprobar la inspección. Haga esto añadiendo un marcador de posición de registro de la tabla en la app. Puede nombrarlo de la siguiente manera
Cree la variable:
Ahora que ha vinculado la tabla apropiada a la aplicación, necesitará crear una variable para almacenar la diferencia de las dos marcas de tiempo. La creación de un tipo de datos "Intervalo" permitirá esta manipulación. Puede hacerlo navegando por el panel de contexto del editor de aplicaciones y seleccionando la aplicación.
En el panel de contexto, seleccione el símbolo sigma para crear una nueva variable.
En el panel de variables, cree una nueva Variable con el nombre que desee, y seleccione el tipo "intervalo" en el menú desplegable. Tenga en cuenta que esta variable contendrá el resultado de la resta de las dos marcas de tiempo que serán manipuladas.
Asegúrese de seleccionar "Añadir", y asegúrese de que la variable se añade a la lista antes de cerrar.
Arriba, la variable se llama "ResultantTime", y marcará la diferencia entre los tiempos. En este ejemplo, esto anotará el tiempo entre la última inspección, y el tiempo actual de la aplicación.
Cargar el registro de la tabla
Para comprobar el registro de la tabla apropiado, la tabla debe ser cargada por el ID de tabla correcto. En este ejemplo, cargaremos un registro basado en el valor de un widget desplegable.
Tenga en cuenta que el texto tendrá que coincidir exactamente con el ID de la tabla para cargar adecuadamente el registro de la tabla correcto.
El paso del formulario anterior permite al usuario seleccionar qué máquina será comprobada. Es muy importante asegurarse de añadir una variable a este campo, en este caso MachineType, para añadir lógica al resultado.
Comprobación de la lógica
Ahora es el momento de la comprobación.
Este formulario, cuando se envía, debe comprobar el tiempo entre la hora actual de la aplicación, y la marca de tiempo anterior de la tabla.
Para hacer esto, necesitarás añadir algunos disparadores de "acción personalizada" al botón de envío.
En primer lugar, el botón debe cargar el registro correcto de la tabla:
Registros de la tabla - Cargar registro - por ID: Variable - Tipo de máquina - en: Inspección
Esta Tabla es cargada dinámicamente basada en la máquina seleccionada en el Paso de Forma, en lugar de crear varias acciones para cargar ciertas tablas.
Luego, el botón de envío encontrará el tiempo entre ahora, y la marca de tiempo en el registro de la tabla cargada. En el mismo trigger, podría añadir algo como esto
Esta sentencia restará la hora actual de la marca de tiempo anterior de la tabla. Luego guardará esta diferencia de tiempo como un tipo de dato Intervalo, en la Variable creada al principio.
En un nuevo Trigger, la diferencia entre las dos marcas de tiempo determinará una acción para la aplicación.
Por ejemplo, si el tiempo entre ahora y la última inspección es mayor que la frecuencia necesaria, el operador debe inspeccionar la máquina. Si no es así, la máquina está bien y no es necesario realizar ninguna acción. Esto podría ser algo así
SI
Variable - ResultantTime - > - Registro de la tabla - Inspección - Frecuencia de inspección
ENTONCES
Ir al paso - Inspección
Aquí, la comprobación asegura que si el tiempo ha sido demasiado grande, entonces la inspección debe realizarse de nuevo.
Si no es así, la aplicación puede terminar, ya que esta aplicación se utiliza para comprobar y realizar inspecciones.
Esta sentencia Else, dentro del mismo Trigger, podría tener el siguiente aspecto
ELSE IF
App - Cancelar App
Mostrar mensaje - Valor estático - texto - su mensaje
Actualización de la tabla
Una vez que la inspección ha sido completada, el Registro de la Tabla debe ser actualizado para reflejar que la inspección ha sido realizada. Para ello, lo mejor es añadir un Trigger al cierre de los Pasos de la inspección. De esta manera, el registro sólo se actualizará una vez que la inspección esté completamente hecha.
Agregue un Trigger para guardar el nuevo tiempo, así
Manipulación de Datos - Tienda - Información de la aplicación - Fecha y hora actuales - Registro de la tabla - Inspección - Última inspección
Ejemplo 3- Establecer la fecha de finalización de una orden de trabajo
Supongamos que una orden de trabajo debe pasar por 10 operaciones distintas antes de ser completada.
Cuando la orden de trabajo comienza en la primera de las 10 operaciones, es necesario crear una "Fecha de vencimiento" que se ajuste a las expectativas del cliente. Digamos que la fecha de vencimiento es 1 semana después de que se inicie la primera operación.
Para lograr esto en Tulip, usted necesitará agregar un Intervalo a la hora actual para determinar la hora de una semana en el futuro.
Luego, deberá guardar esa "Fecha de vencimiento" en su tabla de "Órdenes de trabajo". A continuación se explica cómo hacerlo.
Primero, necesita crear una Variable que almacene el valor de una semana en el futuro en un intervalo.
Vaya al diálogo de Variables en el Panel de Contexto, y cree una nueva variable llamada "next_7_days" con el tipo intervalo.
Luego, establezca su valor por defecto en 604800 segundos, así. Ese es el número de segundos de una semana:
A continuación, creará un marcador de posición de registro para la orden de trabajo actual, y cargará esa orden de trabajo en la aplicación.
Una vez cargado el registro, puede establecer el campo "Fecha de vencimiento" utilizando una Expresión:
- "Manipulación de datos" "Almacenar" datos: "Expresión" "App Info-Fecha y hora actuales + Variable.next_7_days" ubicación: "Registro de la tabla" "Orden de trabajo actual" "Fecha de vencimiento"
En la sentencia del trigger anterior, añadimos 7 días a la fecha y hora actuales para crear la fecha de vencimiento.
¿Ha encontrado lo que buscaba?
También puedes dirigirte a community.tulip.co para publicar tu pregunta o ver si otros se han enfrentado a una pregunta similar.