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

Konfiguracja ustawiana jest odgórnie w platformie. Nie mamy możliwości aktualizowania jej low codowo w designerze. W przypadku potrzeby zmian należy kontaktować się z administratorami.

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?