Searches for a single system object instance.
Searches for system object instances.
Searches for system object instances.
null
in case no such type definition exists.
The method throws an exception in case of another system type.
It is strongly recommended to call close()
on the returned SeekableIterator
if not all of its elements are being retrieved. This will ensure the proper cleanup of system resources.
Searches for a single system object instance. The following system
object types are supported:
The method throws an exception in case of another system type.
The search can be configured using a simple query language, which provides most common filter and operator functionality.
The identifier for an attribute to use in a query condition is always the
ID of the attribute as defined in the type definition. For custom defined attributes
the prefix custom is required in the search term (e.g. custom.color = {1}
),
while for system attributes no prefix is used (e.g. name = {4}
).
Supported attribute value types with sample expression values:
'String', 'Str*', 'Strin?'
1, 3E4
1.0, 3.99E5
yyyy-MM-dd e.g. 2007-05-31 (Default TimeZone = UTC)
yyyy-MM-dd'T'hh:mm:ss+Z e.g. 2007-05-31T00:00+Z (Z TimeZone = UTC) or 2007-05-31T00:00:00
true, false
'[email protected]', '*@demandware.com'
'String', 'Str*', 'Strin?'
1, 3E4
1.0, 3.99E5
'String', 'Str*', 'Strin?'
1, 3E4
The following operators are supported in a condition:
=
Equals - All types; supports NULL value (thumbnail = NULL
)!=
Not equals - All types; supports NULL value (thumbnail != NULL
)<
Less than - Integer, Number and Date types only>
Greater than - Integer, Number and Date types only<=
Less or equals than - Integer, Number and Date types only>=
Greater or equals than - Integer, Number and Date types onlyLIKE
Like - String types and Email only; use if leading or trailing
wildcards will be used to support substring search(custom.country LIKE 'US*'
)ILIKE
Caseindependent Like - String types and Email only, use to support
case insensitive query (custom.country ILIKE 'usa'
), does also support wildcards for
substring matchingConditions can be combined using logical expressions 'AND', 'OR' and 'NOT'
and nested using parenthesis e.g.
gender = {1} AND (age >= {2} OR (NOT profession LIKE {3}))
.
The query language provides a placeholder syntax to pass objects as
additional search parameters. Each passed object is related to a
placeholder in the query string. The placeholder must be an Integer that
is surrounded by braces. The first Integer value must be '0', the second
'1' and so on, e.g.
querySystemObjects("sample", "age = {0} or creationDate >= {1}", 18, date)
If there is more than one object matching the specified query criteria, the
result is not deterministic. In order to retrieve a single object from a sorted result
set it is recommended to use the following code:
querySystemObjects("", "custom.myAttr asc", null).first()
.
The method first()
returns only the next element and closes the
iterator.
It is strongly recommended to call close()
on the returned SeekableIterator
if not all of its elements are being processed. This will enable the cleanup of system resources.
type
which was found when executing the queryString
.
Searches for system object instances. The following system object types
are supported:
The method throws an exception in case of another system type.
The search can be configured using a simple query language, which provides most common filter and operator functionality.
The identifier for an attribute to use in a query condition is always the
ID of the attribute as defined in the type definition. For custom defined attributes
the prefix custom is required in the search term (e.g. custom.color = {1}
),
while for system attributes no prefix is used (e.g. name = {4}
).
Supported attribute value types with sample expression values:
'String', 'Str*', 'Strin?'
1, 3E4
1.0, 3.99E5
yyyy-MM-dd e.g. 2007-05-31 (Default TimeZone = UTC)
yyyy-MM-dd'T'hh:mm:ss+Z e.g. 2007-05-31T00:00+Z (Z TimeZone = UTC) or 2007-05-31T00:00:00
true, false
'[email protected]', '*@demandware.com'
'String', 'Str*', 'Strin?'
1, 3E4
1.0, 3.99E5
'String', 'Str*', 'Strin?'
1, 3E4
The following operators are supported in a condition:
=
Equals - All types; supports NULL value (thumbnail = NULL
)!=
Not equals - All types; supports NULL value (thumbnail != NULL
)<
Less than - Integer, Number and Date types only>
Greater than - Integer, Number and Date types only<=
Less or equals than - Integer, Number and Date types only>=
Greater or equals than - Integer, Number and Date types onlyLIKE
Like - String types and Email only; use if leading or trailing
wildcards will be used to support substring search(custom.country LIKE 'US*'
)ILIKE
Caseindependent Like - String types and Email only, use to support
case insensitive query (custom.country ILIKE 'usa'
), does also support wildcards for
substring matchingConditions can be combined using logical expressions 'AND', 'OR' and 'NOT'
and nested using parenthesis e.g.
gender = {1} AND (age >= {2} OR (NOT profession LIKE {3}))
.
The query language provides a placeholder syntax to pass objects as
additional search parameters. Each passed object is related to a
placeholder in the query string. The placeholder must be an Integer that
is surrounded by braces. The first Integer value must be '0', the second
'1' and so on, e.g.
querySystemObjects("sample", "age = {0} or creationDate >= {1}", 18, date)
The sorting parameter is optional and may contain a comma separated list of
attribute names to sort by. Each sort attribute name may be followed by an
optional sort direction specifier ('asc' | 'desc'). Default sorting directions is
ascending, if no direction was specified.
Example: age desc, name
Please note that specifying a localized custom attribute as the sorting attribute is
currently not supported.
Sometimes it is desired to get all instances of specified type with a special sorting condition.
This can be easily done by providing the 'type' of the system object and the 'sortString' in combination with
an empty 'queryString', e.g. querySystemObjects("sample", "", "ID asc")
It is strongly recommended to call close()
on the returned SeekableIterator
if not all of its elements are being retrieved. This will ensure the proper cleanup of system resources.
Searches for system object instances. The following system object types
are supported:
The method throws an exception in case of another system type.
The search can be configured with a map, which key-value pairs are converted into a query expression. The key-value pairs are turned into a sequence of '=' or 'like' conditions, which are combined with AND statements.
Example:
A map with the key/value pairs: 'name'/'tom*', 'age'/66
will be converted as follows: "name like 'tom*' and age = 66"
The identifier for an attribute to use in a query condition is always the
ID of the attribute as defined in the type definition. For custom defined attributes
the prefix custom is required in the search term (e.g. custom.color = {1}
),
while for system attributes no prefix is used (e.g. name = {4}
).
Supported attribute value types with sample expression values:
'String', 'Str*', 'Strin?'
1, 3E4
1.0, 3.99E5
yyyy-MM-dd e.g. 2007-05-31 (Default TimeZone = UTC)
yyyy-MM-dd'T'hh:mm:ss+Z e.g. 2007-05-31T00:00+Z (Z TimeZone = UTC) or 2007-05-31T00:00:00
true, false
'[email protected]', '*@demandware.com'
'String', 'Str*', 'Strin?'
1, 3E4
1.0, 3.99E5
'String', 'Str*', 'Strin?'
1, 3E4
The sorting parameter is optional and may contain a comma separated list of
attribute names to sort by. Each sort attribute name may be followed by an
optional sort direction specifier ('asc' | 'desc'). Default sorting directions is
ascending, if no direction was specified.
Example: age desc, name
Please note that specifying a localized custom attribute as the sorting attribute is
currently not supported.
It is strongly recommended to call close()
on the returned SeekableIterator
if not all of its elements are being retrieved. This will ensure the proper cleanup of system resources.