Item

The Flow Items valves

Introduction

The Flow Items API defines how to create, remove and iterate over uniquely identified objects stored in the currently executing Flow's state called items.

Valves that support item iteration is executed on each item surviving item filtering.

Common configuration

These configuration properties applies to all valves that support item iteration

NameDescription

item_include_expr

Predicate expression for controlling if an item should be included in iteration ("item filtering").

Iteration

To control which items that are included in iteration you can enable item filtering. Filtering is based on a predicate expression (a boolean expression that returns true or false) deciding if the current item should be included or not.

The actual filter is an ECMA-script (JavaScript) that MUST evaluate to true, false or a function returning true or false.

// Skip all items
"item_include_expr": "false"

// Include items with property "mobile"
"item_include_expr": "item.mobile != null"

During expression evaluation data is made available in scopes. A scope is a map (i.e key-values or hash) where values are accessed using a name and plain dot notation.

// Get id of current item
item.id

// Get first value of item property displayName 
// Note: item properties are multivalue
item.displayname.0

// or
item.displayname

// Get id of current session
session.id

// Get first value of multivalue "roles" stored in session
session.roles.0

// Get value "otp" from state set by previous valve
state.otp

The following scopes are available:

NameDescriptionCase-insensitive

item

The current item. All item properties are multi-value except for id.

session

The current session

state

The current state