Strony błędów
Strony błędów możemy podzielić na błędy biznesowe i błędy platformowe.
Błędy platformowe
Błędy platformowe to są błędy które pojawiają się w momencie kiedy na wniosku pojawi się błąd który jest domyślnie obsłużony w platformie np. błąd wygaśnięcia sesji.
W powyższej sytuacji wyświetlana jest strona błędu zawierająca textContent ustawiony w konfiguracji platformy errorPagesConfiguration
Przykładowa konfiguracja:
<code_default>
<content>error_page_default-*</content>
</code_default>
<code_serverSessionExpired>
<content>error_page_serverSessionExpired-*</content>
<retryButtonAvailable>true</retryButtonAvailable>
<styleName>spider-night</styleName>
</code_serverSessionExpired>
<code_formLimitExceeded>
<content>error_page_formLimitExceeded-*</content>
</code_formLimitExceeded>Błędy biznesowe
Błąd biznesowy to sytuacja, w której działanie użytkownika, proces systemowy lub interakcja z zewnętrznym systemem narusza przyjęte reguły biznesowe - mimo, że z technicznego punktu widzenia operacja mogłaby zostać wykonana.
Przykłady:
Próba wypłaty kwoty przekraczającej dostępne środki.
Złożenie wniosku przy nieaktywnym koncie klienta.
Wejście na wniosek jako użytkownik niezalogowany, mimo że wymagane jest zalogowanie
Jak wywołać?
Błąd biznesowy można wywołać w serwisach skryptowych oraz walidatorach skryptowych. Najlepiej użyć do tego metody throwBusinessException i getErrorPageDefinitionBuilder.
Metody, które można wywołać w obiekcie context:
context.getErrorPageDefinitionBuilder()
.body(string)
.styleName(string);
.msg(string)
.pageTitle(string)
.pageTitleKey(string)
.sidebarSlot2TextContent(string);
.sidebarSlot2(string);
.sidebarSlot1TextContent(string);
.sidebarSlot1(string);
.retryButtonAvailable(string)
.retryButtonAvailable(boolean);
.logobarTitle(string);
.logobarTitleKey(string)
.logobarDescription(string);
.bodyTextContent(string);
.parameter(String key, String value)
.cause(Throwable cause)
.redirectUrl(string)
.redirectDelayInMillis(string)
.businessFormIdentifier(string)Przykładowy skrypt z opisami:
function callService(context) {
let option = context.getFirstParameter('option');
if (!option) {
return []
}
let builder = context.getErrorPageDefinitionBuilder() //Metoda przygotowuje ekran błędu, który ma być wyświetlony
switch (option) {
case "1": //Ekran błędu, który pokazuje artefakt Treści 'error_page_default'
builder.bodyTextContent("error_page_default-*")
break;
case "2": //Ekran błędu dodany za pomocą treści podanej w body
builder.body("Domyślne body w obiekcie")
builder.parameter("type", "error")
break;
case "3": //Ekran błędu, który pokazuje artefakt Treści 'error_page_paymentSessionExpired'
builder.bodyTextContent("error_page_paymentSessionExpired-*")
builder.pageTitle("Tytuł strony")
builder.logobarTitle("Logo tytuł")
builder.retryButtonAvailable(true);
break;
default: //Domyślny ekran błędu wyświetlony w wyniku błędu w skrypcie
throw "Script exception"
}
context.throwBusinessException(builder); // Rzucenie ekranu błędu z przygotowanym obiektem builder
return [{ 'output': '' }];
}
Last updated
Was this helpful?
