Expressions
Expressions can be referenced in an operation path by name or as inline expression. Referring to an expression by name requires, that an appropriate OSI expression has been implemented in the class the operation applies on (preceding path element or calling property handle for the first path element). OSI expressions can be defined in the resource database (dictionary) or must be loaded from an osi folder when opening the database (see OSI_PATH in the data source definition).
When recalculation of person's age has been defined in an OSI expression CalculateAge in the person class, recalculating the age for all persons could be achieved by the following expression:
// referring to pre-defined expression
PropertyHandle p_age(obh,"Person::Persons()->CalculateAge");
p_age.Execute();
// referring to inline expression
PropertyHandle p_age(obh,
"Person::Persons()->{age = Date.Year - birth_date.Year;}");
p_age.Execute();

