Formula - Count
The count function, one of the Math functions in the Formula plugin for Search Field Expressions, returns how many values the content holds.
Syntax
count(content [, unique])
Parameters
| Parameter | Required | Description |
|---|---|---|
content |
✅ Yes | The values to count: body, context, or another Formula function such as xPath or jsonPath. |
unique |
❌ No | Unquoted true or false; default true for this function. false: a value that appears several times counts every time. true: identical values count once. Values are compared as text, so 100 and 100.00 are different values. A quoted 'true' is an error. |
Returns
- One number: how many values
contentholds. - Duplicates are counted once by default, because
uniquedefaults totrueforcount(see Example 5). Usecount(..., false)to count every occurrence.
Quoting, nesting, and how content is resolved are described in the Formula language rules.
Examples
Example 1: Count the orders in an XML message
Input
Message Body:
<ns0:Orders xmlns:ns0="SupplyChain.Schemas/1.0">
<Order>
<Id>1337</Id>
<Amount>666</Amount>
<City>New York</City>
<Partner>QWNtZQ==</Partner>
</Order>
<Order>
<Id>1338</Id>
<Amount>42</Amount>
<City>Paris</City>
<Partner>QWNtZQ==</Partner>
</Order>
</ns0:Orders>
Formula
count(xPath('Orders/Order/Id', body))
Result
2
xPath returns the two order ids, 1337 and 1338.

Counting the Id elements gives the number of orders in the message, here 2.
Example 2: Count the message body
Input
Message Body:
Nodinite
Formula
count(body)
Result
1

The whole message body is one value, so count returns 1.
Example 3: Count a message context value
Input
Message Context:
| Key | Value |
|---|---|
id |
Nodinite |
Formula
count(context('id'))
Result
1

The context key id holds one value, so count returns 1.
Example 4: Count the values extracted from JSON
Input
Message Body:
{a:[{b:'This'},{b:'is'},{b:'Formula Plugin'}]}
Formula
count(jsonPath('a[*].b', body))
Result
3

jsonPath extracts This, is, and Formula Plugin, so count returns 3.
Example 5: Count values that contain duplicates
Input
Message Body:
{a:[{b:'This'},{b:'is'},{b:'is'},{b:'Formula Plugin'}]}
Formula
count(jsonPath('a[*].b', body))
Result
3

The array holds four values, but is appears twice and is counted once, so count returns 3.
Example 6: Count values across several message context keys
Input
Message Context:
| Key | Value |
|---|---|
id |
<Orders><Id>3</Id><Id>6</Id></Orders> |
id2 |
<Orders><Id>4</Id><Id>5</Id></Orders> |
Formula
count(xPath('/Orders/Id', context(regex('id.*'))))
Result
4

context(regex('id.*')) returns both XML values, and xPath extracts two ids from each, so count returns 4.