Home > docs > plugins v1 > JSON Store Task
The jsonStore task provides access to JSON Stores.
It allows users to add, update and remove JSON store items using Concord flows.
This task is provided automatically by Concord.
Syntax:
- ${jsonStore.isStoreExists(orgName, storeName)}
- ${jsonStore.isStoreExists(storeName)}
The task uses the current process’ organization name if the orgName parameter
is omitted.
The expression returns true if specified store exists.
Syntax:
- ${jsonStore.isExists(orgName, storeName, itemPath)}
- ${jsonStore.isExists(storeName, itemPath)}
The task uses the current process’ organization name if the orgName parameter
is omitted.
The expression returns true if specified item exists.
Syntax:
- ${jsonStore.put(orgName, storeName, itemPath, data)}
- ${jsonStore.put(storeName, itemPath, data)}
- ${jsonStore.upsert(orgName, storeName, itemPath, data)}
- ${jsonStore.upsert(storeName, itemPath, data)}
The data parameter must be a Java object. Only types that can be represented
in JSON are supported: Java lists, maps, strings, numbers, boolean values, etc.
If the orgName parameter is omitted the current organization is used.
The task uses the current process’ organization name if the orgName parameter
is omitted.
The upsert method creates the specified JSON store if it doesn’t exist.
Example:
configuration:
arguments:
myItem:
x: 123
nested:
value: "abc"
flows:
default:
# uses the current organization
- "${jsonStore.put('myStore', 'anItem', myItem)}"
Syntax:
- ${jsonStore.get(orgName, storeName, itemPath)}
- ${jsonStore.get(storeName, itemPath)}
The expression returns the specified item parsed into a Java object or null
if no such item exists.
Example:
flows:
default:
- expr: "${jsonStore.get('myStore', 'anItem')}"
out: anItem
- if: "${anItem == null}"
then:
- log: "Can't find the item you asked for."
else:
- log: "${anItem}"
Syntax:
- ${jsonStore.delete(orgName, storeName, itemPath)}
- ${jsonStore.delete(storeName, itemPath)}
The expression returns true if the specified item was removed or false if
it didn’t exist.
- ${jsonStore.upsertQuery(orgName, storeName, queryName, queryText)}
- ${jsonStore.upsertQuery(storeName, queryName, queryText)}
The task uses the current process’ organization name if the orgName parameter
is omitted.
Syntax:
- ${jsonStore.executeQuery(storeName, queryName)}
- ${jsonStore.executeQuery(storeName, queryName, params)}
- ${jsonStore.executeQuery(orgName, storeName, queryName)}
- ${jsonStore.executeQuery(orgName, storeName, queryName, params)}
The expression returns a List of items where each item represents a row
object returned by the query.
Query parameters (the params arguments) must be a Java Map object that can
be represented with JSON.
You can also pass the parameters directly in the expression:
- "${jsonStore.executeQuery('myStore', 'lookupServiceByUser', {'users': ['mike']})}"
Example:
configuration:
arguments:
myQueryParams:
users:
- "mike"
flows:
default:
- expr: "${jsonStore.executeQuery('myStore', 'lookupServiceByUser', myQueryParams)}"
out: myResults
- log: "${myResults}"
(see also the example on the JSON Store page).