# Tworzenie i podpięcie walidatorów skryptowych

## Tworzenie walidatora <a href="#walidatoryskryptowe-validationscript-tworzeniewalidatora" id="walidatoryskryptowe-validationscript-tworzeniewalidatora"></a>

Walidator skryptowy to jeden z typów artefaktów w repozytorium. Aby dodać walidator skryptowy, należy przejść do zakładki **Biblioteka → Walidatory skryptowe**, a następnie kliknąć w znajdujący się po prawej stronie przycisk **Dodaj walidator skryptowy.**

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FojbL83aL5vYYiRnu0yCl%2Fimage.png?alt=media&#x26;token=841f51d4-0e7c-42f7-9fbb-cd4522496078" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Dodawanie walidatorów skryptowych</em></p></figcaption></figure>

## Okno edycji <a href="#walidatoryskryptowe-validationscript-oknoedycji" id="walidatoryskryptowe-validationscript-oknoedycji"></a>

Okno edycji w repozytorium zezwala na zmianę treści walidatora oraz zwracanych kluczy i domyślnych komunikatów błędów. W sekcji **Parametry** powinny zostać dodane wszystkie wynikające z treści kodu wejścia walidatora oraz wyjścia (klucze błędów). Okno z parametrami można wyświetlić po kliknięciu w lewym panelu przycisku ![](https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FlcsQX63BJLjsjRv1no0n%2Fimage.png?alt=media\&token=3d1b4f04-bad2-4656-b0d6-1520fc814dcf).

Więcej informacji na temat samego edytora znajduje się w [Edytor walidatorów skryptowych](https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/walidatory-skryptowe-validationscript/edytor-walidatorow-skryptowych).

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2F1dtppZw8rgiRMfjB0YX1%2Fobraz.png?alt=media&#x26;token=d2c96196-58ba-44f1-aac9-9553a892c89e" alt=""><figcaption><p><em><strong>Ilustracja 2.</strong> Okno edycji walidatora skryptowego</em></p></figcaption></figure>

## Podpięcie na wniosku <a href="#walidatoryskryptowe-validationscript-podpiecienawniosku" id="walidatoryskryptowe-validationscript-podpiecienawniosku"></a>

Podpięcie walidatora skryptowego na wniosku nie różni się od podpięcia standardowego walidatora. Dla konkretnego komponentu w panelu **Właściwości** należy wybrać **Jakość danych → Walidatory → Dodaj walidator**, a następnie wyszukać jego nazwę. W zakładce **Parametry wejściowe** należy wybrać odpowiedni komponent w polu **Wybierz komponent lub stałą**.\
Przełącznik znajdujący się w kolumnie ***Wołaj gdy pusty*** odpowiada za wywołanie walidatora, nawet gdy we wskazanym polu nie ma wartości (np. w przypadku usunięcia wartości z pola tekstowego).

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2Fc8AxoQJA5ifkjQjEfbll%2Fimage.png?alt=media&#x26;token=db68e283-e499-4cd4-8fba-e242c6644d65" alt=""><figcaption><p><em><strong>Ilustracja 3.</strong> Podpięcie walidatora skryptowego na wniosku</em></p></figcaption></figure>

## Tworzenie komunikatu błędu walidatora <a href="#walidatoryskryptowe-validationscript-tworzeniekomunikatubleduwalidatora" id="walidatoryskryptowe-validationscript-tworzeniekomunikatubleduwalidatora"></a>

Treść komunikatu błędu (tłumaczenia klucza) walidatora skryptowego musi zostać zdefiniowana w komponencie/wniosku - po podpięciu walidatora. Dodanie treści komunikatu w skrypcie nie jest błędem, ale nie będzie ona widoczna w oknie edycji komponentu/wniosku. Po podpięciu walidatora zarówno klucz, jak i jego tłumaczenie, będą wyświetlały nazwę klucza zdefiniowaną w treści walidatora skryptowego:

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FwWKQM0nWS9hQtTcy3tHg%2Fimage.png?alt=media&#x26;token=a35b71eb-59fe-4471-8ab5-bf1196dc207c" alt=""><figcaption><p><em><strong>Ilustracja 4.</strong> Tłumaczenie klucza walidatora skryptowego</em></p></figcaption></figure>

\
Należy edytować kolumnę z tłumaczeniem i wpisać do niej treść komunikatu, który ma się pojawić w przypadku zwrócenia przez walidator określonego klucza komunikatu błędu.

Jeśli zajdzie konieczność wykorzystania zmiennych w komunikacie błędu, należy wymienić te zmienne w kodzie jako parametry (parameters: \[wartosc1, wartosc2 itd.]) , a następnie odwołać się do nich w komunikacie błędu w komponencie/wniosku w następujący sposób: {0} dla pierwszego parametru, {1} dla drugiego parametru, {2} dla trzeciego itd.

```
let minimalnyWiek = 18;
let maksymalnyWiek = 25;
if (minimalnyWiek > roznicaLat || maksymalnyWiek < roznicaLat) {
            return [{
            'key': 'pl.LCL_dataUrodzenia.pozaPrzedzialem',
            'parameters': [minimalnyWiek, maksymalnyWiek, 'Ten wniosek mogą złożyć osoby w wieku {0}-{1} lat.']               
        }];

```

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FEodT5VCbrwNK3W4ORHoN%2Fimage.png?alt=media&#x26;token=b539cff0-4330-41cf-9b8c-3b55c1f6a118" alt=""><figcaption><p><em><strong>Ilustracja 5.</strong> Tłumaczenie klucza walidatora skryptowego zasilone zmiennymi</em></p></figcaption></figure>

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FCXXOfiYPEMMv0VGs0ceS%2Fimage.png?alt=media&#x26;token=394a11cf-a017-4418-822c-4e57c1fc6484" alt=""><figcaption><p><em><strong>Ilustracja 6.</strong> Treść komunikatu błędu widoczna na wniosku</em></p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/walidatory-skryptowe-validationscript/tworzenie-i-podpiecie-walidatorow-skryptowych.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
