Top Method Summary
Options Name Purpose
AddValue (JsonArray, IPrimitiveArrayHolder, integer) Adds a value of the given array holder to a JSON array
AddValue (JsonObject, character, IPrimitiveArrayHolder, integer) Adds a value of the given array holder to a JSON object
AddValue (JsonObject, character, IPrimitiveHolder) Adds the value of the given holder to a JSON object
Progress.Json.ObjectModel.JsonObject GroupToQuery (IQueryGroup) Translates a group of query entries into a bool query
LOGICAL IsDisjunction (IQueryEntry[], integer) Returns whether the entries of a group are joined with OR
LOGICAL IsNegated (JoinEnum) Returns whether the given join negates its clause
LOGICAL IsTextValue (IPrimitiveHolder) Returns whether the given value is a character value
Progress.Json.ObjectModel.JsonObject PredicateToQuery (IQueryPredicate) Translates a single query predicate into an Elasticsearch query
Progress.Json.ObjectModel.JsonObject RangeClause (IQueryPredicate, character) Returns a range clause for a comparison predicate
Progress.Json.ObjectModel.JsonObject TermsClause (IQueryPredicate) Returns a terms clause for an IN LIST predicate
CHARACTER TextValue (IPrimitiveHolder) Returns the character representation of the given value
Progress.Json.ObjectModel.JsonObject ToElasticSearchQuery (IQueryEntry) Translates a CCS query entry into an Elasticsearch query
Progress.Json.ObjectModel.JsonObject ValueClause (character, IQueryPredicate) Returns a single field / value clause of the given type
INTEGER ValueCount (IPrimitiveArrayHolder) Returns the number of values of an array holder
Progress.Json.ObjectModel.JsonObject WildcardClause (IQueryPredicate) Returns a wildcard clause for a MATCHES predicate


Method Detail
Top

AddValue (JsonArray, IPrimitiveArrayHolder, integer)

Purpose: Adds a value of the given array holder to a JSON array
Notes:

Parameters:
poTarget Progress.Json.ObjectModel.JsonArray
The JSON array to add the value to
poHolder Ccs.Common.Support.IPrimitiveArrayHolder
The IPrimitiveArrayHolder representing the values
piIndex INTEGER
The index of the value
Top

AddValue (JsonObject, character, IPrimitiveArrayHolder, integer)

Purpose: Adds a value of the given array holder to a JSON object
Notes: Used for the two bounds of an IN RANGE predicate

Parameters:
poTarget Progress.Json.ObjectModel.JsonObject
The JSON object to add the value to
pcName CHARACTER
The name of the property
poHolder Ccs.Common.Support.IPrimitiveArrayHolder
The IPrimitiveArrayHolder representing the values
piIndex INTEGER
The index of the value
Top

AddValue (JsonObject, character, IPrimitiveHolder)

Purpose: Adds the value of the given holder to a JSON object
Notes: The ABL data type of the value decides the JSON data type, so
that a numeric field is not compared against a string. Dates are
written in ISO format, which is what Elasticsearch expects

Parameters:
poTarget Progress.Json.ObjectModel.JsonObject
The JSON object to add the value to
pcName CHARACTER
The name of the property
poHolder Ccs.Common.Support.IPrimitiveHolder
The IPrimitiveHolder representing the value
Top

Progress.Json.ObjectModel.JsonObject GroupToQuery (IQueryGroup)

Purpose: Translates a group of query entries into a bool query
Notes: The CCS model carries the join on each entry, Elasticsearch
groups the clauses by their join instead. A group whose entries
are joined with OR becomes a "should" list, every other group a
"must" list; the negating joins (Not, AndNot, OrNot) put their
clause into "must_not". A group mixing AND and OR therefore
loses the precedence the ABL query would have had - such a query
is better expressed with nested TableQuery groups

Parameters:
poGroup Ccs.BusinessLogic.IQueryGroup
The query group to translate
Returns Progress.Json.ObjectModel.JsonObject
The Elasticsearch bool query
Top

LOGICAL IsDisjunction (IQueryEntry[], integer)

Purpose: Returns whether the entries of a group are joined with OR
Notes: The join of the first entry is None or Not and carries no
information about how the entries relate to each other

Parameters:
poEntries Ccs.BusinessLogic.IQueryEntry
The entries of the query group
piCount INTEGER
The number of entries
Returns LOGICAL
TRUE when the group is a disjunction
Top

LOGICAL IsNegated (JoinEnum)

