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
Lista map: tablica obiektów zawierających pola "key" oraz "parameters".
Opcjonalne pola:
type - typ walidatora domyślnie ustawiony jest INLINE, inna opcja to POPUP,
parameters - zmienne które możemy wysłać do komunikatu walidacyjnego skryptu
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':
Uwaga: na tym obiekcie nie należy wywoływać metody build() !!!
Last updated
Was this helpful?
