# Akcje

## Sekcja Akcje <a href="#akcje-sekcjaakcje" id="akcje-sekcjaakcje"></a>

Sekcja **Akcje** umożliwia dodanie do wniosku akcji dla wybranych komponentów inicjujących zdarzenia.

Aby zdefiniować akcję na wniosku należy w pierwszej kolejności dodać w formularzu komponent, dla którego chcemy akcję zdefiniować (np. [Trigger](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/trigger.md)) oraz komponent, którego akcja dotyczy (np. [Popup](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/popup.md)).

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FoKpWsBzXE4egPxT2dIR7%2Fimage.png?alt=media&#x26;token=ce70d96b-e365-4c64-99a9-ae238872f415" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Sekcja ze zdefiniowanymi akcjami</em></p></figcaption></figure>

## Dodanie akcji <a href="#akcje-dodanieakcji" id="akcje-dodanieakcji"></a>

Po kliknięciu przycisku **Dodaj akcję** na górze sekcji nad pozostałymi akcjami (o ile już jakieś były na wniosku), zostaje dodany pusty wiersz, w którym wybieramy najpierw źródło akcji w polu **Wybierz źródło akcji**. Na liście dostępne będą tylko te komponenty wniosku, dla których można zdefiniować akcję.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FVIqtOlkqGYERiNzuocFQ%2Fimage.png?alt=media&#x26;token=c0f854f2-8a52-4093-9f4d-804b882f3555" alt=""><figcaption><p><em><strong>Ilustracja 2.</strong> Wiersz definiowania nowej akcji</em><br></p></figcaption></figure>

***Ilustracja 2.** Wiersz definiowania nowej akcji*<br>

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FKYozZ9SWdFW4g18NwWw6%2Fimage.png?alt=media&#x26;token=983d6f37-d761-4fe0-8fd4-51fd2e320a55" alt=""><figcaption><p><em><strong>Ilustracja 3.</strong> Wiersz przykładowej akcji SHOW_POPUP po kliknięciu checkboxa</em></p></figcaption></figure>

## Definiowanie zdarzenia dla przycisku Dalej <a href="#akcje-definiowaniezdarzeniadlaprzyciskudalej" id="akcje-definiowaniezdarzeniadlaprzyciskudalej"></a>

Podczas definiowania akcji na kliknięcie przycisku Dalej należy pamiętać, aby zapewnić także akcję, która wykona się, gdy podany dla akcji warunek nie zostanie spełniony, ponieważ inaczej użytkownik nie mógłby przejść na kolejną stronę przy niespełnionym warunku dla zdarzenia. Wystarczy dodać akcję z odwrotnym warunkiem dla akcji FORWARD\_PAGE.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FqmLVFLd4I66Yb8DTCDIB%2Fimage.png?alt=media&#x26;token=cdcaf690-a374-42a2-8e9d-85f330012c7b" alt=""><figcaption><p><em><strong>Ilustracja 4.</strong> Przykład akcji otwarcia popupa dla klikniętego przycisku Dalej na Page1</em></p></figcaption></figure>

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FY3P7z4Ue3YGVQwPWEDrW%2Fimage.png?alt=media&#x26;token=96f8efff-340f-40d4-a064-9031e255dab8" alt=""><figcaption><p><em><strong>Ilustracja 5.</strong> Przykład akcji dla odwrotnego warunku pozwalającego przejść dalej w standardowy sposób ze strony Page1</em></p></figcaption></figure>

{% hint style="info" %}
Wniosek demo: demoPopup
{% endhint %}

## Definiowanie akcji dla komponentu Oświadczenia <a href="#akcje-definiowanieakcjidlakomponentuoswiadczenia" id="akcje-definiowanieakcjidlakomponentuoswiadczenia"></a>

Dla [Oświadczenia - Statements](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/oswiadczenia-statements/README.md) w konkretnym oświadczeniu należy w **actionBindings** dodać zdarzenie (Event) równe **EDIT**. Oświadczenie, które będzie takie zdarzenie miało zdefiniowane będzie miało wyświetloną specjalną opcję edycji danych, której kliknięcie wyświetli popup.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FSznVQFNfun8wb2khGvz0%2Fimage.png?alt=media&#x26;token=77986c2b-0b18-4ed9-bde5-52c5b37be4ad" alt=""><figcaption><p><em><strong>Ilustracja 6.</strong> Przykład oświadczenia ze zdefiniowaną akcją</em></p></figcaption></figure>

{% hint style="info" %}
Wniosek demo: demoStatementsPopup
{% endhint %}

## Zdefiniowane zdarzenia dla Slidera <a href="#akcje-zdefiniowanezdarzeniadlaslidera" id="akcje-zdefiniowanezdarzeniadlaslidera"></a>

