B Komunikaty narzędzia tok

Każdy komunikat ma kod, poziom (błąd, ostrzeżenie, uwaga) i numer wiersza. tok check --lang pl wypisuje je po polsku, a --json w postaci dla programów. W treści komunikatów w nawiasach klamrowych są miejsca, w które narzędzie wstawia identyfikatory i wartości z modelu.

Znaki i wiersze (T)

Kod Poziom Komunikat
T001 błąd niepoprawny znak lub tekst: {detail}
T002 błąd tabulator we wcięciu; używaj spacji
T003 błąd wcięcie nie pasuje do żadnego otwartego bloku

Instrukcje (P)

Kod Poziom Komunikat
P001 błąd nieznane słowo kluczowe „{word}”
P002 błąd „{keyword}” wymaga identyfikatora
P003 błąd „{keyword}” nie może mieć wciętego bloku
P004 błąd „{keyword}” nie może wystąpić w bloku {context}
P005 błąd dokument musi zaczynać się nagłówkiem, na przykład „tok 1.0”
P006 ostrzeżenie nieznana wersja języka {version}; to narzędzie czyta wersje 0.1, 0.3, 0.5, 0.6, 0.7 i 1.0
P007 błąd niepoprawny atrybut w pobliżu „{near}”
P008 błąd niepoprawny wiersz {keyword}: {detail}
P009 błąd niepoprawny wiersz tabeli decyzyjnej: {detail}
P010 błąd drugi nagłówek dokumentu

Odwołania i struktura (R)

Kod Poziom Komunikat
R001 błąd identyfikator „{id}” jest już użyty w wierszu {other}
R002 błąd nieznany element ({rodzaj}): „{id}”
R003 błąd „{id}” to {actual}, a tu wymagany jest element: {rodzaj}
R004 błąd identyfikator „{id}” może zawierać tylko litery ASCII, cyfry, „_” i „-”
R010 ostrzeżenie nieznany atrybut „{key}” w elemencie {kind}
R011 błąd nieznana flaga „{flag}” w elemencie {kind}
R012 błąd zdarzenie może mieć tylko jeden wyzwalacz ({triggers})
R013 błąd „{key}” wymaga: {requirement}
R020 błąd wiersz flow z etykietą lub atrybutami musi mieć dokładnie jedną strzałkę
R021 błąd przepływ sekwencji {source} -> {target} przekracza granicę procesu lub podprocesu
R022 błąd przepływ komunikatów {source} -> {target} musi łączyć dwa różne baseny
R030 błąd „{id}” leży w basenie z liniami, ale poza liniami
R031 błąd „{id}” zadeklarowano poza basenem, a dokument ma baseny; przenieś go do basenu
R032 błąd zdarzenie graniczne „{id}” wymaga on=CZYNNOŚĆ
R040 błąd „{keyword}” nie jest dostępne na poziomie {level}

Tabele decyzyjne (D)

Kod Poziom Komunikat
D001 błąd decyzja „{id}” nie ma wiersza nagłówka
D002 błąd reguła ma {got} komórek, a nagłówek {expected}
D003 błąd nieznana polityka trafień „{hit}”
D004 błąd komórka nagłówka „{cell}” musi mieć postać „nazwa: typ” (string, number, boolean, date)
D005 ostrzeżenie decyzja „{id}” nie ma reguł
D010 ostrzeżenie reguły {a} i {b} mogą pasować jednocześnie, np. {example} (polityka unique)

Formularze (M)

Kod Poziom Komunikat
M001 błąd nieznany typ pola „{type}”
M002 błąd pole „{id}” typu {type} wymaga options=“wartość:Etykieta, …”

Wyrażenia FEEL (F)

Kod Poziom Komunikat
F001 ostrzeżenie wyrażenie FEEL spoza obsługiwanego podzbioru: {detail_pl}
F002 błąd błąd składni FEEL: {detail_pl}

Symulacja (S)

Kod Poziom Komunikat
S001 błąd niepoprawny rozkład „{text}”: {detail}
S002 ostrzeżenie prawdopodobieństwa przepływów z „{id}” sumują się do {total}, a nie do 1
S003 ostrzeżenie bramka „{id}” nie ma ani warunków, ani prawdopodobieństw; symulator wybierze pierwszy przepływ

Model wykonywalny (C)

Sprawdzane, gdy nagłówek albo basen ma flagę executable. Kody są takie same jak w trybie --camunda skryptu bpmn.py z kursu „Modelowanie procesów informacyjnych”.

Kod Poziom Znaczenie
C011 uwaga zadanie użytkownika bez formularza (form=)
C020 błąd zadanie usługowe albo wysyłania bez type= (typ zadania dla workera)
C030 błąd zadanie reguły biznesowej bez decision=
C040 błąd zadanie skryptowe bez expr=
C052 błąd oczekiwanie na wiadomość bez correlation=
C070 błąd wyjście z bramki xor/or bez when= i bez flagi default

