Internal Data Providers
Learn about the built-in Internal Data Providers available for process, phase or step.
Internal data providers are not configurable. They are created automatically during the execution of the process.
Depending on the context (process, phase, step) the following built-in data providers are available:
-
Process Storage (
$process
): The process storage is available during the whole process. Use the process storage to share data between process steps. For further details, see Process Storage Variables. -
Step Storage (
$step
): The step storage is a temporary storage available only within a step. The step storage contains the output of the action executed in this step and builds the basis for decisions made during validation and dispatching. -
Input Message (
$in
): The input message contains the process step's input, e.g. theuid
of the record from which the process was launched. -
Output Message (
$out
): The output message contains the step's output, e.g. theuid
of a newly created record.Usually the input of a process step is the output of its predecessor step. For further details, see Dispatching.
The initial process step receives the input from the process, which in turn forms the initial input message from the arguments passed to the process action template.
Syntax
To access the values stored in a data provider when defining phases/steps/metrics,
select the data provider from the Source drop-down list and enter
a JavaScript expression like $.get('uid')
.
$
always represents the selected data provider.
Example: $.get('curY1Uid')
gets the record stored in the variable
curY1Uid
in $process
.
Use JavaScript to define conditions based on these values, e.g.
$.get('curY2Count')==0?0:1
For more syntax examples, see Examples.
The process engine provides access to the values in data providers through small JavaScript expressions like the following:
$.get("uid")
Javascript expressions are not limited to accessing values in data providers but are also in variety of other situations, such as:
- Conditions for dispatching
- Conditions for process phase activation (canActivate/isActive)
- Input-/output-arguments for actions
- Validators
- Metrics
- Process storage entries
Exception: For output arguments of an action, $
always refers to
data provider $step
(which contains the output of the action). The data
provider selected in the drop-down list acts as the target data provider, that
receives the value of the expression.
In addition to the variable $
accessing the selected data provider
there are two predefined variables that can be used in expressions:
-
process:
Refers to the process storage -
step:
Refers to the current step (only available if the expression is executed in the context of a process step e.g. for dispatching)
Use process
and step
to access the values of
all data providers when defining output arguments and Process Ask pages,
>> Process Ask Configuration.
Examples:
Internal Data Provider
-
process.get('curOpportunityUid')
-
step.get('uid')
ReadRecordDataProvider
-
step.get('curCompanyInfo.$').get('Name')
Gets the company name of a record specified in
curCompanyInfo
.
ExecuteQueryDataProvider
-
step.get('curActivityCount.$').getNumberOfRows()
Gets the number of result rows from a query defined in
curActivityCount
.Note: For external data providers, you need to specify.$
at the end of the string to "simulate" the$
that represents the source.