Skip to Content
Reference GuideCore ConceptsSymbols, Variables & Constants

Symbols, Variables & Constants

Data can have multiple shapes in metamorphOS. Every unit of data, called Symbol, has a certain type that defines this.

TypeDescriptionAdditional Specifications
TextAny kind of text, like name or e-mail but also formatted text.Text, RichText, Regex
NumberAllows to take in numbers and also specify the unit.Unit
MoneyAn amount of money in a given currency.Currencies
DateSpecify a certain day, optionally with a time.
FileAny kind of file up to 100MB
BooleanTrue or False, Yes or No
Likert ScaleA rating on a fixed scale, e.g. for surveys.Scale, end labels
UserA user of the current workspace.
AuthorityStands for a role or permission a user can have. Used for authorization.
OrganizationAn entity that a collection of user can be part of. Used for authorization.
GroupA smaller entity or team a user can be part of. Used for authorization.
ProgramThe code behind a process. Required for creating and updating processes.
ProcessThis is reference to a process that exists in the system.
InstanceA reference to a running process, optionally filtered to a match.Process, filters
IdentifierA reference to a specific row in a datastore.Datastore
DataStoreA reference to a datastore.
DataStore SpecificationThe shape (fields) a datastore’s entries take.
ControllerThe code for the functional component that Actions emerge from. Allows to create new Actions.
Controller StateThe decision state a controller exposes.
PackageA sealed, versioned bundle of resources.
FilterA saved query over records.
Parameter SetA reusable group of parameters.
ObjectGeneric kind of data object.
ArrayGeneric 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).

Note

the Create button will enable once all required fields for the particular type and configuration

Add Data (Standard)

The standard Add Data dialog starts configured to create a constant.

Add new Parameter

Last updated on