sapdev logo background
sapdev logo sapdev logo
Comments

SAP OS QUERY COMPS documentation, setup help and example usage



Return to SAP documentation index


ARTICLE

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 .

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

  • This static method returns the return value RESULT of type
    IF_OS_QUERY_MANAGER containing a reference to the Query Manager. The Query Manager is created when you initialize the Object Services.

    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

  • Creates a query and returns a reference to the query object in return value RESULT of type IF_OS_QUERY . The filter condition is passed to the parameter I_FILTER of type 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

  • Returns a reference to a query expression factory in the return parameter RESULT of type IF_OS_QUERY_EXPR_FACTORY . Technically speaking, a query expression factory is part of a query object, although it is executed using the interface
    IF_OS_QUERY_EXPR_FACTORY , like a separate object.
  • IF_OS_QUERY~SET_FILTER_EXPR

  • Sets the filter condition. The internal display of the filter condition that is created with a query expression factory is passed to parameter I_FILTER_EXPR of type IF_OS_QUERY_FILTER_EXPR .
  • IF_OS_QUERY~SET_PARAMETERS_EXPR

  • Sets the parameter list of the filter condition. The internal display of the parameter list that is created with a query expression factory is passed to parameter I_PARAMETERS_EXPR of type
    IF_OS_QUERY_PARAMETERS_EXPR .
  • IF_OS_QUERY~SET_ORDERING_EXPR

  • Sets the sort condition. The internal display of a sort condition created with the query expression factory is passed to parameter
    I_ORDERING_EXPR of type IF_OS_QUERY_ORDERING_EXPR .
  • IF_OS_QUERY~PARSE

  • Creates the internal displays of the filter condition, the parameter list, and the sort term if these have not yet been created or set.

    Methods of the Interface IF_OS_QUERY_EXPR_FACTORY
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_OPERATOR_EXPR

  • Creates either a filter condition in the form
    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 .
    If parameter I_IDX of type 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
    .
    The filter condition that is created is returned in the return value RESULT of type IF_OS_QUERY_FILTER_EXPR .
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_LIKE_EXPR

  • Creates a filter condition in the following form (depends on the value of I_NOT parameter)
    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 .
    If parameter I_IDX of type 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 .
    Specifying parameter I_ESCAPE or I_ESCAPE_W_QUOTES appends the definition of an escape character in form ... ESCAPE 'escape' or . ... ESCAPE escape_w_quotes , where escape and
    escape_w_quotes are the values of parameters I_ESCAPE and
    I_ESCAPE_W_QUOTES .
    The filter condition that is created is returned in the return value RESULT of type IF_OS_QUERY_FILTER_EXPR .
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_ISNULL_EXPR

  • Creates a filter condition in the following form (depends on the value of I_NOT parameter)
    attr IS [NOT] NULL ,
    where attr is the value of parameter I_ATTR .
    The filter condition that is created is returned in the return value RESULT of type IF_OS_QUERY_FILTER_EXPR .
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_REF_EXPR

  • Creates a filter condition in the form
    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
    .
    Instead of using a parameter to set the persistent object reference, you can specify the instance GUID and class GUID using parameters I_GUID and I_CLSGUID of type OS_GUID .
    The filter condition that is created is returned in the return value RESULT of type IF_OS_QUERY_FILTER_EXPR .
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_NOT_EXPR

  • Creates a filter condition in the form
    NOT ( expr ),
    where expr is a filter condition that has already been created and passed to parameter I_EXPR .
    The filter condition that is created is returned in return value
    RESULT .
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_AND_EXPR

  • Creates a filter condition in the form
    ( expr1 ) AND ( expr2 )
    where expr1 or expr2 are filter conditions that have already been created and passed to parameter I_EXPR1 or
    I_EXPR2 .
    The filter condition that is created is returned in return value
    RESULT .
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_OR_EXPR

  • Creates a filter condition in the form
    ( expr1 ) OR ( expr2 )
    where expr1 or expr2 are filter conditions that have already been created and passed to parameter I_EXPR1 or
    I_EXPR2 .
    The filter condition that is created is returned in return value
    RESULT .
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_PARAMETERS_EXPR

  • Creates a parameter list. The paremeter list that is created is returned in return value RESULT of type IF_OS_QUERY_PARAMETERS_EXPR
    .
    The parameters are appended in succession when method APPEND of a further interface
    IF_OS_QUERY_PARAMETERS_EXPR is called. The parameter name is passed to parameter I_PAR .
  • IF_OS_QUERY_EXPR_FACTORY~CREATE_ORDERING_EXPR

  • Creates a sort condition. The sort condition is returned in the return value RESULT of type IF_OS_QUERY_ORDERING_EXPR .
    The attributes that you are sorting by are appended one after the other when you call method APPEND_ASCENDING or APPEND_DESCENDING
    of additional interface
    IF_OS_QUERY_ORDERING_EXPR . The parameter name is passed to parameter I_ATTR .
    Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved




    OS_QUERY_ABEXA
    OS_QUERY_FILTER_COND




    comments powered by Disqus