Lavorare con il tempo nei trigger
  • 31 Oct 2023
  • 7 Minuti da leggere
  • Contributori

Lavorare con il tempo nei trigger


Article Summary

Panoramica

Molti aspetti delle operazioni si basano sulla verifica del tempo trascorso tra due eventi. Ecco come trovare questo tempo.

La verifica del tempo trascorso tra due timestamp è spesso un aspetto cruciale di qualsiasi processo.

Due timestamp possono determinare:

  • Un tempo di produzione specificato
  • Il tempo trascorso dall'esecuzione di un lotto
  • Il tempo trascorso dalla pulizia di un reattore.

L'aggiunta di una logica al tempo tra due Datetime può essere molto potente sia per la raccolta dei dati che per le azioni delle applicazioni.

Alcuni casi d'uso di questa funzionalità:

  • Controllo dell'intervallo di tempo tra le ispezioni
  • Scoprire quanto tempo è passato da quando un determinato prodotto è stato eseguito
  • Assicurare un programma di manutenzione.
  • Trovare il tempo tra due punti in un'app

Questa guida vi mostrerà come creare alcuni di questi scenari nella vostra applicazione, utilizzando una combinazione di trigger, tabelle e l'Expression Editor.

I tre esempi trattati sono:

  1. Calcolo del tempo tra i passaggi in due parti diverse di un'applicazione
  2. Controllare se un'ispezione di una macchina è stata effettuata nell'ultima settimana.
  3. Impostazione di una data obiettivo per un ordine di lavoro quando viene scansionato inizialmente in un'applicazione.

Intervalli utili da conoscere:

1 minuto: 60 secondi

1 ora: 3600 secondi

1 giorno: 86.400 secondi

1 settimana: 604.800 secondi

1 mese (30 giorni): 2.592.000 secondi

1 anno: 31.557.600 secondi

Esempio 1: Trovare il tempo tra due parti di un'applicazione (tempo di produzione)

In questo esempio mostreremo come calcolare la differenza tra due timestamp all'interno di un singolo utilizzo di un'applicazione.

Livello: Intermedio

Per questo esempio, è necessario avere una conoscenza di:

Nel punto di "partenza" desiderato per questo processo, aggiungete un'istruzione "Then" nell'Editor Trigger per catturare la data e l'ora correnti.

Manipolazione dei dati - Store - Informazioni sull'applicazione - Data e ora correnti - posizione: .

Al punto "Fine" desiderato di questa misurazione del tempo all'interno dell'applicazione, aggiungere un altro Trigger per catturare la data e l'ora correnti**.**

Oltre a catturare l'ora, è possibile aggiungere un trigger per trovare la differenza tra i due orari e memorizzarla in una variabile.

In questo esempio, entrambi i tempi vengono presi quando viene premuto un pulsante, ma sarebbe anche possibile catturare i tempi per la chiusura o l'apertura degli Steps, o quando i dispositivi sparano.

La differenza di tempo viene memorizzata in una variabile "Intervallo" in termini di numero totale di secondi tra i due orari.

Esempio 2: Controllo del tempo tra le ispezioni

Livello: Avanzato

Per questo esempio è necessario avere una conoscenza di:

Nell'esempio seguente, l'obiettivo dell'applicazione è controllare una tabella "Ispezione macchina" e determinare quando si è verificata l'ultima ispezione. Inoltre, se l'ispezione è superiore alla frequenza richiesta, l'applicazione indicherà all'utente di completare un'ispezione.

Collegamento della tabella:

La prima fase di questa applicazione richiede il caricamento di un record di tabella nell'applicazione. Pertanto, la tabella deve già esistere. La tabella potrebbe avere un aspetto simile a questo:

  • ID (testo)
  • Ultima ispezione (data e ora)
  • Frequenza di ispezione (intervallo)

Sopra, la tabella contiene sia l'ultima volta che la macchina è stata ispezionata, sia la frequenza di ispezione richiesta per ogni macchina.

Ora, alla tabella deve essere assegnato un segnaposto record nell'applicazione per verificare l'ispezione. A tale scopo, aggiungere un segnaposto record della tabella nell'applicazione. Si potrebbe dare un nome simile a questo:

Crea la variabile:

Ora che si è collegata la tabella corretta all'applicazione, è necessario creare una variabile per memorizzare la differenza dei due orari. La creazione di un tipo di dato "Interval" consentirà questa manipolazione. Per farlo, spostarsi nel riquadro contestuale dell'Editor app e selezionare app.

Nel riquadro contestuale, selezionare il simbolo sigma per creare una nuova variabile.

Nel riquadro delle variabili, creare una nuova variabile con il nome desiderato e selezionare il tipo "intervallo" dal menu a discesa. Questa variabile conterrà il risultato della sottrazione dei due orari che verranno manipolati.

Assicurarsi di selezionare "Aggiungi" e verificare che la variabile venga aggiunta all'elenco prima di chiuderlo.

Sopra, la variabile è denominata "ResultantTime" e segnerà la differenza tra i tempi. In questo esempio, si tratta del tempo trascorso tra l'ultima ispezione e l'ora attuale dell'applicazione.

