Operator IF służy do warunkowego rozdzielania danych w magistrali na podstawie zadanych kryteriów logicznych. Analizuje każdy rekord magistrali wejściowej i sprawdza, czy spełnia warunek zdefiniowany przez użytkownika w konfiguracji operatora.
W zależności od wyniku:
Jeśli operator zostanie skonfigurowany tak, by rozdzielać dane w zależności od spełnienia warunku to:
Operator IF można stosować w szeregu, tworząc w ten sposób rozbudowane ścieżki logiczne (wielowariantowe), co pozwala na selektywne przetwarzanie danych w złożonych scenariuszach decyzyjnych.
Przykład projektu GRAVITY z użyciem operatora IF.
KONFIGURACJA OPERATORA
W pierwszym kroku musisz zdecydować czy chcesz aby operator działał w trybie Run only one busbas czy Split the data into two busbars.
Wybierz opcję Run only one busbar jeśli chcesz aby strumień danych został przekierowany tylko na jedną z magistral wyjściowych.
W przypadku gdy choć jeden rekord magistrali nie spełni warunku cały strumień danych zostanie przekierowany na dolną magistralę.
Jeśli wszystkie rekordy spełnią warunek dane zostaną przekierowane na górną magistralę.
<aside> <img src="/icons/info-alternate_red.svg" alt="/icons/info-alternate_red.svg" width="40px" /> W przypadku użycia opcji Run only one busbar system uruchomi tylko tą ścieżkę projektu połączoną z magistralą, na którą został przekierowany strumień danych.
</aside>
Wybierając opcję Run only one busbar możesz również użyć trybu Single execution, który zapewnia pojedyncze uruchomienie operatora. W trybie tym algorytm warunkowy nie może korzystać z bitów magistrali wejściowej. Możesz natomiast używać parametrów projektu i zmiennych globalnych.
Wybierz opcję Split the data into two busbars jeśli chcesz aby rekordy zostały rozdzielone na dwie magistrale w zależności od spełnienia warunku
Rekordy spełniające warunek zostaną przekierowane na magistralę górną pozostałe na dolną magistralę.
<aside> <img src="/icons/info-alternate_red.svg" alt="/icons/info-alternate_red.svg" width="40px" /> W przypadku użycia opcji Split the data into two busbars system zawsze uruchamia obie ścieżki przetwarzania niezależnie czy zostały na nie przekazane dane czy nie. Jako pierwsza zostanie uruchomiona ścieżka górna (true), a dopiero po zakończeniu przetwarzania całej ścieżki górnej zostanie uruchomiona dolna ścieżka (false).
</aside>
BUDOWA I TESTOWANIE WARUNKU
Operator przetwarza każdy rekord magistrali według warunku wpisanego w pole Condition. Warunek wpisywany jest w języku C# i jest ciałem funkcji, która zwraca wartość bool dlatego kod warunku musi zwracać wartość true lub false. W warunku możesz wykorzystać zarówno bity magistrali danych, parametry projektu, zmienne globalne oraz funkcje.
Dostępne funkcje: