Symbols, Variables & Constants
Data can have multiple shapes in metamorphOS. Every unit of data, called Symbol, has a certain type that defines this.
| Type | Description | Additional Specifications |
|---|---|---|
| Text | Any kind of text, like name or e-mail but also formatted text. | Text, RichText, Regex |
| Number | Allows to take in numbers and also specify the unit. | Unit |
| Money | An amount of money in a given currency. | Currencies |
| Date | Specify a certain day, optionally with a time. | |
| File | Any kind of file up to 100MB | |
| Boolean | True or False, Yes or No | |
| Likert Scale | A rating on a fixed scale, e.g. for surveys. | Scale, end labels |
| User | A user of the current workspace. | |
| Authority | Stands for a role or permission a user can have. Used for authorization. | |
| Organization | An entity that a collection of user can be part of. Used for authorization. | |
| Group | A smaller entity or team a user can be part of. Used for authorization. | |
| Program | The code behind a process. Required for creating and updating processes. | |
| Process | This is reference to a process that exists in the system. | |
| Instance | A reference to a running process, optionally filtered to a match. | Process, filters |
| Identifier | A reference to a specific row in a datastore. | Datastore |
| DataStore | A reference to a datastore. | |
| DataStore Specification | The shape (fields) a datastore’s entries take. | |
| Controller | The code for the functional component that Actions emerge from. Allows to create new Actions. | |
| Controller State | The decision state a controller exposes. | |
| Package | A sealed, versioned bundle of resources. | |
| Filter | A saved query over records. | |
| Parameter Set | A reusable group of parameters. | |
| Object | Generic kind of data object. | |
| Array | Generic kind of list. Is used in “Select from” Symbols or can be looped over with the “Iterate” controller. | Symbol Type of the Array |
Mutability: Variable vs Constant
Some data in a process does not change over the course of its execution and has a value assigned before the process starts. These are Constants. Data that changes as the process runs, or is filled in during execution, is a Variable.
Both are defined when you create the symbol. A constant’s value is fixed there and then. A variable can be given an initial value — where it starts, before the process changes it — or left empty to be filled in at runtime; its value field prompts you for that initial value accordingly.
Scope: Global vs Local
As steps require configuration, certain functional data is created that is not relevant for the business logic itself. To not clutter the data space and make it hard to lookup important information, such information is “Local” to a step, whereas the business relevant is called “Global”.
Add Data Dialog
This is the standard dialog used when defining a symbol. It can be opened from:
The same dialog also edits an existing symbol: hover a symbol row — in the Data tab, or next to a step’s parameters and return values — and use its edit control.
The dialog changes depending on the type of symbol being defined. Its Settings section holds whether the value can change at runtime and which values are allowed; the Value section holds the value itself (for a variable, its initial value).
the Create button will enable once all required fields for the particular type and configuration
Add Data (Standard)
.065c2511.webp)
The standard Add Data dialog starts configured to create a constant.
Add new Parameter
.baafc28c.webp)