Domain Prefixes


This page details the various domain prefixes used in Appian. Domain prefixes appear before the identifying name of certain functions, rules, data, etc. Between the prefix and name is an exclamation mark !, also referred to as a 'bang'.

Domain prefixes serve a couple of purposes:

  • Prevents name collisions - If functions, rules, or other properties are identically named, the domain prefix will define what Appian uses.
  • Invoke properties - In the appropriate context, domain prefixes are used to invoke a particular property.

Domain prefixes are used anywhere someone can create an expression. However, certain prefixes are only used in certain contexts.

Best Practice: With the exception of the fn! domain designers should always uses domain prefixes in their expressions.

After entering a domain prefix in an expression, a type ahead will begin to suggest the best matched function, object, or data point.

Function Prefixes

There are two function domain prefixes in Appian: fn! and a!. a! is used to call various system, smart service, and connector functions as well as interface components. While a! should always be used to call one of these functions or components, fn! does not need to be.

Object Prefixes

Rule-based objects also have a domain prefix. These include:

Data Prefixes

Stored data values can be invoked with domain prefixes as well. Of these data prefixes, certain are specific to one object type while others can be used in many

Multiple Object Prefixes

The following data prefixes can be used in multiple object types in Appian.

  • Rule Inputs - ri! Rule-based objects, like expression rules, interfaces, and decisions, let designers create rule inputs, which are invoked using the ri! prefix.

Single Object Prefix

The following prefixes can only be invoked in certain cases: within an object's expression editors (like process models or record types).

Do not reference these prefixes outside of their intended location. For example, do not try to use pv! or rf! directly on an interface. Instead create a rule input for those values and pass data in through the rule input.

Process Only Prefixes

Process models have several out-of-the-box domain prefixes that can be used from expression editors within the Process Modeler.

Process Level Prefixes
  • Process Model Properties - pm!
  • Process Properties - pp!
  • Process Variables - pv!
Node Level Prefixes
  • Activity Class Parameters - ac!
  • Task Properties - tp!
  • Message Properties - msg!

Record Only Prefixes

Record types have three domain prefixes that can be used to retrieve certain record data and properties.

  • Record Fields - rf!
  • Record Properties - rp!
  • Record Service Properties - rsp! Exclusively used with expression-backed records.

Web API Only Prefixes

Web APIs use the http! prefix to expose certain http properties when someone calls that web API.

Test Prefixes

Test cases in Expression rules can use test!output to create test assertions based on the test's output.

Function-Specific Prefixes

Within certain functions, properties of that function can be called by using the following prefixes:

  • Local Variables - local! Through the load() and with() functions designers can create local variables and call those local variables using the local! prefix.
  • Function Variables - fv! used within certain functions and interface components. The available function variables will be listed in the inline documentation.
  • Save Value - save! used within a!save() function.