Caricare il record della tabella

Per controllare il record di tabella appropriato, la tabella deve essere caricata con l'ID tabella corretto. In questo esempio, caricheremo un record in base al valore di un widget a discesa.

Si noti che il testo deve corrispondere esattamente all'ID della tabella per poter caricare il record corretto.

Il passo del modulo precedente consente all'utente di selezionare la macchina da controllare. È molto importante assicurarsi di aggiungere una variabile a questo campo, in questo caso MachineType, per aggiungere una logica al risultato.

Controllo della logica

Ora è il momento del controllo!

Questo modulo, quando viene inviato, deve verificare l'orario tra l'ora corrente dell'applicazione e il timestamp precedente della tabella.

Per fare ciò, è necessario aggiungere alcuni trigger di 'azione personalizzata' al pulsante di invio.

Innanzitutto, il pulsante deve caricare il record corretto della tabella:

Record della tabella - Carica record - per ID: Variabile - Tipo di macchina - in: Ispezione

Questa tabella viene caricata dinamicamente in base alla macchina selezionata nel passaggio del modulo, anziché creare diverse azioni per caricare determinate tabelle.

Successivamente, il pulsante di invio troverà il tempo tra ora e il timestamp nel record della tabella caricata. Nello stesso trigger, si potrebbe aggiungere qualcosa di simile:

Questa istruzione sottrarrà l'ora corrente dal timestamp precedente della tabella. Quindi salverà questa differenza di tempo come tipo di dato Intervallo, nella variabile creata all'inizio.

In un nuovo Trigger, la differenza tra i due timestamp determinerà un'azione per l'applicazione.

Ad esempio, se l'intervallo di tempo tra il momento e l'ultima ispezione è superiore alla frequenza necessaria, l'operatore deve ispezionare la macchina. In caso contrario, la macchina è a posto e non è necessario intervenire. L'aspetto potrebbe essere il seguente:

SE

Variabile - Tempo risultante - > - Registrazione tabella - Ispezione - Frequenza di ispezione

ALLORA

Vai al passo - Ispezione

In questo caso, il controllo assicura che se il tempo è stato eccessivo, l'ispezione deve essere eseguita di nuovo.

In caso contrario, l'applicazione può essere completata, poiché questa applicazione viene utilizzata per controllare ed eseguire le ispezioni.

L'istruzione Else, all'interno dello stesso Trigger, potrebbe avere un aspetto simile a questo:

ELSE SE

App - Annullamento dell'app

Mostra messaggio - Valore statico - testo - il vostro messaggio

Aggiornamento della tabella

Una volta completata l'ispezione, il record della tabella deve essere aggiornato per riflettere che l'ispezione è stata eseguita. A tale scopo, è meglio aggiungere un Trigger alla chiusura delle Fasi di ispezione. In questo modo, il record verrà aggiornato solo quando l'ispezione sarà stata completata.

Aggiungere un Trigger per salvare il nuovo tempo, come questo:

Manipolazione dati - Archivio - Informazioni sull'applicazione - Data e ora correnti - Record tabella - Ispezione - Ultima ispezione

Esempio 3- Impostazione della data di completamento di un ordine di lavoro

Supponiamo che un ordine di lavoro debba passare attraverso 10 operazioni distinte prima di essere completato.

Quando l'ordine di lavoro inizia con la prima delle 10 operazioni, è necessario creare una "Data di scadenza" che corrisponda alle aspettative del cliente. Supponiamo che la data di scadenza sia una settimana dopo l'inizio della prima operazione.

Per ottenere questo risultato in Tulip, è necessario aggiungere un Intervallo all'ora corrente per determinare l'ora di una settimana nel futuro.

Poi, si deve salvare questa "Data di scadenza" nella tabella "Ordini di lavoro". Ecco come fare.

Innanzitutto, è necessario creare una variabile che memorizzi il valore di 1 settimana nel futuro in un intervallo.

Andate alla finestra di dialogo Variabili nel riquadro contestuale e create una nuova variabile chiamata "next_7_days" con il tipo intervallo.

Quindi, impostare il suo valore predefinito a 604800 secondi, in questo modo. Questo è il numero di secondi in una settimana:

Successivamente, si creerà un record segnaposto per l'ordine di lavoro corrente e lo si caricherà nell'applicazione.

Dopo aver caricato il record, è possibile impostare il campo "Data di scadenza" utilizzando un'espressione:

  • "Manipolazione dati" "Memorizza" dati: "Espressione" "App Info-Data e ora corrente + Variabile.next_7_days" posizione: "Record tabella" "Ordine di lavoro corrente" "Data di scadenza"

Nell'istruzione di trigger qui sopra, aggiungiamo 7 giorni alla data e all'ora correnti per creare la data di scadenza.


Avete trovato quello che cercavate?

Potete anche andare su community.tulip.co per postare la vostra domanda o vedere se altri hanno affrontato una domanda simile!


Questo articolo è stato utile?