Elementy BPMN 2.0.2 spoza Camunda 8 (język 0.5)

Dotyczą dokumentów z nagłówkiem tok 0.5: transakcji, bramki złożonej, pętli standardowej, zdarzeń wielokrotnych, instancjonowania, danych procesu, zadań globalnych, interfejsów i kluczy korelacji. Poziomy basic i analytic odrzucają te elementy (R040).

Kod Poziom Znaczenie
R060 błąd zdarzenie anulowania poza transakcją albo nieprzerywające zdarzenie graniczne anulowania
R061 błąd while=, test-before albo loop-max= bez flagi loop; loop-max nie jest liczbą całkowitą
R062 błąd niedozwolone połączenie wyzwalaczy; flaga parallel na zdarzeniu, które nie przechwytuje, albo z jednym wyzwalaczem
R063 błąd element instantiate z wejściem, w podprocesie albo na elemencie innym niż zadanie odbioru i bramka oparta na zdarzeniach
R064 ostrzeżenie czynność odczytuje i zapisuje obiekt danych w tym samym stanie
R065 błąd czynność wywołania ma jednocześnie process= i task=; niedozwolony kind= zadania globalnego
R066 błąd nieznany element w type=, task= albo operation=; trzeba go zadeklarować (item, global, operation)
C100–C108 błąd w modelu wykonywalnym element, którego Camunda 8.10 nie wykonuje: transakcja, zdarzenie anulowania, bramka złożona, pętla standardowa, zdarzenie wielokrotne, start od zadania odbioru albo bramki, wywołanie zadania globalnego
C109, C110 ostrzeżenie operacja i klucz korelacji, które Camunda 8.10 pomija (workery pobierają zadania według type=, wiadomości koreluje correlation=)

Konwersacje, choreografie, krotność uczestników i klasy zgodności (język 0.6)

Dotyczą dokumentów z nagłówkiem tok 0.6. Poziomy basic i analytic odrzucają te instrukcje (R040).

Kod Poziom Znaczenie
R070 błąd konwersacja łączy mniej niż dwa różne baseny; basen spoza podkonwersacji; błędne map=
R071 błąd przepływ komunikatów wskazany w messages= nie łączy dwóch basenów tej konwersacji
R072 błąd zadanie choreografii bez from= i to= (dwóch różnych basenów); podchoreografia bez pools= albo from=; wywołanie bez choreography=; błędne map=
R073 błąd w choreografii element inny niż zdarzenie, bramka albo czynność choreografii; niedozwolony wyzwalacz; choreografia bez elementów
R074 błąd krotność uczestnika (min=, max=) nie spełnia warunku 0 <= min <= max i max >= 1
R075 błąd element wykracza poza klasę zgodności BPMN wybraną w tok check --class
C120, C121, C123 ostrzeżenie konwersacja, wywołanie konwersacji albo krotność uczestnika w modelu wykonywalnym: Camunda 8.10 je pomija
C122 błąd choreografia w modelu wykonywalnym: Camunda 8.10 jej nie wykonuje

Diagramy wymagań decyzyjnych i wyrażenia ramkowe (język 0.7)

Dotyczą dokumentów z nagłówkiem tok 0.7: danych wejściowych (inputdata), źródeł wiedzy (source), modeli wiedzy biznesowej (bkm), decyzji wymagających innych elementów (requires=) i wyrażeń ramkowych.

Kod Poziom Znaczenie
R076 błąd wymagania tworzą cykl: element wymaga samego siebie
R077 błąd element ma więcej niż jedną postać logiki (expr=, invoke=, tabela, wpisy, elementy listy) albo atrybut nie pasuje do jego logiki
R078 błąd niepoprawny element listy w params= albo with=; with= wskazuje nieistniejący parametr
R079 ostrzeżenie wyrażenie używa nazwy elementu, którego decyzja nie wymaga; dodaj go do requires=
R080 błąd ta sama nazwa użyta dwa razy w diagramie, w jednym kontekście albo wśród parametrów funkcji
R081 błąd nieznany typ albo item będący jednocześnie typem BPMN i typem DMN
D006 błąd polityka priority albo output-order bez wartości wyników w nagłówku tabeli
D007 błąd aggregation= bez hit=collect, nieznana agregacja albo tabela z kilkoma wynikami
D008 błąd wiersz relacji ma inną liczbę komórek niż relacja kolumn
D009 błąd komórka nagłówka nie ma postaci nazwa: typ albo nazwa: typ = wartości
C130–C132 błąd w modelu wykonywalnym: model wiedzy biznesowej z wywołaniem, funkcja o treści innej niż wyrażenie literalne, decyzja bez logiki — Camunda 8.10 ich nie wykona

