Przejdź do głównej zawartości

Walidacja rekordów


Dla rekordu możesz użyć adnotację Reguły walidacyjne.

  1. W celu utworzenia operacji, należy dodać do rekordu, którego dane mają zostać poddane walidacji adnotację Reguły walidacyjne. Adnotacja ta daje możliwość tworzenia listy reguł walidacyjnych.
  2. Przejdź na panel Szczegóły aby zdefiniować reguły.

image

Każda reguła składa się z poniższych atrybutów:

  1. komunikat błędu – komunikat, który zostanie zapisany w rekordzie błędów (Errors),
  2. definicja reguły – opis reguły w języku programowania stosowanym w przetwarzaniu danych, więcej patrz: Język programowania
  3. waga reguły – Krytyczny, Ostrzegawczy, Inny.
  4. poziom błędu wyrażony w liczbie dodatniej, zwykle od 0 do 10. W przypadku wybrania wagi ‘Inny’ poziom można ustalić manualnie wedle potrzeby.

Podczas przetwarzania, dla każdego rekordu uruchamiane są wszystkie wyrażenia walidacyjne z listy i jeśli któreś z nich będzie prawdziwe, do rekordu danych zostanie podpięty rekord błędów (Errors) z odpowiednim komunikatem i poziomem błędu.

Dla przykładu:

  1. Utwórz pakiet przetwarzania, który pobiera dane z bazy danych i dodaj regułę walidacyjną na rekordzie Klient.
  2. W regule sprawdzane będzie czy dla danego klienta jest wypełnione pole Miejsce urodzenia: IsNullOrEmpty(KLIENT_MIEJSCE_URODZENIA)
  3. Zaznacz opcję Odrzucaj rekord.
  4. Wprowadź komunikat błędu. Aby odnieść się do pól ze schematu danych wprowadź je w nawiasach {}. W poniższym przykładzie w treści komunikatu będzie odpowiednie imię i nazwisko klienta w polach wprowadzonych w nawiasach {}.
  5. Wprowadź wagę błędu, tutaj jest to 101.

image

  1. Przy tak zdefiniowanej regule walidacji, podczas przetwarzania danych, rekord zostanie odrzucony jeżeli dany klient nie będzie miał wypełnionego pola Miejsce urodzenia. Po uruchomieniu pakietu, błędy widoczne są obok danego bloczka tam gdzie jest zdefiniowana reguła walidacji oraz na zakładce Raport. Treść komunikatu błędu jest wyświetlana według definicji wprowadzonej w regule walidacji.

image

Wyświetlenie komunikatu walidacyjnego na formularzu​

Jeżeli dany pakiet przetwarzania chcemy wywołać na formularzu, to możemy zwracać komunikat walidacyjny, taki co zdefiniowany został w regule walidacji w pakiecie przetwarzania.

  1. Dodaj akcję wywołania pakietu przetwarzania na formularzu.
  2. Przejdź do właściwości Definicja statusu końcowego.

image

  1. Domyślnie wprowadzone są tutaj 2 komunikaty dla ostrzeżenia oraz dla błędu, które będą wyświetlane w aplikacji końcowej jeżeli w pakiecie przetwarzania wystąpią błędy. Ważne jaka jest określona waga błędu czyli Poziom błędu- maksimum i Poziom błędu-minimum. Jeżeli nie wprowadzimy zmian to obydwa komunikaty zarówno błędu jak i ostrzeżenia będą prezentowane.

image

  1. Treść wyświetlanego komunikatu można zmienić we właściwości Komunikat zadania.
  2. W naszym przypadku chcemy wyświetlić własny komunikat, który został zdefiniowany w regule walidacji i dla wagi błędu 101.
  3. Aby uniemożliwić wyświetlanie pozostałych komunikatów błędu i ostrzeżenia należy zmienić wartości w polach Poziom błędu. Przykładowo wartość maksimum 5, lub jakakolwiek inna wartość, tak aby nie obejmowała wartości 101.

image

  1. Dodaj komunikat na podstawie komunikatu z reguły walidacyjnej.
  2. Wybierz przycisk Dodaj. Określ Status końcowy zadania oraz Poziom błędu-minimum. Poziom błędu należy określić taki aby obejmował ten poziom błędu jaki został podany w regule walidacyjnej (101).

image

  1. We właściwości Komunikat zadania wybierz jako sposób określenia Wyrażenie i przejdź do definiowania wyrażenia.
  2. Rozwiń rekord PkgResult i przeciągnij pole MaxErrorMessage, w którym znajduje się komunikat z reguły walidacyjnej z pakietu przetwarzania.

image

  1. Przy tak zdefiniowanym wyrażeniu w komunikacie będą także zwracane dane techniczne wraz z nazwą bloczka gdzie wystąpił błąd.

image

  1. Należy zmodyfikować wyrażenie tak, aby zwracany był tylko sam komunikat. Można to zrobić używając funkcji ReplaceRegexp, która zmienia dopasowanie danego wyrażenia regularnego na podaną wartość. W tym przypadku wszystko co znajduje sie po (...) zostanie wymienione na pusty napis.
  2. Całość wyrażenia powinna wyglądać w ten sposób: ReplaceRegexp(PkgResult\MaxErrorMessage, "\.\.\..\*","")

image

Zobacz również​

Pole XML (napis) z rekordu

Obrót listy pól do oddzielnych rekordów (UNPIVOT)

Pole w formacie stałopozycyjnym