# Edytor skryptów

## Widok skryptu <a href="#edytorskryptow-widokskryptuedycja" id="edytorskryptow-widokskryptuedycja"></a>

W głównym widoku skryptu widoczna jest wybrana wersja skryptu. W panelu bocznym znajdują się przyciski umożliwiające wysunięcie panelu parametrów skryptu, testów jednostkowych oraz logów.

Przycisk uruchomienia skryptu znajduje się w zakładce **Parametry**.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2F0TmsJe1PUFNwZGF50Zeh%2Fobraz.png?alt=media&#x26;token=e69a3cb1-113a-4bf2-8614-f3744e20ee25" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Widok skryptu z wysuniętym panelem "Parametry"</em></p></figcaption></figure>

## Edycja skryptu <a href="#edytorskryptow-edycjaskryptu" id="edytorskryptow-edycjaskryptu"></a>

Praca nad skryptem możliwa jest dzięki edytorowi Monaco (edytor wspiera język JavaScipt).

Początkowo działa on w trybie **read-only**. Aby rozpocząć pracę należy kliknąć przycisk **Edytuj skrypt** znajdujący się na końcu paska nawigacyjnego.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FpDsYRgQPl4rH3dHk8U3r%2Fobraz.png?alt=media&#x26;token=8cc4b5a5-030f-483b-9eb5-bdcd52295c0f" alt=""><figcaption><p><em><strong>Ilustracja 2.</strong> Karta skryptu</em></p></figcaption></figure>

Instrukcja "jak pisać skrypt serwisy" znajduje się w [Skrypty (scriptService)](https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/skrypty-scriptservice) oraz [Dobre praktyki ScriptCode](https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/dobre-praktyki-scriptcode).

## Zmienne w ScriptCode w zakresie bloku <a href="#edytorskryptow-zmiennewscriptcodewzakresiebloku" id="edytorskryptow-zmiennewscriptcodewzakresiebloku"></a>

Platforma Eximee wymaga, aby zmienne w ScriptCode były zadeklarowane w zakresie bloku.

Brak deklaracji zmiennej spowoduje błąd skryptu.

## Parametry <a href="#edytorskryptow-parametryparametry" id="edytorskryptow-parametryparametry"></a>

Modyfikacja parametrów również odbywa się w Monaco (edytor wspiera notacje JSON).

Przy pierwszym wejściu na niepusty skrypt parametry zostaną automatycznie wydedukowane (jeżeli jest to możliwe) z samej zawartości skryptu.

Pod edytorem znajduje się przycisk pozwalający na uruchomienie skryptu z parametrami podanymi w sekcji **Dane testowe.**

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FZGhTCgC3aErwubzZHQep%2Fimage.png?alt=media&#x26;token=7bd8a94c-556f-42c3-b412-bef8936ff85f" alt=""><figcaption><p><em><strong>Ilustracja 3.</strong> Karta parametrów</em></p></figcaption></figure>

Parametry uzupełnione w sekcji **Dane testowe** nie są częścią samego skryptu i nie zapiszą się w danej jego wersji!

## Edycja wejść/wyjść <a href="#edytorskryptow-edycjawejsc-wyjscio" id="edytorskryptow-edycjawejsc-wyjscio"></a>

W tym miejscu możemy dodać lub usunąć wejścia/wyjścia skrypt serwisu.

Dodanie lub usunięcie wejścia spowoduje również aktualizację parametrów uruchomieniowych, więc po usunięciu parametru stracimy jego ewentualne mapowanie w miejscu podpięcia.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FG7THbWAG1fnmjd43jtgB%2Fimage.png?alt=media&#x26;token=d832a322-70d0-47c2-a7e7-fa20ca209253" alt=""><figcaption><p><em><strong>Ilustracja 4.</strong> Pola edycji wejść/wyjść</em></p></figcaption></figure>

## Wynik skryptu <a href="#edytorskryptow-wynikskryptuwynik" id="edytorskryptow-wynikskryptuwynik"></a>

W dolnej części ekranu pojawia się dodatkowe okno. Znajdziemy tam wszelkie informacje na temat uruchomionego skryptu:

1. Czas działania skryptu podany w ms.
2. Logi z wykonania skryptu w postaci:

   | `[CZAS_OPERACJI] [TYP_OPERACJI]: Tekst operacji` |
   | ------------------------------------------------ |

   Dla przykładu:

   | `[14:31:22,976] [GET_DATA]: Called getData("GesCustomComponent1","data") and resulted with data z cc` |
   | ----------------------------------------------------------------------------------------------------- |
3. Wynik wołania skryptu (w panelu logów), czyli wszystkie wartości zdefiniowane jako wyjściowe (output) podczas tworzenia skrypt serwisu w postaci KLUCZ : WARTOŚĆ.<br>

   <figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2Fv1eNGJCtvc7hNEAZDzLM%2Fimage.png?alt=media&#x26;token=be3b5bfa-5dcf-444b-9e5d-8de1e2fb069c" alt=""><figcaption><p><em><strong>Ilustracja 5.</strong> Karta wyniku skryptu</em></p></figcaption></figure>

## Edytor Monaco <a href="#edytorskryptow-edytormonacomonaco" id="edytorskryptow-edytormonacomonaco"></a>

Edytor użyty w projekcie jest pełnoprawnym edytorem, co za tym idzie oferuje nam zestaw skrótów wspomagających pisanie. Lista najczęściej używanych skrótów klawiszowych:

* **Ctrl + Shift + I** - formatowanie kodu. Zawsze po napisaniu jakiegoś fragmentu warto go sformatować, zwiększa to czytelność oraz ułatwia pracę.
* **Ctrl + Shift + O** - skok do zmiennej/funkcji. Jest to wyszukiwanie na sterydach. W momencie, gdy skrypty urosną do rozmiarów, gdzie nie mieszczą się na jednej stronie, warto korzystać z takich skrótów, aby szybciej poruszać się po kodzie.
* **Ctrl + Shift + K** - usunięcie całej linii.
* **Ctrl + F2** - wyszukanie i podmienienie konkretnego symbolu (nazwy funkcji, zmiennej).
* **Ctrl + G** - skok do linii.
* **Ctrl + Shift + Alt + Strzałka w górę/dół** - sklonowanie kursora na górze/dole.
* **F1** - lista wszystkich dostępnych skrótów oraz opcji edytora.

## Testy <a href="#edytorskryptow-testy" id="edytorskryptow-testy"></a>

Edytor posiada możliwość zdefiniowania [scenariuszy testowych](https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/testy-jednostkowe-skryptow).

### Błędy w trakcie uruchomienie testowego

Jeśli skrypt zawiera błędy, w trakcie uruchomienia testowego błąd taki zostanie odlogowany w konsoli pod edytorem. W komunikacie zawarty będzie powód i miejsce w kodzie wystąpienia błędu.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FZFoY32oGd8Olk5TxH1BN%2Fobraz.png?alt=media&#x26;token=1a4bb1b1-77e4-4370-af18-ca5585c48107" alt=""><figcaption><p><em><strong>Ilustracja 6.</strong> Błąd wywołania testowego</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/skrypty-scriptservice/edytor-skryptow.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.
