# Actions

## Actions section <a href="#akcje-sekcjaakcje" id="akcje-sekcjaakcje"></a>

Section **Actions** allows actions for selected event-triggering components to be added to the application.

To define an action on the application, first add to the form the component for which you want to define the action (e.g. [Trigger](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/trigger.md)) and the component to which the action applies (e.g. [Popup](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/popup.md)).

<figure><img src="https://2112972046-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>Figure 1.</strong> Section with defined actions</em></p></figcaption></figure>

## Adding an action <a href="#akcje-dodanieakcji" id="akcje-dodanieakcji"></a>

After clicking the **Add action** button at the top of the section above the other actions (if there were any on the application), an empty row is added, in which we first choose the action source in the field **Select action source**. The list will contain only those application components for which an action can be defined.

<figure><img src="https://2112972046-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>Figure 2.</strong> Row for defining a new action</em><br></p></figcaption></figure>

***Figure 2.** Row for defining a new action*<br>

<figure><img src="https://2112972046-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>Figure 3.</strong> Example row of the SHOW_POPUP action after clicking the checkbox</em></p></figcaption></figure>

## Defining an event for the Next button <a href="#akcje-definiowaniezdarzeniadlaprzyciskudalej" id="akcje-definiowaniezdarzeniadlaprzyciskudalej"></a>

When defining an action for clicking the Next button, remember to also provide an action that will be executed when the condition specified for the action is not met, because otherwise the user would not be able to move to the next page when the event condition is not satisfied. It is enough to add an action with the opposite condition for the FORWARD\_PAGE action.

<figure><img src="https://2112972046-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>Figure 4.</strong> Example of an action opening a popup for the clicked Next button on Page1</em></p></figcaption></figure>

<figure><img src="https://2112972046-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>Figure 5.</strong> Example of an action for the opposite condition allowing normal progression from Page1</em></p></figcaption></figure>

{% hint style="info" %}
Demo application: demoPopup
{% endhint %}

## Defining actions for the Statements component <a href="#akcje-definiowanieakcjidlakomponentuoswiadczenia" id="akcje-definiowanieakcjidlakomponentuoswiadczenia"></a>

For [Statements - Statements](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/oswiadczenia-statements/README.md) in a specific statement, you need to add an event (Event) equal to **actionBindings** in **EDIT**. A statement that has such an event defined will display a special data-editing option, and clicking it will show a popup.

<figure><img src="https://2112972046-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>Figure 6.</strong> Example of a statement with a defined action</em></p></figcaption></figure>

{% hint style="info" %}
Demo application: demoStatementsPopup
{% endhint %}

## Defined events for the Slider <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) is able to handle an event defined in the validator (it must send the EMIT\_EVENT action in the error message). When adding an action, choose in the action dropdown the item from the list of allowed events, which is in turn defined in the validator implementation.

## Defined events for contextual help of the Text Field and Value Selection from List Field <a href="#akcje-zdefiniowanezdarzeniadlapomocykontekstowejpolatekstowegoipolawyboruwartoscizlisty" id="akcje-zdefiniowanezdarzeniadlapomocykontekstowejpolatekstowegoipolawyboruwartoscizlisty"></a>

