ABAP Keyword Documentation → ABAP - Reference → Processing External Data → ABAP Database Accesses → Object Services → query service
Query Service Components
A query is represented by a query object, which is managed by a Query Manager (also an object). The Query Manager represents the query service with respect to the ABAP program.
To create a Query Manager, you need the static method GET_QUERY_MANAGER of the general system service class CL_OS_SYSTEM.
An ABAP program does not work with the Query Manager and queries by using class reference variables. Instead, it uses the interfaces IF_OS_QUERY_MANAGER, IF_OS_QUERY, and IF_OS_QUERY_FACTORY.
A query is not executed directly, but using the method GET_PERSISTENT_BY_QUERY of the interface IF_OS_CA_PERSISTENCY of a class agent. This means a search is carried out for persistent objects of the associated persistent class that match the filter condition.
The options for executing a query are controlled using the interface IF_OS_QUERY_OPTIONS. To enable this, a structure of type IF_OS_QUERY_OPTIONS=>OPTIONS can be passed to method GET_PERSISTENT_BY_QUERY.
Other versions:
7.31 | 7.40 | 7.54
Relevant Method of the System Service
Most of the components of the system service class CL_OS_SYSTEM are used internally by the Object Services. A method must be used in an application program to be able to work explicitly with object-oriented queries.
- GET_QUERY_MANAGER
Methods of the Query Manager
The Query Manager manages the object-oriented queries of the ABAP program and is executed from interface IF_OS_QUERY_MANAGER.
- IF_OS_QUERY_MANAGER~CREATE_QUERY
string
.
The sort condition is passed to the parameter I_ORDERING of type string
.
If the query’s parameters are specified using a parameter list, this must be passed to the parameter I_PARAMETERS of type string
.
Methods of a Query
Queries are executed from interfaces IF_OS_QUERY and IF_OS_QUERY_EXPR_FACTORY.
Methods of the Interface IF_OS_QUERY
- IF_OS_QUERY~GET_EXPR_FACTORY
- IF_OS_QUERY~SET_FILTER_EXPR
- IF_OS_QUERY~SET_PARAMETERS_EXPR
- IF_OS_QUERY~SET_ORDERING_EXPR
- IF_OS_QUERY~PARSE
Methods of the Interface IF_OS_QUERY_EXPR_FACTORY
- IF_OS_QUERY_EXPR_FACTORY~CREATE_OPERATOR_EXPR
attr1 operator attr2,
where attr1, operator, and attr2 are the values of parameters I_ATTR, I_OPERATOR and I_ATTR2.
attr1 operator 'val' or
attr1 operator val_w_quotes
where val and val_w_quotes are the values of parameters I_VAL and I_VAL_W_QUOTES.
i
is passed, val
is the value of the parameter from the parameter list, for which the index when the query is executed is determined by the value of parameter I_IDX.
- IF_OS_QUERY_EXPR_FACTORY~CREATE_LIKE_EXPR
attr [NOT] LIKE 'pattern' or
attr [NOT] LIKE pattern_w_quotes,
where attr, pattern, and pattern_w_quotes are the values of the parameters I_ATTR, I_PATTERN and I_PATTERN_W_QUOTES.
i
is passed, pattern
is the value of the parameter from the parameter list, for which the index when the query is executed is determined by the value of parameter I_IDX.
- IF_OS_QUERY_EXPR_FACTORY~CREATE_ISNULL_EXPR
attr IS [NOT] NULL,
where attr is the value of parameter I_ATTR.
- IF_OS_QUERY_EXPR_FACTORY~CREATE_REF_EXPR
attr EQUALSREF ref,
where attr is the value of parameter I_ATTR and ref is the value of the parameter from the parameter list whose index when the query is executed is determined by the value of parameter I_IDX.
- IF_OS_QUERY_EXPR_FACTORY~CREATE_NOT_EXPR
NOT ( expr ),
where expr is a filter condition that has already been created and passed to parameter I_EXPR.
- IF_OS_QUERY_EXPR_FACTORY~CREATE_AND_EXPR
( expr1 ) AND ( expr2 )
where expr1 or expr2 are filter conditions that have already been created and passed to parameter I_EXPR1 or I_EXPR2.
- IF_OS_QUERY_EXPR_FACTORY~CREATE_OR_EXPR
( expr1 ) OR ( expr2 )
where expr1 or expr2 are filter conditions that have already been created and passed to parameter I_EXPR1 or I_EXPR2.
- IF_OS_QUERY_EXPR_FACTORY~CREATE_PARAMETERS_EXPR
- IF_OS_QUERY_EXPR_FACTORY~CREATE_ORDERING_EXPR