Praca z czasem w wyzwalaczach
  • 13 May 2024
  • 6 Minuty do przeczytania
  • Współtwórcy

Praca z czasem w wyzwalaczach


Streszczenie artykułu

Przegląd

Wiele aspektów operacji polega na sprawdzaniu czasu, jaki upłynął między dwoma zdarzeniami. Oto jak znaleźć ten czas.

Sprawdzanie czasu, jaki upłynął między dwoma znacznikami czasu, jest często kluczowym aspektem każdego procesu.

Dwa znaczniki czasu mogą określać:

  • określony czas produkcji
  • Czas, który upłynął od uruchomienia partii
  • Czas, który upłynął od czyszczenia reaktora.

Dodanie logiki do czasu między dwiema datami może być bardzo przydatne zarówno do gromadzenia danych, jak i akcji aplikacji.

Kilka przypadków użycia tej funkcjonalności:

  • Sprawdzanie czasu między inspekcjami
  • Sprawdzanie, ile czasu minęło od uruchomienia danego produktu
  • Zapewnienie harmonogramu konserwacji.
  • Znajdowanie czasu między dwoma punktami w aplikacji

W tym przewodniku pokażemy, jak zbudować kilka z tych scenariuszy w aplikacji przy użyciu kombinacji wyzwalaczy, tabel i edytora wyrażeń.

Omówione zostaną trzy przykłady:

  1. Obliczanie czasu między krokami w dwóch różnych częściach aplikacji
  2. Sprawdzanie, czy inspekcja maszyny miała miejsce w ciągu ostatniego tygodnia
  3. Ustawianie daty docelowej dla zlecenia pracy, gdy jest ono początkowo skanowane w aplikacji.

Przydatna wiedza na temat interwałów:

1 minuta: 60 sekund

1 godzina: 3600 sekund

1 dzień: 86 400 sekund

1 tydzień: 604 800 sekund

1 miesiąc (30 dni): 2 592 000 sekund

1 rok: 31 557 600 sekund

Przykład 1: Znajdowanie czasu między dwiema częściami aplikacji (czas produkcji)

W tym przykładzie pokażemy, jak obliczyć różnicę między dwoma znacznikami czasu w ramach jednego użycia aplikacji.

Poziom: Średnio zaawansowany

Dla tego przykładu, powinieneś mieć wiedzę na temat:

W żądanym punkcie początkowym tego procesu dodaj instrukcję "Then" w edytorze wyzwalaczy, aby przechwycić bieżącą datę i godzinę.

Manipulacja danymi - Sklep - Informacje o aplikacji - Bieżąca data i godzina - lokalizacja: .

W żądanym punkcie "End" tego pomiaru czasu w aplikacji, dodaj kolejny wyzwalacz, aby przechwycić bieżącą datę i godzinę**.**

Oprócz przechwytywania czasu można również dodać wyzwalacz, aby znaleźć różnicę między dwoma znacznikami czasu i zapisać ją w zmiennej.

W tym przykładzie oba czasy są pobierane po naciśnięciu przycisku, ale możliwe byłoby również przechwytywanie czasów zamykania lub otwierania kroków lub uruchamiania urządzeń.

Różnica czasu jest przechowywana w zmiennej "Interval" pod względem całkowitej liczby sekund między dwoma znacznikami czasu.

Przykład 2: Sprawdzanie czasu między inspekcjami

Poziom: Zaawansowany

Dla tego przykładu, powinieneś mieć wiedzę na temat:

W poniższym przykładzie celem aplikacji jest sprawdzenie tabeli "Machine Inspection" i określenie, kiedy miała miejsce ostatnia inspekcja. Ponadto, jeśli inspekcja jest większa niż wymagana częstotliwość, aplikacja skieruje użytkownika do przeprowadzenia inspekcji.

Łączenie tabeli:

Pierwszy krok w tej aplikacji będzie wymagał załadowania rekordu tabeli do aplikacji. Dlatego tabela musi już istnieć. Tabela może wyglądać mniej więcej tak:

  • ID (tekst)
  • Ostatnia inspekcja (znacznik czasu)
  • Częstotliwość inspekcji (interwał)

Powyższa tabela zawiera zarówno informacje o ostatniej kontroli urządzenia, jak i wymaganą częstotliwość kontroli dla każdego urządzenia.

Teraz tabela musi otrzymać symbol zastępczy rekordu w aplikacji, aby sprawdzić inspekcję. W tym celu należy dodać symbol zastępczy rekordu tabeli w aplikacji. Można go nazwać w następujący sposób:

Create the Variable:

Teraz, gdy połączyłeś odpowiednią tabelę z aplikacją, musisz utworzyć zmienną do przechowywania różnicy dwóch znaczników czasu. Utworzenie typu danych "Interval" pozwoli na tę manipulację. Można to zrobić, przechodząc do panelu kontekstowego edytora aplikacji i wybierając aplikację.

W okienku kontekstowym wybierz symbol sigmy, aby utworzyć nową zmienną.

W panelu zmiennych utwórz nową zmienną o dowolnej nazwie i wybierz typ "interval" z menu rozwijanego. Należy pamiętać, że ta zmienna będzie przechowywać wynik odejmowania dwóch znaczników czasu, które będą manipulowane.

Upewnij się, że wybrałeś opcję "Dodaj" i upewnij się, że zmienna została dodana do listy przed jej zamknięciem.

