Komendy warunkowe i pętle w triggerach

4 min read

Triggery w programie bs4 core mogą zawierać komendy sterujące przebiegiem wykonywania operacji. Pozwalają one między innymi:

  • wykonywać komendy tylko po spełnieniu określonych warunków,
  • wielokrotnie powtarzać wybrane operacje,
  • przetwarzać kolejne elementy tablicy,
  • pomijać część instrukcji w bieżącym przebiegu pętli,
  • kończyć wykonywanie pętli.

Komendy te można umieszczać wewnątrz siebie, tworząc bardziej rozbudowane mechanizmy automatyzacji.

1. Komenda „if” #

Komenda „if” służy do warunkowego wykonywania innych komend.

Zawiera ona wyrażenie logiczne, którego wynik może przyjąć jedną z dwóch wartości:

  • true – warunek jest spełniony,
  • false – warunek nie jest spełniony.

Jeżeli wynik wyrażenia wynosi true, trigger wykonuje komendy umieszczone wewnątrz komendy „if”. Jeżeli wynik wynosi false, komendy te są pomijane.

1.1. Budowa komendy #

Komenda „if” ma postać klocka przypominającego literę C. Wewnątrz tego klocka należy umieścić wszystkie komendy, które mają zostać wykonane po spełnieniu warunku.

1.2. Definiowanie warunku #

Po dodaniu komendy „if” należy ją sparametryzować.

W tym celu należy:

  1. Otworzyć parametry komendy.
  2. Przejść do zakładki „Warunki formuła”.
  3. Zbudować wyrażenie, które ma zostać sprawdzone przez program.

Wyrażenie powinno zwracać wartość true albo false.

1.3. Elementy dostępne podczas budowania formuły #

Podczas tworzenia warunku można korzystać między innymi z:

  • operatora and,
  • operatora or,
  • operatora not,
  • nawiasów,
  • operatora równości,
  • operatorów „mniejsze niż” i „większe niż”,
  • operatora „różne od”,
  • działań matematycznych:
    • dodawania,
    • odejmowania,
    • mnożenia,
    • dzielenia,
  • wartości liczbowych,
  • zmiennych triggera.

W formule można zatem łączyć wartości stałe, obliczenia oraz wartości przechowywane w zmiennych triggera.

Program udostępnia również inne elementy, które mogą zostać wykorzystane podczas budowania bardziej rozbudowanych wyrażeń.

2. Komenda „while” #

Komenda „while” służy do wielokrotnego wykonywania określonego zestawu komend tak długo, jak zdefiniowany warunek pozostaje prawdziwy.

Ma ona taki sam kształt jak komenda „if”. Komendy przeznaczone do wielokrotnego wykonania umieszcza się wewnątrz klocka „while”.

2.1. Sposób działania #

Przed każdym kolejnym wykonaniem pętli program sprawdza zdefiniowane wyrażenie.

  • Jeżeli wyrażenie zwraca true, komendy znajdujące się wewnątrz pętli są wykonywane.
  • Po ich wykonaniu warunek jest sprawdzany ponownie.
  • Jeżeli wyrażenie zwróci false, wykonywanie pętli zostaje zakończone.

2.2. Definiowanie warunku #

Podobnie jak w przypadku komendy „if”, po dodaniu komendy „while” należy przejść do zakładki „Warunki formuła” i zdefiniować wyrażenie logiczne sterujące działaniem pętli.

Należy upewnić się, że podczas wykonywania pętli wartości wykorzystywane w warunku będą się zmieniały. W przeciwnym przypadku warunek może przez cały czas pozostawać prawdziwy, a pętla nie zostanie zakończona.

3. Komenda „foreach” #

Komenda „foreach” służy do wykonywania tego samego zestawu operacji dla każdego elementu znajdującego się w zmiennej triggerowej typu tablica.

3.1. Wymagania #

Aby użyć komendy „foreach”, w triggerze musi być wcześniej zdefiniowana zmienna:

  • typu tablica,
  • zawierająca jeden lub więcej elementów.

Podczas parametryzowania komendy „foreach” należy wskazać tę zmienną.

3.2. Sposób działania #

Komendy umieszczone wewnątrz „foreach” są wykonywane osobno dla każdej wartości znajdującej się w wybranej tablicy.

W kolejnych przebiegach pętli komenda „foreach” przyjmuje wartość kolejnych elementów tablicy. Dzięki temu komendy umieszczone wewnątrz pętli mogą odwoływać się do aktualnie przetwarzanego elementu.

Pojedynczy przebieg pętli dla jednego elementu nazywany jest iteracją.

3.3. Przykład #

Załóżmy, że zmienna triggerowa zawiera tablicę kontrahentów pobranych z bazy danych.

Po wskazaniu tej zmiennej w komendzie „foreach” trigger może kolejno:

  1. pobrać pierwszego kontrahenta,
  2. wykonać dla niego komendy umieszczone wewnątrz pętli,
  3. przejść do następnego kontrahenta,
  4. powtarzać operacje aż do przetworzenia wszystkich kontrahentów.

Wewnątrz pętli można odwoływać się do komendy „foreach”, aby uzyskać dane aktualnie przetwarzanego kontrahenta.

4. Komenda „if – jeśli pole obiektu związanego z triggerem ma wartość” #

Jest to specjalna odmiana komendy „if”, przeznaczona do sprawdzania wartości konkretnego pola obiektu powiązanego z wykonywanym triggerem.