[Slider](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/slider.md) jest w stanie obsłużyć zdarzenie zdefiniowane w walidatorze (musi on w komunikacie błędu wysłać akcję EMIT\_EVENT). Podczas dodawania akcji należy w liście rozwijanej akcji wybrać pozycję z listy dopuszczalnych zdarzeń, która z kolei jest zdefiniowana w implementacji walidatora.

## Zdefiniowane zdarzenia dla pomocy kontekstowej Pola tekstowego i Pola wyboru wartości z listy <a href="#akcje-zdefiniowanezdarzeniadlapomocykontekstowejpolatekstowegoipolawyboruwartoscizlisty" id="akcje-zdefiniowanezdarzeniadlapomocykontekstowejpolatekstowegoipolawyboruwartoscizlisty"></a>

Dla komponentów: [Pole tekstowe - TextField](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/pole-tekstowe-textfield.md) oraz [Pole wyboru wartości z listy - Combobox](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/pole-wyboru-wartosci-z-listy-combobox.md) zawierających etykietę (label) można zdefiniować akcję otwarcia popupa na kliknięcie w przycisk pomocy kontekstowej. Przed zdefiniowaniem akcji należy dodać do komponentu pomoc kontekstową (tooltip).

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2FDKuDAFubgtsJsltD4fgX%2Fimage.png?alt=media&#x26;token=d09ba41c-cea5-4093-b8a8-c272ceb020f5" alt=""><figcaption><p><em><strong>Ilustracja 7.</strong> Przykład akcji zdefiniowanej dla tooltipa komponentu Pole tekstowe</em></p></figcaption></figure>

{% hint style="info" %}
Wnioski demo: demoTextField, demoCombobox, demoPopup
{% endhint %}

## PageService jako akcja <a href="#akcje-pageservicejakoakcja" id="akcje-pageservicejakoakcja"></a>

Jeśli na wniosku zdefiniujemy PageService to możemy go wybrać w sekcji **Właściwości** - po jego wybraniu możliwe jest wybranie akcji CALL.

## Akcja przekierowania na zdefiniowany returnUrl <a href="#akcje-akcjaprzekierowanianazdefiniowanyreturnurl" id="akcje-akcjaprzekierowanianazdefiniowanyreturnurl"></a>

Istnieje możliwość podpięcia akcji (np. na kliknięcie Triggera), która uruchomi przekierowanie na ***returnUrl*** (REDIRECT\_TO\_RETURN\_URL), którego wartość pobierana jest ze zmiennej sesyjnej o takiej nazwie (zmienna sesyjna ***returnUrl*** musi być exposed).

## Akcja przekierowania na zdefiniowany URL <a href="#akcje-akcjaprzekierowanianazdefiniowanyurl" id="akcje-akcjaprzekierowanianazdefiniowanyurl"></a>

Istnieje możliwość podpięcia akcji (np. na kliknięcie Triggera), która uruchomi przekierowanie na podany przez użytkownika adres URL, którego wartość jest ustalana w momencie definiowania akcji - REDIRECT.

Akcja wykona się nawet jeżeli jakiś walidator podświetli jakieś dane jako niewłaściwe.

## Akcja parkowania po wejściu na konkretną stronę <a href="#akcje-akcjaparkowaniapowejsciunakonkretnastrone" id="akcje-akcjaparkowaniapowejsciunakonkretnastrone"></a>

Istnieje możliwość zdefiniowania akcji parkowania po wejściu na konkretną stronę: PARK\_FORM\_WITH\_PROVIDED\_HASH. Należy wtedy określić akcję dla komponentu strony (np. ze zdarzeniem ON\_PAGE\_ENTER). Aby mechanizm parkowania zadziałał, należy pamiętać o ustawieniu wartości zmiennej sesyjnej ***hashForUnparking***, która jest potrzebna do odparkowania wniosku.

## Akcja wejścia na nowy wniosek zasilonym modelem danych z podanego procesu <a href="#akcje-akcjawejsciananowywniosekzasilonymmodelemdanychzpodanegoprocesu" id="akcje-akcjawejsciananowywniosekzasilonymmodelemdanychzpodanegoprocesu"></a>

Istnieje możliwość zdefiniowania akcji wejścia na nowy wniosek, który na start zostanie zasilony modelem danych z konkretnego procesu. Należy wtedy określić akcję START\_FORM\_BASED\_ON\_PROCESS na komponencie Trigger. W ramach tej akcji należy skonfigurować nazwę wniosku (**formName)** oraz **processInstanceId,** z którego zostanie pobrany model. Pamiętaj, że **processInstanceId** musi być wskazaniem na zmienną sesyjną, ponieważ tylko **zmienna sesyjna jest obsługiwana.**\
Aktualnie konfiguracja akcji nie jest możliwa z poziomu Designera, należy wykorzystać zakładkę "Źródło". Poniżej przykładowa konfiguracja.