W modelach wykonywalnych (executable) eksport do DMN zapisuje nazwy ze spacjami i znakami specjalnymi w odwrotnych apostrofach (`Zaległe opłaty`), tak jak wymaga tego silnik FEEL Camundy.

Język 1.0 i granice zagnieżdżenia

Nagłówek tok 1.0 oznacza język stabilny: tę samą treść co tok 0.7, z obietnicą, że każdy poprawny dokument w wersji 1.0 pozostanie poprawny i będzie zapisywany tak samo we wszystkich wydaniach 1.x. Dokumenty z wcześniejszymi nagłówkami (tok 0.1–tok 0.7) zachowują znaczenie i wyniki.

Kod Poziom Znaczenie
P005 błąd wersja w nagłówku nie jest liczbą, np. tok v1.0
P006 ostrzeżenie nieznana wersja języka, np. tok 1 albo tok 1.1 (wersja musi mieć część po kropce)
P008 błąd bloki zagnieżdżone głębiej niż 64 poziomy
P010 błąd drugi nagłówek dokumentu
R090 ostrzeżenie ten sam atrybut albo znacznik podany w wierszu więcej niż raz; liczy się tylko ostatnia wartość (tylko w dokumentach tok 1.0)
F002 błąd wyrażenie FEEL zagnieżdżone głębiej niż 160 poziomów: „wyrażenie jest zbyt głęboko zagnieżdżone”

Reguły BPMN 2.0 (E, W, L)

Gdy model przejdzie powyższe kontrole, tok eksportuje go do BPMN 2.0 i sprawdza tym samym walidatorem, którego używa skrypt bpmn.py. Kody i komunikaty są identyczne.

Kod Poziom Problem
E005 błąd przepływ sekwencji bez końców albo łączący dane, basen lub adnotację
E006 błąd przepływ sekwencji między basenami albo do wnętrza podprocesu
E008 błąd przepływ komunikatów w obrębie jednego basenu (między liniami ma być flow)
E009 błąd przepływ komunikatów do bramki, danych lub zdarzenia innego niż wiadomość
E010 błąd wyzwalacz niedozwolony w tym miejscu
E011 błąd wejście do zdarzenia początkowego lub wyjście ze zdarzenia końcowego
E012 błąd błędne zdarzenie graniczne (na bramce, z wejściem, błąd nieprzerywający)
E013 błąd podproces zdarzeniowy z przepływami albo bez startu z wyzwalaczem
E015 błąd przepływ domyślny z warunkiem
E016 błąd po bramce opartej na zdarzeniach stoi coś innego niż zdarzenie przechwytujące lub zadanie odbioru
E017 błąd warunek lub przepływ domyślny na bramce równoległej
E030 błąd element w dwóch liniach
L020 uwaga nazwa bramki rozgałęziającej nie jest pytaniem
L021 uwaga bramka jednocześnie scala i rozgałęzia
L030 uwaga zadanie bez nazwy
W010 ostrzeżenie zdarzenie czasowe bez określenia czasu
W020 ostrzeżenie zbędna bramka (jedno wejście, jedno wyjście)
W021 ostrzeżenie gałąź rozgałęzienia XOR/OR bez etykiety, warunku i statusu domyślnego
W022 ostrzeżenie gałąź bez warunku przy elemencie, który rozgałęzia się warunkowo (ma przepływ domyślny albo inne gałęzie mają warunki)
W023 ostrzeżenie przepływ powtarza inny przepływ (to samo źródło, cel i warunek)
W031 ostrzeżenie element bez linii
W040 ostrzeżenie proces bez zdarzenia początkowego lub końcowego
W041 ostrzeżenie element nieosiągalny ze startu
W042 ostrzeżenie ścieżka bez zdarzenia końcowego
W043 ostrzeżenie przepływ z elementu z powrotem do niego samego
W044 ostrzeżenie czynność lub zdarzenie z kilkoma przepływami wychodzącymi bez warunku (niejawne rozgałęzienie: wykonają się wszystkie)
W045 ostrzeżenie podproces bez zdarzenia początkowego
W046 ostrzeżenie podproces bez zdarzenia końcowego
W047 ostrzeżenie zdarzenie z kilkoma wyzwalaczami (zdarzenie wielokrotne), które lintery bpmn.io zgłaszają jako błąd
W050 ostrzeżenie rozgałęzienie OR bez przepływu domyślnego
W051 ostrzeżenie złączenie innego typu niż rozwidlenie
W052 ostrzeżenie zdarzenie graniczne eskalacji/błędu na podprocesie, którego nic wewnątrz nie rzuca
W053 ostrzeżenie rzucona eskalacja, której nic nie łapie
W054 ostrzeżenie zadanie lub zdarzenie wiadomości bez przepływu komunikatów w modelu z kilkoma basenami