Komenda działa podobnie do standardowego „if”, ale nie wymaga budowania dowolnego wyrażenia logicznego.

Podczas jej parametryzowania należy wskazać pole obiektu, którego wartość ma zostać sprawdzona.

Obiekt musi być powiązany z aktualnie wykonywanym triggerem.

Komenda może być wykorzystywana na przykład wtedy, gdy dalsze operacje powinny zostać wykonane wyłącznie w przypadku, gdy określone pole rekordu zostało uzupełnione.

5. Komenda „if + else” #

Komenda „if + else” jest rozszerzoną wersją komendy „if”. Pozwala zdefiniować dwa różne zestawy operacji:

  • komendy wykonywane, gdy warunek jest prawdziwy,
  • komendy wykonywane, gdy warunek jest nieprawdziwy.

Komenda zawiera dwie sekcje.

5.1. Sekcja „if” #

W tej części należy umieścić komendy wykonywane, gdy zdefiniowane wyrażenie zwróci wartość true.

5.2. Sekcja „else” #

W tej części należy umieścić komendy wykonywane, gdy zdefiniowane wyrażenie zwróci wartość false.

Podczas jednego wykonania komendy uruchamiana jest tylko jedna z tych sekcji.

6. Komenda „for” #

Komenda „for” służy do wielokrotnego wykonania zestawu komend umieszczonych wewnątrz pętli.

W przeciwieństwie do komendy „foreach” liczba wykonań nie wynika z liczby elementów tablicy. Jest określana bezpośrednio w parametrach pętli.

6.1. Liczba powtórzeń #

Podczas parametryzowania komendy można określić liczbę powtórzeń na dwa sposoby:

  • wpisać stałą wartość liczbową,
  • wskazać liczbową zmienną triggerową zawierającą liczbę powtórzeń.

6.2. Wartość początkowa #

Można również wskazać zmienną triggerową, z której zostanie pobrana wartość początkowa licznika pętli.

Przykładowo:

  • jedna zmienna triggerowa może zawierać wartość początkową 5,
  • druga zmienna triggerowa może określać liczbę powtórzeń, na przykład 10.

Pętla rozpocznie działanie od wartości 5, a jej licznik będzie zwiększany przy kolejnych powtórzeniach.

6.3. Odczytywanie aktualnej wartości licznika #

Wewnątrz pętli można odwoływać się do komendy „for”, aby uzyskać aktualną wartość licznika.

Pozwala to wykorzystać numer bieżącej iteracji podczas wykonywania komend znajdujących się w pętli.

7. Komenda „continue” – przejdź do następnego #

Komenda „continue” może być używana wewnątrz pętli.

Jej zadaniem jest przerwanie bieżącej iteracji i przejście do następnego przebiegu pętli.

Po wykonaniu komendy „continue” trigger:

  1. pomija wszystkie dalsze komendy znajdujące się w bieżącej iteracji,
  2. przechodzi do kolejnego elementu lub kolejnego przebiegu pętli.

Komenda może być wykorzystywana w pętlach takich jak:

  • „foreach”,
  • „while”,
  • „for”.

Przykładowe zastosowanie #

Jeżeli pętla przetwarza listę kontrahentów, a jeden z kontrahentów nie spełnia określonego warunku, komenda „continue” może pominąć dalsze operacje dla tego kontrahenta i przejść do następnego.

8. Komenda „break” – opuść pętlę #

Komenda „break” służy do natychmiastowego zakończenia wykonywania bieżącej pętli.

Po jej wykonaniu trigger:

  1. przerywa aktualną iterację,
  2. nie wykonuje kolejnych iteracji,
  3. przechodzi do komend znajdujących się za zakończoną pętlą.

Komenda „break” może być stosowana, gdy dalsze wykonywanie pętli nie jest już potrzebne, na przykład po odnalezieniu poszukiwanego elementu.

9. Różnica pomiędzy „continue” i „break” #

Komendy te mają odmienne działanie:

  • „continue” pomija pozostałe komendy tylko w bieżącej iteracji, ale pętla nadal jest wykonywana;
  • „break” całkowicie kończy wykonywanie pętli.

Przykładowo, jeżeli pętla przetwarza dziesięć elementów:

  • użycie „continue” przy trzecim elemencie spowoduje pominięcie dalszych operacji dla trzeciego elementu i przejście do czwartego;
  • użycie „break” przy trzecim elemencie spowoduje zakończenie całej pętli – elementy od czwartego do dziesiątego nie zostaną przetworzone.

10. Podsumowanie #

Komendy warunkowe i pętle pozwalają sterować kolejnością oraz zakresem operacji wykonywanych przez trigger.

Najważniejsze komendy to:

  • „if” – wykonuje komendy po spełnieniu warunku;
  • „while” – wykonuje komendy tak długo, jak warunek jest prawdziwy;
  • „foreach” – wykonuje komendy dla każdego elementu tablicy;
  • „if – jeśli pole obiektu związanego z triggerem ma wartość” – sprawdza konkretne pole obiektu powiązanego z triggerem;
  • „if + else” – wybiera jeden z dwóch zestawów komend;
  • „for” – wykonuje komendy określoną liczbę razy;
  • „continue” – przechodzi do następnej iteracji pętli;
  • „break” – kończy wykonywanie pętli.
Updated on 1 sierpnia, 2026

What are your feelings

  • Happy
  • Normal
  • Sad