Pipelet SearchCustomObject
Pipelet SearchCustomObject

This pipelet searches for the custom object instances of the specified type.

Output will be a SearchResult containing all object instances of the specified type that match the explicit SearchExpression OR the search criteria specified in Search*Key/Search*Value pairs. Please note: If search keys are specified by Search*Key parameters, the pipelet executes an ILIKE (case insensitive) query with right-hand wildcard on the values. This specific mode is typically for a "query by example" search in a user interface.

If no search criteria is provided the pipelet returns all object instances of the specified object type. In either case, SearchResultCount contains the number of objects in the SearchResult.

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), while for system attributes no prefix is used (e.g. name).

Supported value types with sample expression values:

  • String 'String'
  • Integer 1, 3E4
  • Number 1.0, 3.99E5
  • Date yyyy-MM-dd e.g. 2007-05-31 (Default TimeZone = UTC)
  • DateTime yyyy-MM-dd'T'hh:mm:ss+Z e.g. 2007-05-31T00:00+Z (Z TimeZone = UTC) or 2007-05-31T00:00:00
  • Boolean true, false
  • Email 'search@demandware.com'
  • Set of String 'String'
  • Set of Integer 1, 3E4
  • Set of Number 1.0, 3.99E5
  • Enum of String 'String'
  • Enum of Integer 1, 3E4
The following types of attributes are not queryable:
  • Image
  • HTML
  • Text
  • Quantity
  • Password

Note, that some system attributes are not queryable by default regardless of the actual value type code.

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 only
  • LIKE 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 matching

Conditions 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 pipelet provides a placeholder syntax to dynamically pass objects as search parameters. Each passed object is related to a placeholder in the SearchExpression configuration parameter. The placeholder must be an Integer that is surrounded by braces and relates to one of the input parameter Search*Value, e.g. custom.dtvalue <= {1}.

The sorting order and direction can be specified by SortExpression OR by using the SortBy* / SortBy*Direction pairs. Please note that specifying a localized custom attribute as the sorting attribute is not supported.

Group:
CustomObject
Configuration Properties
CaseSensitive  :  Boolean (Optional)
In case of a key/value based search definition the config value specifies whether a case sensitive or case insensitive LIKE is executed. Default is a case insensitive search.
Permissible Values:
false
true
CustomObjectType  :  String (Required)
The name of the custom object type to search for.
SearchExpression  :  String (Optional)
The expression defining the search conditions. Samples: "custom.svalue like 'Some*' AND custom.dvalue > 10.5", "custom.dtvalue <= {1}" The {1} points to an object value specified by dictionary-in parameter Search1Value.
SortExpression  :  String (Optional)
The expression defining the sorting conditions. Samples: "custom.svalue ASC", "custom.dtvalue DESC", "custom.svalue ASC, custom.dvalue DESC"
Input Parameters
Search1Key  :  String (Optional)
The ID identifying the attribute to search for. Samples: "creationDate", "custom.dtvalue"
Search2Key  :  String (Optional)
The ID identifying the attribute to search for. Samples: "creationDate", "custom.dtvalue"
Search3Key  :  String (Optional)
The ID identifying the attribute to search for. Samples: "creationDate", "custom.dtvalue"
Search4Key  :  String (Optional)
The ID identifying the attribute to search for. Samples: "creationDate", "custom.dtvalue"
Search5Key  :  String (Optional)
The ID identifying the attribute to search for. Samples: "creationDate", "custom.dtvalue"
Search1Value  :  Object (Optional)
The value to search for, an object of type String, Number, Date or Boolean.
Search2Value  :  Object (Optional)
The value to search for, an object of type String, Number, Date or Boolean.
Search3Value  :  Object (Optional)
The value to search for, an object of type String, Number, Date or Boolean.
Search4Value  :  Object (Optional)
The value to search for, an object of type String, Number, Date or Boolean.
Search5Value  :  Object (Optional)
The value to search for, an object of type String, Number, Date or Boolean.
SortBy1  :  String (Optional)
The ID identifying a sorting attribute. Samples: "creationDate", "custom.dtvalue"
SortBy1Direction  :  Number (Optional)
Specifies the sorting direction of the related sorting attribute. (1 = ASC, other value = DESC)
SortBy2  :  String (Optional)
The ID identifying a sorting attribute. Samples: "creationDate", "custom.dtvalue"
SortBy2Direction  :  Number (Optional)
Specifies the sorting direction of the related sorting attribute. (1 = ASC, other value = DESC)
SortBy3  :  String (Optional)
The ID identifying a sorting attribute. Samples: "creationDate", "custom.dtvalue"
SortBy3Direction  :  Number (Optional)
Specifies the sorting direction of the related sorting attribute. (1 = ASC, other value = DESC)
Output Parameters
SearchResult  :  Iterator  :  (Required)
The custom object instances that match the search criteria.
SearchResultCount  :  Integer  :  (Required)
The number of custom object instances in the SearchResult.