- Impresión
Trabajar con el tiempo en los desencadenadores
Visión general
Muchos aspectos de las operaciones dependen de la comprobación del tiempo transcurrido entre dos eventos. He aquí cómo encontrar ese tiempo.
Comprobar el tiempo transcurrido entre dos marcas de tiempo suele ser 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:
- Comprobación del tiempo entre inspecciones
- Averiguar cuánto tiempo ha pasado desde que se puso en marcha un producto determinado
- 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 pasos en dos partes diferentes de una app
- Comprobación de 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
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 aplicación (tiempo de producción)
En este ejemplo, mostraremos cómo calcular la diferencia entre dos marcas de tiempo dentro de un mismo uso de una app.
Nivel: Intermedio
Para este ejemplo, usted debe tener una comprensión de:
En el punto "Starting" deseado para este proceso, añada una sentencia "Then" en el Editor de Triggers 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 "Fin" deseado de esta medición de tiempo dentro de la aplicación, añada otro activador para capturar la fecha y hora actuales**.**
Además de capturar la hora, ahora también puede añadir el disparador para encontrar la diferencia entre las dos marcas de tiempo, y almacenarla en una Variable.
En este ejemplo, ambos tiempos se toman cuando se pulsa un botón, pero también sería posible capturar tiempos para cuando los Pasos se cierran o se 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, usted debe tener una comprensión de:
En el siguiente ejemplo, el objetivo de la aplicación es revisar una Tabla de "Inspección de Máquinas", y determinar cuando ocurrió la última inspección. Además, si la inspección es mayor a la frecuencia requerida, la aplicación le indicará al usuario que complete una inspección.
Vinculación de la tabla:
El primer paso en esta aplicación requerirá que un Registro de Tabla sea cargado en la aplicación. Por lo tanto, la tabla ya debe existir. La tabla podría tener este aspecto
- 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, hay que dar a la tabla un Marcador de Posición de Registro en la aplicación para comprobar la inspección. Para ello, añada un marcador de posición de registro de la tabla en la app. Puede nombrarlo de esta manera
Crear la Variable:
Ahora que has vinculado la Tabla apropiada a la app, necesitarás crear una variable para almacenar la diferencia de las dos marcas de tiempo. Crear un tipo de dato "Intervalo" permitirá esta manipulación. Para ello, vaya al panel contextual del Editor de aplicaciones y seleccione aplicación.
En el Panel Contextual, 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 se manipularán.
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 tabla apropiado, la tabla debe cargarse con 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 el registro correcto.
El paso del formulario anterior permite al usuario seleccionar qué máquina se comprobará. 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 ello, tendrá que 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 tabla - Cargar registro - por ID: Variable - MachineType - into: 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 enviar encontrará el tiempo entre ahora, y la marca de tiempo en el registro de la tabla cargada. En el mismo disparador, podría agregar 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 operario debe inspeccionar la máquina. En caso contrario, la máquina está bien y no es necesaria ninguna acción. Esto podría ser algo así
SI
Variable - ResultantTime - > - Registro de 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 finalizar, ya que esta aplicación se utiliza para comprobar y realizar inspecciones.
Esta sentencia Else, dentro del mismo Trigger, podría tener este 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 forma, el registro sólo se actualizará una vez que la inspección se haya realizado por completo.
Añada un Trigger para guardar la nueva hora, como este:
Manipulación de Datos - Almacenar - Información de la Aplicación - Fecha y Hora Actual - Registro de la Tabla - Inspección - Última Inspección
Ejemplo 3- Establecer la fecha objetivo de finalización de una orden de trabajo
Supongamos que una orden de trabajo debe pasar por 10 operaciones distintas antes de ser finalizada.
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 del inicio de la primera operación.
Para lograr esto en Tulip, 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 "Órdenes de trabajo". He aquí cómo hacerlo.
Primero, necesita crear una Variable que almacene el valor para 1 semana en el futuro en un intervalo.
Vaya al diálogo Variables en el Panel Contextual, y cree una nueva variable llamada "next_7_days" con tipo intervalo.
A continuación, 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" mediante una expresión:
- "Manipulación de Datos" "Almacenar" datos: "Expresión" "App Info-Fecha y Hora Actual + Variable.next_7_days" ubicación: "Registro de tabla" "Orden de trabajo actual" "Fecha de vencimiento"
En la sentencia 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 puede dirigirse a community.tulip.co para publicar su pregunta o ver si otras personas se han enfrentado a una pregunta similar.