API Walidatorów skryptowych

Przykładowy kod walidatora

Poniżej znajduje się przykładowy kod, który pokazuje w jaki sposób można korzystać z wejścia oraz jak należy zwrócić dane:

function callService(context) {
    let input1 = context.getFirstParameter("input1");
    if (input1 === "api") {
        return [{
                'key': 'pl.error',
                'parameters': [input1, "parametr {0} jest błędny"]
            }
            ];
    } else if (input1 != null && input1 !== "") {
        return [{
                'key': 'pl.error',
                'parameters': [input1, "inny hardcode parameter"]
            }];
    } else {
        return [];
    }
}

Wejście do walidatora skryptowego

Jako wejście (parametr context w powyższym kodzie) znajduje się obiekt, który udostępnia następujące metody:

  • List<String> getParameters(final String name) - pobiera konkretną listę z mapy danych wejściowych,

  • String getFirstParameter(final String name) - pobiera pierwszy element z konkretnej listy z mapy danych wejściowych lub zwraca wartość "null",

  • String getFirstParameter(final String name, final String defaultIfEmpty) - pobiera pierwszy element z konkretnej listy z mapy danych wejściowych, a jeśli go nie ma lub jest pusty to zwraca wartość "defaultIfEmpty",

  • Map<String, List<String>> getInputParameters() - zwraca całą mapę danych wejściowych, którą przechowuje,

  • String isVisible(final String id) - pobiera informację, czy komponent o wskazanym id jest widoczny,

  • String getValue(final String id) - pobiera wartość komponentu (również zmiennej sesyjnej) o wskazanym id,

  • String getData(final String id, final String attribute) - pobiera wartość konkretnego atrybutu dla komponentu o wskazanym id (UWAGA! Możliwe do pobrania atrybuty są zależne od komponentu),

  • List<Map<String, String>> callService(String name, Map<String, List<String>> input) - umożliwia wołanie ServiceProxy,

  • ValidatorOutput validate(String name, Map<String, List<String>> input) - umożliwia wołanie walidatora,

Przykład pobrania listy (np. dla pól w sekcji powtarzalnej):

Wyjście z walidatora

  1. Lista map: tablica obiektów zawierających pola "key" oraz "parameters".

  2. Opcjonalne pola:

    1. type - typ walidatora domyślnie ustawiony jest INLINE, inna opcja to POPUP,

    2. parameters - zmienne które możemy wysłać do komunikatu walidacyjnego skryptu

    3. attributes - np. atrybuty POPUPa dodający przycisk 'dalej' oraz zmieniający np. wartość komponentu po naciśnięciu 'dalej':

np. atrybuty dla walidacji wiersza GesTable:

Przykładowa walidacja typu INLINE - wiersze GesTable

Logowanie

Logowanie danych wejściowych jest automatyczne.

Logowanie ręczne powinno być zgodne z opisem w Logowanie w ScriptCode

Rzucanie wyjątków biznesowych

Istnieje możliwość rzucenia wyjątku biznesowego z poziomu skryptu. Przykładowy kod:

Możliwe metody, które można wywołać na obiekcie 'context':

Przykłady walidatorów:

demoEmailWalidator, demoPESELWalidator, demoDowodWalidator, demoMinMaxWalidator

Last updated

Was this helpful?