For components: [Text Field - TextField](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/pole-tekstowe-textfield.md) and [Value Selection from List Field - Combobox](https://github.com/Consdata/eximee-docs/blob/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/pole-wyboru-wartosci-z-listy-combobox.md) containing a label, you can define an action to open a popup when clicking the contextual help button. Before defining the action, add contextual help (tooltip) to the component.

<figure><img src="https://2112972046-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>Figure 7.</strong> Example of an action defined for the tooltip of the Text Field component</em></p></figcaption></figure>

{% hint style="info" %}
Demo applications: demoTextField, demoCombobox, demoPopup
{% endhint %}

## PageService as an action <a href="#akcje-pageservicejakoakcja" id="akcje-pageservicejakoakcja"></a>

If we define PageService on the application, we can choose it in the section **Properties** - after selecting it, it is possible to choose the CALL action.

## Action to redirect to a defined returnUrl <a href="#akcje-akcjaprzekierowanianazdefiniowanyreturnurl" id="akcje-akcjaprzekierowanianazdefiniowanyreturnurl"></a>

It is possible to attach an action (e.g. on Trigger click) that will redirect to ***returnUrl*** (REDIRECT\_TO\_RETURN\_URL), whose value is taken from a session variable with that name (the session variable ***returnUrl*** must be exposed).

## Action to redirect to a defined URL <a href="#akcje-akcjaprzekierowanianazdefiniowanyurl" id="akcje-akcjaprzekierowanianazdefiniowanyurl"></a>

It is possible to attach an action (e.g. on Trigger click) that will redirect to the URL provided by the user, whose value is determined when defining the action - REDIRECT.

The action will be executed even if a validator highlights some data as incorrect.

## Parking action upon entering a specific page <a href="#akcje-akcjaparkowaniapowejsciunakonkretnastrone" id="akcje-akcjaparkowaniapowejsciunakonkretnastrone"></a>

It is possible to define a parking action upon entering a specific page: PARK\_FORM\_WITH\_PROVIDED\_HASH. In that case, you need to specify an action for the page component (e.g. with the ON\_PAGE\_ENTER event). For the parking mechanism to work, remember to set the value of the session variable ***hashForUnparking***, which is needed to unpark the application.

## Action to enter a new application with the data model populated from a given process <a href="#akcje-akcjawejsciananowywniosekzasilonymmodelemdanychzpodanegoprocesu" id="akcje-akcjawejsciananowywniosekzasilonymmodelemdanychzpodanegoprocesu"></a>

It is possible to define an action for entering a new application, which at startup will be populated with the data model from a specific process. In that case, specify the START\_FORM\_BASED\_ON\_PROCESS action on the Trigger component. As part of this action, configure the application name (**formName)** and **processInstanceId,** from which the model will be retrieved. Remember that **processInstanceId** must be a reference to a session variable, because only **a session variable is supported.**\
Currently, action configuration is not possible from the Designer; use the "Source" tab. Below is an example configuration.

```
<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>
```

## Actions - application startup <a href="#title-text" id="title-text"></a>

{% hint style="info" %}
Availability of the functionality depends on the license and may not be available in all deployments.
{% endhint %}

The START\_APPLICATION action is responsible for starting the process set as the starting point.

<figure><img src="https://2112972046-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>Figure 8.</strong></em> <em>Row for defining the START_APPLICATION action</em></p></figcaption></figure>

The START\_APPLICATION action takes the following parameters:

|                                          |                                                                                                                        |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Application name                         | Indication of the process to be started.                                                                               |
| Redirect to the next step of the process | JAVASCRIPT condition. Indicates whether automatic redirection to the next user task should occur. Default value: false |

## Action to start a process instance

The START\_PROCESS\_AND\_RESUME action is responsible for starting a process instance and redirecting to a user task. As part of the action, you need to define the name of the process to be started.

<figure><img src="https://2112972046-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>Figure 9.</strong></em> <em>Row for defining the START_PROCESS_AND_RESUME action</em></p></figcaption></figure>

The START\_PROCESS\_AND\_RESUME action takes the following parameters:

|                            |                                               |
| -------------------------- | --------------------------------------------- |
| Process definition key     | Name of the process definition to be started. |
| Case number (Business key) | Business case identifier                      |

After the process is started, the process variable is set in the instance `sys_process_start_user_id`, containing the identifier of the user starting the process. This variable can be used, for example, in BPMN configuration (candidate users) for a user task, so that the user creating the process has access to this task.

## Action to approve a user task in the process

The COMPLETE\_TASK\_AND\_RESUME action is responsible for approving the user task and redirecting to the next task.

<figure><img src="https://2112972046-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>Figure 10.</strong></em> <em>Row for defining the COMPLETE_TASK_AND_RESUME action</em></p></figcaption></figure>

## Sample components sending events <a href="#akcje-przykladowekomponentywysylajacezdarzenia" id="akcje-przykladowekomponentywysylajacezdarzenia"></a>

| Component (Action source)                         | Possible event    | Description                                                           |
| ------------------------------------------------- | ----------------- | --------------------------------------------------------------------- |
| Page (page)                                       | NEXT              | Action on clicking the next button on the application page            |
| <p><br></p>                                       | ON\_EXIT          | Action on leaving the page                                            |
| <p><br></p>                                       | ON\_PAGE\_ENTER   | Action on entering a specific page                                    |
| <p><br></p>                                       | SAVE\_DRAFT       | Action on clicking the draft save button of the application           |
| Popup                                             | SAVE              | Action on clicking the save button on the Popup component             |
| <p><br></p>                                       | HIDDEN            | <p><br></p>                                                           |
| Statements (Statements)                           | EDIT              | Action on clicking the edit button on the statements component        |
| Statements populated from service (FedStatements) | EXPAND\_STATEMENT | Action on clicking the expander on the populated statements component |
| Text Field (GesTextField)                         | TOOLTIP\_CLICKED  | Action on clicking the component tooltip                              |
| Value Selection from List Field (GesCombobox)     | TOOLTIP\_CLICKED  | Action on clicking the component tooltip                              |
| <p><br></p>                                       | VALUE\_CHANGED    | Action on changing the combobox value                                 |
| Trigger                                           | CLICK             | Action on clicking the component                                      |
| Checkbox                                          | CLICK\_MORE\_INFO | Action on clicking the checkbox component's more info link            |
| <p><br></p>                                       | CHECK             | Action on checking the checkbox                                       |
| <p><br></p>                                       | UNCHECK           | Action on unchecking the checkbox                                     |
| RadioGroup                                        | VALUE\_CHANGED    | Action on changing the component value                                |
| TileGroup                                         | VALUE\_CHANGED    | Action on changing the component value                                |
| TileGroup                                         | TILE\_CLICKED     | Action on clicking a single tile in a tile group                      |

## Sample components receiving events <a href="#akcje-przykladowekomponentyodbierajacezdarzenia" id="akcje-przykladowekomponentyodbierajacezdarzenia"></a>

| Component handling actions                        | Form action type                 | Description                                                                                                                                        |
| ------------------------------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Checkbox                                          | CHECK                            | Checking the checkbox                                                                                                                              |
| <p><br></p>                                       | UNCHECK                          | Unchecking the checkbox                                                                                                                            |
| <p><br></p>                                       | TOGGLE                           | Changing the checkbox value to the opposite                                                                                                        |
| Statements populated from service (FedStatements) | CHECK\_FED\_STATEMENT            | Checks the required statement from the list of statements                                                                                          |
| Page (page)                                       | FORWARD\_PAGE                    | Move to the next page (equivalent to clicking the **Next**, **Submit application** etc.)                                                           |
| <p><br></p>                                       | BACKWARD\_PAGE                   | Move to the previous page (equivalent to clicking the **Back**, **Return** etc.)                                                                   |
| <p><br></p>                                       | REDIRECT\_TO\_RETURN\_URL        | Redirect to the URL defined in the session variable ***returnUrl***                                                                                |
| <p><br></p>                                       | REDIRECT                         | Redirect to the URL defined in the field available after selecting the REDIRECT action type                                                        |
| <p><br></p>                                       | SAVE\_DRAFT                      | Temporary save of the application                                                                                                                  |
| PageService                                       | CALL                             | Service call                                                                                                                                       |
| Popup                                             | SHOW\_POPUP                      | Opening the popup component defined in the field **Component handling the action**                                                                 |
| <p><br></p>                                       | CLOSE\_POPUP                     | Closing the popup component                                                                                                                        |
| <p><br></p>                                       | SAVE\_POPUP                      | Saving the popup component                                                                                                                         |
| Attachments (Uploadfile)                          | CLEAR\_UPLOAD\_FILE              | Clearing the added attachment (works for the ON\_PAGE\_ENTER action)                                                                               |
| Form                                              | PARK\_FORM\_WITH\_PROVIDED\_HASH | Parking the application                                                                                                                            |
| Trigger                                           | START\_APPLICATION               | Starting the process (the process set as the starting point) specified in the **applicationName** application                                      |
| Trigger                                           | START\_FORM\_BASED\_ON\_PROCESS  | Action to enter a new application (formName parameter) populated with the model from the specified process instance (processInstanceId parameter). |

{% hint style="info" %}
Demo applications: 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/documentation/documentation-en/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.
