You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
Learn more about the functions ISNULL, ISUNKNOWN, IFUNKOWN, IS A, TYPE OF, ISACTIVE, GUID.
Index:
Checks whether a value is unknown. Syntax Return type Examples Suppose the following data model.ISNULL
ISNULL ( expression )
Person.name Person.SequenceNumber “Bob” 654 “Jane” ? Active Person Expression Result Type Bob ISNULL ( Person.SequenceNumber ) FALSE boolean Jane ISNULL ( Person.SequenceNumber ) TRUE boolean
Replaces a value if that value is unknown. Syntax Return type Examples Suppose the following data model. Both parameters of the ISUNKNOWN
ISUNKNOWN ( expression , value )
Person.name Person.SequenceNumber “Bob” 654 “Jane” ? “Mary” 667 “Rick” ? “Ron” ? “Jenny” 765 ? 111 Active Person Expression Result Type Jane - ? ISUNKNOWN ( Person.SequenceNumber , 999 ) 999 Integer Mary - 667 ISUNKNOWN ( Person.SequenceNumber , 999 ) 667 Integer ? - 111 ISUNKNOWN ( Person.Name , "customer" ) "customer" String 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
Alternative notation of the ISUNKNOWN function, which increases readability especially for long expressions. This function replaces a value if that value is unknown. The IFUNKNOWN function takes precedence over any other binary operator (except for the "NOT" operator). For example, this means that the expression A.B AND C.D IFUNKNOWN FALSE will be interpreted as A.B AND (C.D IFUNKNOWN FALSE). You can use parentheses to influence this behavior, e.g. by writing (A.B AND C.D) IFUNKNOWN FALSE. For the "NOT" operator the following expression "X AND NOT B IFUNKNOWN FALSE", can also be read as "X AND ((NOT B) IFUNKNOWN FALSE)" Syntax Inputs expression- Expression of which the value has to be returned if that value is known. value - Value to return if the expression value is unknown. Return type any type, equals the expression type Examples Suppose the following data model. Both parameters of the IFUNKNOWN
expression IFUNKNOWN value
Person.name Person.SequenceNumber Person.HasDrivingLicense “Bob” 654 true “Jane” ? true “Mary” 667 false “Rick” ? ? “Ron” ? false “Jenny” 765 true ? 111 true Active Person Expression Result Type Jane - ? - true Person.SequenceNumber IFUNKNOWN 999 999 Integer Mary - 667 - false Person.SequenceNumber IFUNKNOWN 999 667 Integer ? - 111 - true Person.Name IFUNKNOWN "customer" "customer" String "Rick" - ? - ? NOT Person.HasDrivingLicense IFUNKNOWN false false Boolean IFUNKNOWN
function must be of the same datatype. If they differ in datatype, you get this validation error:Could not find function: IFUNKNOWN matching arguments System.Collections.ArrayList
Checks the entity type of an instance. The function returns TRUE if the selected instance is of the specified entity. Syntax Return type Examples Suppose a domain model in which there is a singleton entity If you want to determine the number of bedrooms is the residence: If you want to determine the number of bathrooms is the residence:IS A
instance IS A entity_name
Residence
that has a multivalued relation hasRooms
with Room
. Room
is the base entity for singleton Kitchen
and not singletons Bedroom
and Bathroom
.COUNT ( COLLECT Room FROM Residence.hasRooms WHERE ( Room IS A “Bedroom” ) )
COUNT ( COLLECT Room FROM Residence.hasRooms WHERE ( Room IS A “Bathroom” ) )
Determines the entity type of an instance. The function returns the name of the entity. Syntax Input Return type Examples Suppose a domain model in which there is a singleton entity TYPE OF
TYPE OF base_entity
Residence
that has a multivalued relation hasRooms
with Room
. Room
is the base entity for singleton Kitchen
and not singletons Bedroom
and Bathroom
.Kitchen
instance the expression ( TYPE OF Room ) = “Kitchen”
Bedroom
instances the expression ( TYPE OF Room ) = “Bedroom”
Determines if an instance of a specific entity type is currently active. Inputs Return type boolean - TRUE if one of the instances is active, FALSE otherwise Singletons are always active, so Examples Suppose the following data model.ISACTIVE
ISACTIVE instances [WHERE condition]
ISACTIVE
<singleton> will always return TRUE
instance_id Person.name Person.Age Person_1 “Bob” 14 Person_2 “Jane” 25 Person_3 “Mary” 30 Active Person Expression Result Type Note None ISACTIVE Person FALSE boolean Person_1 ISACTIVE Person TRUE boolean Person_1 ISACTIVE Person WHERE Person.Age >= 18 FALSE boolean None ISACTIVE system TRUE boolean None Person.Age >= 18 Error No Person is active None ( ISACTIVE Person ) AND Person.Age >= 18 FALSE boolean The expression is evaluated left-to-right and fails on ( ISACTIVE Person ) instead of giving an error
Generates a globally unique identifier which can later be used to uniquely mark and recognize a desired element. The GUIDs are represented as 32 hexadecimal digits, displayed in five groups separated by hyphens, in the form 8-4-4-4-12 for a total of 36 characters. Syntax Return type String - the generated GUID ExamplesGUID
GUID()
Expression Result GUID() 4a18d6a7-03c1-47f9-b6aa-eae7d746050e GUID() 91d37298-23ec-4bd4-8523-9c7e7745cb9d