```
<formAction id="5392a77a-5b2b-4664-b918-b2b65004736f" handler="START_FORM_BASED_ON_PROCESS" event="CLICK">
  <formActionSources>
    <formActionSource>GesTrigger1</formActionSource>
  </formActionSources>
  <formActionParameters>
    <formActionParameter name="formName" value="esg_test_preview_wniosek"/>
    <formActionParameter name="processInstanceId" value="nazwaZmiennejSesyjnej"/>
  </formActionParameters>
</formAction>
```

## Akcje - startowanie Aplikacji <a href="#title-text" id="title-text"></a>

{% hint style="info" %}
Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.
{% endhint %}

Akcja START\_APPLICATION jest odpowiedzialna za startowanie procesu ustawionego jako punkt startowy.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2Fc5QpqKiTAKWBcL6EyyTN%2Fimage.png?alt=media&#x26;token=f9302772-ab76-439f-959f-a9a49d438e11" alt=""><figcaption><p><em><strong>Ilustracja 8.</strong></em> <em>Wiersz definiowania akcji START_APPLICATION</em></p></figcaption></figure>

Akcja START\_APPLICATION przyjmuje następujące parametry:

|                                    |                                                                                                                            |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Nazwa aplikacji                    | Wskazanie procesu, który ma zostać wystartowany.                                                                           |
| Przekieruj na kolejny krok procesu | Warunek JAVASCRIPT. Wskazanie czy ma nastąpić automatyczne przekierowanie na kolejnego user taska. Domyślna wartość: false |

## Akcja uruchamiania instancji procesu

Akcja START\_PROCESS\_AND\_RESUME jest odpowiedzialna za wystartowanie instancji procesu i przekierowanie na zadanie użytkownika. W ramach akcji trzeba zdefiniować nazwę procesu, który ma zostać wystartowany.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2Fgit-blob-b2763a95dc486d630e07c68924e02d933266e8e3%2Fwlasciwosci_przeplywy_akcje_startprocessandresume.png?alt=media" alt=""><figcaption><p><em><strong>Ilustracja 9.</strong></em> <em>Wiersz definiowania akcji START_PROCESS_AND_RESUME</em></p></figcaption></figure>

Akcja START\_PROCESS\_AND\_RESUME przyjmuje następujące parametry:

|                             |                                                        |
| --------------------------- | ------------------------------------------------------ |
| Klucz definicji procesu     | Nazwa definicji procesu, który ma zostać wystartowany. |
| Numer sprawy (Business key) | Biznesowy identyfikator sprawy                         |

Po uruchomieniu procesu w instancji ustawiana jest zmienna procesowa `sys_process_start_user_id`, zawierająca identyfikator użytkownika uruchamiającego proces. Zmienną tę można wykorzystać np. w konfiguracji BPMN (candidate users) dla user taska, aby użytkownik tworzący proces miał dostęp do tego zadania.

## Akcja zatwierdzenia zadania użytkownika w procesie

Akcja COMPLETE\_TASK\_AND\_RESUME jest odpowiedzialna za zatwierdzenie zadania użytkownika i przekierowanie na następne zadanie.

<figure><img src="https://1082717226-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2CssJT0zIo4SJQLbSZ6l%2Fuploads%2Fgit-blob-2d829e235cae52a4e37b98e1b50ebaabac1d87e7%2Fwlasciwosci_przeplywy_akcje_completetaskandresume.png?alt=media" alt=""><figcaption><p><em><strong>Ilustracja 10.</strong></em> <em>Wiersz definiowania akcji COMPLETE_TASK_AND_RESUME</em></p></figcaption></figure>

## Przykładowe komponenty wysyłające zdarzenia <a href="#akcje-przykladowekomponentywysylajacezdarzenia" id="akcje-przykladowekomponentywysylajacezdarzenia"></a>

