Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Styling, improved examples

...

Panel
bgColorwhite

ISNULL

This function checks whether a value is unknown

Syntax

Code Block
ISNULL ( expression )
  • expression - Expression that is checked.

Return type

  • boolean - TRUE of the attribute is unknown, FALSE otherwise

Examples

Suppose the following data model.

 

Person.namePerson.SequenceNumber
“Bob”654
“Jane”?

 

for Bob,
Active PersonExpressionResultType
BobISNULL ( Person.SequenceNumber )
 =
FALSE
for
Boolean
Jane
,
ISNULL ( Person.SequenceNumber )
=
TRUEBoolean

 

Include Page
_nav_BackToTop
_nav_BackToTop

Panel
bgColorwhite

ISUNKNOWN

This function replaces a value if that value is unknown.

Syntax

Code Block
ISUNKNOWN ( expression , value )
  • expression- Expression of which the value has to be returned if that value is known.
  • value - Value to return if the attribute value is unknown.

Return type

  • any type, equals the attribute type

Examples

Suppose the following data model.

 

Person.namePerson.SequenceNumber
“Bob”654
“Jane”?
“Mary”667
“Rick”?
“Ron”?
“Jenny”765

 

for Jane,
?111
Active PersonExpressionResultType
Jane - ?ISUNKNOWN ( Person.SequenceNumber , 999 )
=
999Integer
for
Mary
,
- 667ISUNKNOWN ( Person.SequenceNumber , 999 )
= 667
667Integer
? - 111ISUNKNOWN ( Person.Name , "customer" )"customer"String
UI Text Box
typenote

Both parameters of the ISUNKNOWN function must be of the same datatype. If they differ in datatype, you get this validation error in studio:

Could not find function: ISUNKNOWN matching arguments System.Collections.ArrayList

 

Include Page
_nav_BackToTop
_nav_BackToTop

...

Panel
bgColorwhite

TYPE OF

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 expression TYPE OF Room = “Kitchen”
  • for the Bedroom instances the expression TYPE OF Room = “Bedroom”

Include Page
_nav_BackToTop
_nav_BackToTop

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.
Panel
bgColorwhite

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
    typenote

    Singletons are always active, so ISACTIVE <singleton> will always return TRUE 

Examples

Suppose the following data model.

 

instance_idPerson.namePerson.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, 
    Active PersonExpressionResultTypeNote
    NoneISACTIVE PersonFALSEBoolean 
    Person_1ISACTIVE PersonTRUEBoolean 
    Person_1
    ISACTIVE Person WHERE Person.Age >= 18
     = FALSE (since Person_1 is excluded by the condition)
    FALSEBoolean 
    NoneISACTIVE 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:
    TRUEBoolean 
    NonePerson.Age >= 18
    By using the ISACTIVE function the expression can be evaluated without error:
    Error No Person is active
    None( ISACTIVE Person ) AND Person.Age >= 18
    UI Text Box
    typenote
    FALSEBooleanThe expression is evaluated left-to-right and fails on ( ISACTIVE Person ) instead of giving an error

     

     

    Include Page
    _nav_BackToTop
    _nav_BackToTop