Hi Ralf,
The query does not accept ranges/select-options, which makes it quite useless, to be honest... From help (documentation of if_os_query, then "query services"):
Relational Operators
attr =|<>|<|>|<=|>= { operand }
LIKE
attr [NOT] LIKE { pattern } [ESCAPE escape]
IS NULL
attr IS [NOT] NULL
EQUALSREF
attr EQUALSREF par
Comparison of two object references. When the query is executed, parameter par has to be bound to a reference variable that refers to a persistent instance of a persistent class.
AND, OR, NOT
NOT expr
expr AND expr
expr OR expr
The semantics of the logical operands AND, OR, and NOT are also defined by their semantics in Open SQL. Explicit parentheses are possible. If no parentheses are specified, the Open SQL priority rules apply.
Examples
price < '100' AND currency = 'EUR'
name LIKE PAR1 AND age > '45' AND age < '65'
( department EQUALSREF DEP1 OR department EQUALSREF DEP2 ) AND NOT
( salary > '50000' AND currency = 'EUR' ) )
A piece of advice: it's always good to learn new stuff, but persistent classes is not something I would suggest anyone to invest time into. Instead, I would recommend you get to know the BOPF. There are lots of materials in the BOPF Application Framework space.
Cheers,
Custodio