Pipes
2.1.0 Pipes
2.1.0 Pipes
  • Introduction
  • Configuration
  • Valves
    • Debug
      • Dump Request
      • Dump Session
      • Dump State
    • Flow
      • Flow Fail
      • Flow State Add
      • Assert Value
      • Pipe Exec
      • Pipe Call
    • Item
      • Item Create
      • Item Merge
      • Item Remove
      • Items Remove
      • Item Property Add
      • Item Property Split
      • Item Property Rename
      • Item Property Token Replace
      • MV Property To Items
      • MV Property Join
    • Freja
    • BankID
      • BidOperation
      • BidToItems
    • DateTime
      • Instant Generator
      • Instant Transformer
    • HTTP
      • GET
      • PUT
      • POST
      • DELETE
    • JWT
      • CreateJwt
      • ParseJwt
    • JSON
      • JsonObjectCreate
    • LDAP
      • LDAP Search
      • LDAP Group Filter
      • LDAP Bind
      • LDAP Add
      • LDAP Modify
      • LDAP Move
      • DN Parse
    • JDBC Query
    • Cef event
    • Request
      • RequestParameterExist
      • RequestParameterRename
    • Session
      • Session Put
      • CopyFromSession
    • ScriptEval
    • Codecs
      • Base64 Encode
      • Base64 Decode
    • Tokens
      • Token Authentication
    • PKI
      • X509 Certificate Extractor
      • X509 Certificate Validator
    • Delivery
      • Clean Mobile Valve
      • SMS Valve
      • Voice Valve
      • SMTP Valve
    • OTP
      • OTP Generation
      • OTP Validation
    • Misc
      • Basic Auth
Powered by GitBook
On this page
  • Introduction
  • Common configuration
  • Iteration
  1. Valves

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

Name
Description

item_include_expr

{
    "name":"ItemPropertyAdd",
    "config": {
        "item_include_expr":"item.id.startsWith('tmp_')",
        "name":"mv_pipe_exec",
        "value":"${utils.now}"
    }
}

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:

Name
Description
Case-insensitive

item

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

session

The current session

state

The current state

PreviousPipe CallNextItem Create

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

iteration