# Stream Variable Store

## Introduction

Store variables are the third kind of variables which can be used within Helmut4.\
Beside the [Helmut Variables](https://docs.helmut.de/helmut4-releases/v4.10.0/helmut4-components/helmutfx/preferences/helmut-variables) and the [Temporary Stream Variables](https://docs.helmut.de/helmut4-releases/v4.10.0/helmut4-components/streamdesigner/nodes/actions/misc/stream-set-temporary-variable-action), Store Variables offer more flexibility towards creation, modification and deletion.

As temporary variables can only be created and used in a stream (they can be passed on to another stream by using [Stream Execute Generic Stream Action](https://docs.helmut.de/helmut4-releases/v4.10.0/helmut4-components/streamdesigner/nodes/actions/misc/stream-execute-generic-stream-action) or [Job Create Job Action](https://docs.helmut.de/helmut4-releases/v4.10.0/helmut4-components/streamdesigner/nodes/actions/job-action/job-create-job-action)), Helmut Variables can be used in any stream or path input fields (expect Watchfolder paths).

## Access Variable Store

The variable store can only be access from within a any stream. Simply click the "Variables" icon in the top menu bar, which will open the Variable Store as an overlay.

<figure><img src="https://content.gitbook.com/content/g3aidOE5kukL7ZTq8g05/blobs/lLXORlU5SbJyqwRIioMM/image.png" alt=""><figcaption><p>Open Store Variable within Stream</p></figcaption></figure>

The Variable Store is showing all existing store variables, it will always show a pack of 25 variables. Navigating to the next page can be done using the bottom menu. Variables are listed ascending from their creation date.

<figure><img src="https://content.gitbook.com/content/g3aidOE5kukL7ZTq8g05/blobs/r1nuFB1qmtCvWbkWq1Ik/image.png" alt="" width="563"><figcaption><p>(Store) Variable Store</p></figcaption></figure>

### Creating a new store variable

There are two options to create a store variable.

1. Using the [Stream Set Store Variable Action](https://docs.helmut.de/helmut4-releases/v4.10.0/helmut4-components/streamdesigner/nodes/actions/misc/stream-set-store-variable-action)
2. Creating them within the Variable Store

To create a new one, simply click the **+ New** button in the top right of the Variable Store. This will open a new overlay.

<figure><img src="https://content.gitbook.com/content/g3aidOE5kukL7ZTq8g05/blobs/mDJp8qAmNKTXga88CCta/image.png" alt="" width="375"><figcaption><p>Modify Store Variable</p></figcaption></figure>

The new windows will provide a mask with three input parameters which need to be defined.

* **Key**
  * Name of the store variable
  * Only alphanumeric characters are allowed:  a-z A-Z 0-9\
    as well as hyphen (-) and underscore (\_)
  * This regex can be considered for all allowed characters \[^a-zA-Z0-9\_-]+
  * Max length: 255<br>
* **Value**
  * Value/content of the store variable
  * There are no limitations towards unsupported characters
  * Max length: 1 million characters (1.000.000)<br>
* **Protected**
  * If the switch is activated/protected, the store variable can't be changed when using the [Stream Set Store Variable Action](https://docs.helmut.de/helmut4-releases/v4.10.0/helmut4-components/streamdesigner/nodes/actions/misc/stream-set-store-variable-action)

<figure><img src="https://content.gitbook.com/content/g3aidOE5kukL7ZTq8g05/blobs/stQxbeR7k1NXaeaRzPSQ/image.png" alt=""><figcaption><p>Trying to change a protected store variable</p></figcaption></figure>

## Interact with Store Variables

For further information head to [Store Variable ?](https://docs.helmut.de/helmut4-releases/v4.10.0/helmut4-components/streamdesigner/wildcards/variable-related-wildcards-3/store-variable)
