> For the complete documentation index, see [llms.txt](https://docs.eximee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/wprowadzenie-do-scriptcode.md).

# Wprowadzenie do ScriptCode

## Czym jest ScriptCode

**ScriptCode** to mechanizm dostępny na platformie **Eximee**, który umożliwia tworzenie logiki biznesowej w postaci **skryptów JavaScript** wykonywanych po stronie serwera. Dzięki temu rozwiązaniu możliwe jest dynamiczne przetwarzanie danych, walidacja formularzy, formatowanie wartości oraz integracja z zewnętrznymi usługami REST – **bez konieczności pisania kodu po stronie backendu**.

W praktyce oznacza to, że deweloperzy oraz konfiguratorzy procesów mogą w elastyczny sposób rozszerzać funkcjonalność aplikacji Eximee, zachowując spójność z modelem danych i procesami BPMN.

***

## Kluczowe możliwości ScriptCode

ScriptCode umożliwia między innymi:

* **Przetwarzanie danych wejściowych i wyjściowych** z formularzy, usług i procesów BPMN.
* **Walidację danych** użytkownika z wykorzystaniem reguł i logiki biznesowej.
* **Formatowanie i prezentację wartości** w interfejsie użytkownika.
* **Integrację z usługami zewnętrznymi** poprzez REST API (\[RestApi] – Wołanie zewnętrznych usług RESTowych).

Skrypty są wykonywane na serwerze Eximee, co gwarantuje bezpieczeństwo oraz spójność danych w całym cyklu przetwarzania.

***

## Zastosowanie ScriptCode w platformie Eximee

ScriptCode wykorzystywany jest w różnych artefaktach platformy:

| Artefakt                                      | Opis                                                                                                |
| --------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| **Skrypty (`scriptService`)**                 | Odpowiadają za zasilanie komponentów formularzy lub przetwarzanie danych wejściowych i wyjściowych. |
| **Walidatory skryptowe (`validationScript`)** | Realizują logikę sprawdzania poprawności danych na poziomie formularzy lub procesów.                |
| **Formatery**                                 | Odpowiadają za sposób prezentacji i formatowania danych w interfejsie użytkownika.                  |
| **Zadania skryptowe (`scriptTask`)**          | Wykonywane w ramach procesów BPMN, pozwalają implementować niestandardowe działania biznesowe.      |

***

## Zalety stosowania ScriptCode

* 🧠 **Elastyczność** – łatwe wprowadzanie zmian w logice biznesowej bez potrzeby modyfikowania kodu backendu.
* ⚙️ **Integracja** – możliwość komunikacji z zewnętrznymi systemami za pomocą REST API.
* 🧩 **Modułowość** – różne typy artefaktów mogą współdziałać w ramach jednej aplikacji.
* 🔒 **Bezpieczeństwo i kontrola** – wykonywanie skryptów po stronie serwera minimalizuje ryzyko manipulacji po stronie klienta.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/wprowadzenie-do-scriptcode.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