| Komponent (Źródło akcji)                       | Możliwe zdarzenie | Opis                                                                |
| ---------------------------------------------- | ----------------- | ------------------------------------------------------------------- |
| Page (strona)                                  | NEXT              | Akcja na kliknięcie przycisku dalej na stronie wniosku              |
| <p><br></p>                                    | ON\_EXIT          | Akcja na wyjście ze strony                                          |
| <p><br></p>                                    | ON\_PAGE\_ENTER   | Akcja wejścia na konkretną stronę                                   |
| <p><br></p>                                    | SAVE\_DRAFT       | Akcja na kliknięcie przycisku zapisu tymczasowego wniosku           |
| Popup                                          | SAVE              | Akcja na kliknięcie przycisku zapisu na komponencie Popup           |
| <p><br></p>                                    | HIDDEN            | <p><br></p>                                                         |
| Oświadczenia (Statements)                      | EDIT              | Akcja na kliknięcie przycisku edycji na komponencie oświadczeń      |
| Oświadczenia zasilane z usługi (FedStatements) | EXPAND\_STATEMENT | Akcja na kliknięcie rozwijacza na komponencie zasilanych oświadczeń |
| Pole tekstowe (GesTextField)                   | TOOLTIP\_CLICKED  | Akcja na kliknięcie tooltipa komponentu                             |
| Pole wyboru wartości z listy (GesCombobox)     | TOOLTIP\_CLICKED  | Akcja na kliknięcie tooltipa komponentu                             |
| <p><br></p>                                    | VALUE\_CHANGED    | Akcja na zmianę wartości comboboxa                                  |
| Trigger                                        | CLICK             | Akcja na kliknięcie komponentu                                      |
| Checkbox                                       | CLICK\_MORE\_INFO | Akcja na kliknięcie linku more info komponentu checkbox             |
| <p><br></p>                                    | CHECK             | Akcja na zaznaczenie checkboxa                                      |
| <p><br></p>                                    | UNCHECK           | Akcja na odznaczenie checkboxa                                      |
| RadioGroup                                     | VALUE\_CHANGED    | Akcja na zmianę wartości komponentu                                 |
| TileGroup                                      | VALUE\_CHANGED    | Akcja na zmianę wartości komponentu                                 |
| TileGroup                                      | TILE\_CLICKED     | Akcja na kliknięcie pojedynczego kafla w grupie kafli               |

## Przykładowe komponenty odbierające zdarzenia <a href="#akcje-przykladowekomponentyodbierajacezdarzenia" id="akcje-przykladowekomponentyodbierajacezdarzenia"></a>

| Komponent obsługujący akcje                    | Rodzaj akcji formularza          | Opis                                                                                                                       |
| ---------------------------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Checkbox                                       | CHECK                            | Zaznaczenie checkboxa                                                                                                      |
| <p><br></p>                                    | UNCHECK                          | Odznaczenie checkboxa                                                                                                      |
| <p><br></p>                                    | TOGGLE                           | Zmiana wartości checkboxa na przeciwną                                                                                     |
| Oświadczenia zasilane z usługi (FedStatements) | CHECK\_FED\_STATEMENT            | Zaznacza wymagane oświadczenie z listy oświadczeń                                                                          |
| Page (strona)                                  | FORWARD\_PAGE                    | Przejście do następnej strony (tożsame z kliknięciem przycisku **Dalej**, **Wyślij wniosek** itp.)                         |
| <p><br></p>                                    | BACKWARD\_PAGE                   | Przejście do poprzedniej strony (tożsame z kliknięciem przycisku **Cofnij**, **Powróć** itp.)                              |
| <p><br></p>                                    | REDIRECT\_TO\_RETURN\_URL        | Przekierowanie na url zdefiniowany w zmiennej sesyjnej ***returnUrl***                                                     |
| <p><br></p>                                    | REDIRECT                         | Przekierowanie na url zdefiniowany w polu dostępnym po wyborze typu akcji REDIRECT                                         |
| <p><br></p>                                    | SAVE\_DRAFT                      | Zapis tymczasowy wniosku                                                                                                   |
| PageService                                    | CALL                             | Wywołanie usługi                                                                                                           |
| Popup                                          | SHOW\_POPUP                      | Otwarcie komponentu popup zdefiniowanego w polu **Komponent obsługujący akcję**                                            |
| <p><br></p>                                    | CLOSE\_POPUP                     | Zamknięcie komponentu popup                                                                                                |
| <p><br></p>                                    | SAVE\_POPUP                      | Zapisanie komponentu popup                                                                                                 |
| Załączniki (Uploadfile)                        | CLEAR\_UPLOAD\_FILE              | Czyszczenie dodanego załącznika (działa dla akcji ON\_PAGE\_ENTER)                                                         |
| Form                                           | PARK\_FORM\_WITH\_PROVIDED\_HASH | Parkowanie wniosku                                                                                                         |
| Trigger                                        | START\_APPLICATION               | Startowanie procesu (procesu ustawionego jako punkt startowy) wskazanej w parametrze **applicationName** aplikacji         |
| Trigger                                        | START\_FORM\_BASED\_ON\_PROCESS  | Akcja wejścia na nowy wniosek (parametr formName) zasilony model z podanej instancji procesu (parametr processInstanceId). |

{% hint style="info" %}
Wnioski demo: demoAkcje, demoTooltipy
{% endhint %}


---

# 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/przeplywy/akcje.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.
