Obsługa błędów
6.1 Jak proces kończy się błędem
Dział zatytułowany „6.1 Jak proces kończy się błędem”Gdy krok się nie powiedzie, proces zatrzymuje się i zgłasza błąd. Błąd wędruje w górę, do procesu, który go wywołał. Jeśli nikt go nie obsłuży, cały proces kończy się błędem.
6.2 Celowe zgłoszenie błędu
Dział zatytułowany „6.2 Celowe zgłoszenie błędu”Zamówienie bez pozycji nie ma sensu. W CalculateOrderTotal dodaj If: czy w Lines jest więcej niż 0 pozycji? Przenieś istniejące aktywności i kontenery do gałęzi „tak”. W drugiej gałęzi dodaj RaiseError z komunikatem, np. “Order has no lines”. RaiseError zatrzymuje proces z Twoim własnym komunikatem.
6.3 Przechwytywanie błędu
Dział zatytułowany „6.3 Przechwytywanie błędu”W PlaceOrder dodaj CatchError. Próbuje wykonać swoje kroki (po lewej, blok try), a gdy któryś się nie powiedzie, przejmuje sterowanie (po prawej, blok catch).
- Nazwij zmienną błędu (fault): błąd trafia do niej i można go odczytać.
- Przenieś
ExecuteProcessiSetVariable Status = "Placed"do bloku try. - Skopiuj
SetVariable Statusdo bloku catch i ustaw wartość “Rejected”.
Błędne zamówienie dostaje teraz status Rejected, zamiast wywracać cały proces.
6.4 Przechwytywanie tylko niektórych błędów
Dział zatytułowany „6.4 Przechwytywanie tylko niektórych błędów”Blok catch może łapać dowolny błąd albo tylko błędy z określonym kontekstem. Bloków catch może być kilka. Są sprawdzane po kolei i wygrywa pierwszy pasujący, więc szczegółowe umieść na początku, a ogólny na końcu.