Powyżej zmienna nosi nazwę "ResultantTime" i będzie oznaczać różnicę między czasami. W tym przykładzie będzie to czas między ostatnią inspekcją a bieżącym czasem aplikacji.

Załaduj rekord tabeli

Aby sprawdzić odpowiedni rekord tabeli, tabela musi być załadowana przez prawidłowy identyfikator tabeli. W tym przykładzie załadujemy rekord na podstawie wartości widżetu rozwijanego.

Należy pamiętać, że tekst będzie musiał dokładnie odpowiadać identyfikatorowi tabeli, aby odpowiednio załadować prawidłowy rekord tabeli.

Powyższy krok formularza pozwala użytkownikowi wybrać, które urządzenie zostanie sprawdzone. Bardzo ważne jest, aby dodać zmienną do tego pola, w tym przypadku MachineType, aby dodać logikę do wyniku.

Sprawdzanie logiki

Teraz nadszedł czas na sprawdzenie!

Ten formularz, po przesłaniu, powinien sprawdzić czas między bieżącym czasem aplikacji a poprzednim znacznikiem czasu z tabeli.

Aby to zrobić, będziesz musiał dodać kilka wyzwalaczy "niestandardowych akcji" do przycisku przesyłania.

Po pierwsze, przycisk musi załadować prawidłowy rekord tabeli:

Table Records - Load Record - by ID: Variable - MachineType - into: Inspection

Ta tabela jest ładowana dynamicznie w oparciu o wybraną maszynę w kroku formularza, zamiast tworzenia kilku akcji w celu załadowania określonych tabel.

Następnie przycisk przesyłania znajdzie czas między chwilą obecną a znacznikiem czasu w załadowanym rekordzie tabeli. W tym samym trigerze można dodać coś takiego:

Ta instrukcja odejmie bieżący czas od poprzedniego znacznika czasu tabeli. Następnie zapisze tę różnicę czasu jako typ danych Interval do zmiennej utworzonej na początku.

W nowym wyzwalaczu różnica między dwoma znacznikami czasu określi akcję dla aplikacji.

Na przykład, jeśli czas między chwilą obecną a ostatnią inspekcją jest większy niż wymagana częstotliwość, operator musi sprawdzić maszynę. Jeśli nie, maszyna jest w porządku i nie trzeba podejmować żadnych działań. Może to wyglądać mniej więcej tak:

IF

Variable - ResultantTime - > - Table Record - Inspection - Inspection Frequency

WTEDY

Przejdź do kroku - Inspekcja

W tym przypadku sprawdzenie zapewnia, że jeśli czas był zbyt długi, inspekcja musi zostać przeprowadzona ponownie.

Jeśli tak nie jest, aplikacja może zostać ukończona, ponieważ służy ona do sprawdzania i przeprowadzania inspekcji.

Ta instrukcja Else, w ramach tego samego wyzwalacza, może wyglądać mniej więcej tak:

ELSE IF

Aplikacja - Anuluj aplikację

Pokaż wiadomość - wartość statyczna - tekst - wiadomość

Aktualizacja tabeli

Po zakończeniu inspekcji rekord tabeli powinien zostać zaktualizowany, aby odzwierciedlić, że inspekcja została przeprowadzona. Aby to zrobić, najlepiej jest dodać wyzwalacz do zamknięcia kroków inspekcji. W ten sposób rekord zostanie zaktualizowany dopiero po zakończeniu inspekcji.

Dodaj wyzwalacz, aby zapisać nowy czas, jak poniżej:

Data Manipulation - Store - App Info - Current Date and Time - Table Record - Inspection - Last Inspected.

Przykład 3- Ustawienie docelowej daty ukończenia zlecenia roboczego

Załóżmy, że zlecenie pracy musi przejść przez 10 oddzielnych operacji, zanim zostanie ukończone.

Gdy zlecenie pracy rozpoczyna się od pierwszej z 10 operacji, należy utworzyć "Termin realizacji", aby dopasować go do oczekiwań klienta. Załóżmy, że termin upływa 1 tydzień po rozpoczęciu pierwszej operacji.

Aby to osiągnąć w Tulip, należy dodać Interwał do bieżącego czasu, aby określić czas na tydzień w przyszłości.

Następnie należy zapisać tę datę w tabeli "Zlecenia pracy". Oto jak to zrobić.

Najpierw należy utworzyć zmienną, która przechowuje wartość dla 1 tygodnia w przyszłości w przedziale.

Przejdź do okna dialogowego Variables w panelu kontekstowym i utwórz nową zmienną o nazwie "next_7_days" z typem interval.

Następnie ustaw jej wartość domyślną na 604800 sekund, jak poniżej. Jest to liczba sekund w tygodniu:

Następnie utwórz symbol zastępczy rekordu dla bieżącego zlecenia i załaduj to zlecenie do aplikacji.

Po załadowaniu rekordu można ustawić pole "Termin płatności" za pomocą wyrażenia:

  • "Manipulacja danymi" "Przechowuj" dane: "Expression" "App Info-Current Date and Time + Variable.next_7_days" location: "Rekord tabeli" "Bieżące zlecenie pracy" "Termin płatności"

W powyższej instrukcji wyzwalacza dodajemy 7 dni do bieżącej daty i godziny, aby utworzyć termin płatności.


Czy znalazłeś to, czego szukałeś?

Możesz również udać się na stronę community.tulip.co, aby opublikować swoje pytanie lub sprawdzić, czy inni mieli do czynienia z podobnym pytaniem!


Czy ten artykuł był pomocny?