Page History
...
Use this function to determine the type of an instance. The function returns the name of the entity.
Syntax
Code Block |
---|
TYPE OF base_entity |
- base_entity - Name of the instance's base entity.
Return type
- string
Examples
Suppose a domain model in which there is a singleton entity Residence
that has a multivalued relation hasRooms
with Room
. Room
is the base entity for singleton Kitchen
and not singletons Bedroom
and Bathroom
.
- for the
Kitchen
instance the expressionTYPE OF Room
= “Kitchen” - for the
Bedroom
instances the expressionTYPE OF Room = “Bedroom”
= TRUE
Back to top |
---|
ISACTIVE
Use this function to determine if an instance of a specific type is currently active.
Code Block |
---|
ISACTIVE instances [WHERE condition] |
- instances - instances to search
- condition - optional condition to limit the collection of instances to check
Return type
boolean - TRUE if one of the instances is active, FALSE otherwise
UI Text Box type note Singletons are always active, so ISACTIVE <singleton> will always return TRUE
Examples
Suppose the following data model.
instance_id | Person.name | Person.Age |
---|---|---|
Person_1 | “Bob” | 14 |
Person_2 | “Jane” | 25 |
Person_3 | “Mary” | 30 |
- If no instance of Person is activated,
ISACTIVE Person
= FALSE - If
Person_1
is active,ISACTIVE Person
= TRUE - If
Person_1
is active,ISACTIVE Person WHERE Person.Age >= 18
= FALSE (sincePerson_1
is excluded by the condition) ISACTIVE system
= TRUE (system
contains the system attributes and is a singleton. Therefore it is always active)- If no instance of Person is activated, the following expression will fail because Person is not in scope:
Person.Name >= 18
ISACTIVE
function the expression can be evaluated without error:(ISACTIVE Person) AND Person.name >= 18
UI Text Box type note Note that expression above will be evaluated from left to right, so first (ISACTIVE Person) will be evaluated (= FALSE) and therefore the result of the AND will be FALSE as well. The right hand side of the expression (Person.Name >= 18) will not be evaluated, otherwise the expression would still fail.
Back to top |
---|