Purpose: Returns whether the given join negates its clause
Notes:

Parameters:
poJoin Ccs.BusinessLogic.JoinEnum
The join of the query entry
Returns LOGICAL
TRUE when the clause has to go into the must_not list
Top

LOGICAL IsTextValue (IPrimitiveHolder)

Purpose: Returns whether the given value is a character value
Notes: Character values are matched against the analysed text of the
document, everything else against the indexed term

Parameters:
poHolder Ccs.Common.Support.IPrimitiveHolder
The IPrimitiveHolder representing the value
Returns LOGICAL
TRUE when the value is a character or longchar value
Top

Progress.Json.ObjectModel.JsonObject PredicateToQuery (IQueryPredicate)

Purpose: Translates a single query predicate into an Elasticsearch query
Notes: The operators are mapped as follows:
Eq - match_phrase on a character value, term otherwise
Ne - the Eq clause wrapped in a bool / must_not
Begins - prefix
Contains - match, which is the full text search of Elasticsearch
Matches - wildcard, with the ABL wildcards translated
Ge/Gt/Le/Lt - range
InList - terms
InRange - range with gte and lte

Parameters:
poPredicate Ccs.BusinessLogic.IQueryPredicate
The query predicate to translate
Returns Progress.Json.ObjectModel.JsonObject
The Elasticsearch query
Top

Progress.Json.ObjectModel.JsonObject RangeClause (IQueryPredicate, character)

Purpose: Returns a range clause for a comparison predicate
Notes:

Parameters:
poPredicate Ccs.BusinessLogic.IQueryPredicate
The query predicate to translate
pcOperator CHARACTER
The Elasticsearch range operator (gt, gte, lt, lte)
Returns Progress.Json.ObjectModel.JsonObject
The Elasticsearch query
Top

Progress.Json.ObjectModel.JsonObject TermsClause (IQueryPredicate)

Purpose: Returns a terms clause for an IN LIST predicate
Notes:

Parameters:
poPredicate Ccs.BusinessLogic.IQueryPredicate
The query predicate to translate
Returns Progress.Json.ObjectModel.JsonObject
The Elasticsearch query
Top

CHARACTER TextValue (IPrimitiveHolder)

Purpose: Returns the character representation of the given value
Notes:

Parameters:
poHolder Ccs.Common.Support.IPrimitiveHolder
The IPrimitiveHolder representing the value
Returns CHARACTER
The value as a character
Top

Progress.Json.ObjectModel.JsonObject ToElasticSearchQuery (IQueryEntry)

Purpose: Translates a CCS query entry into an Elasticsearch query
Notes: The entry is either a single predicate or a group of entries,
as returned by TableQuery:ToQueryEntry

Parameters:
poEntry Ccs.BusinessLogic.IQueryEntry
The query entry to translate
Returns Progress.Json.ObjectModel.JsonObject
The Elasticsearch query, or an invalid object reference when the entry is empty
Top

Progress.Json.ObjectModel.JsonObject ValueClause (character, IQueryPredicate)

Purpose: Returns a single field / value clause of the given type
Notes: Covers term, match, match_phrase and prefix, which all have the
shape { "<type>": { "<field>": <value> } }

Parameters:
pcClauseType CHARACTER
The type of the clause
poPredicate Ccs.BusinessLogic.IQueryPredicate
The query predicate to translate
Returns Progress.Json.ObjectModel.JsonObject
The Elasticsearch query
Top

INTEGER ValueCount (IPrimitiveArrayHolder)

Purpose: Returns the number of values of an array holder
Notes: The Value of the holder is assigned into a local indeterminate
extent variable first, as extent() only accepts an array
variable as its argument on OpenEdge 12.2 (SCL-5586)

Parameters:
poHolder Ccs.Common.Support.IPrimitiveArrayHolder
The IPrimitiveArrayHolder representing the values
Returns INTEGER
The number of values
Top

Progress.Json.ObjectModel.JsonObject WildcardClause (IQueryPredicate)

Purpose: Returns a wildcard clause for a MATCHES predicate
Notes: The ABL wildcards are translated into their Elasticsearch
counterparts - the ABL "*" matches any number of characters as
it does in Elasticsearch, the ABL "." matches a single character
and becomes "?"

Parameters:
poPredicate Ccs.BusinessLogic.IQueryPredicate
The query predicate to translate
Returns Progress.Json.ObjectModel.JsonObject
The Elasticsearch query


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       19.09.2026 10:17:20