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. the uid of the record from which the process was launched.
  • Output Message ($out): The output message contains the step's output, e.g. the uid 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.