You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

ISNULL


This function checks whether a value is unknown. 


Syntax

ISNULL ( expression )



Input
  • 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”?
Active PersonExpressionResultType
BobISNULL ( Person.SequenceNumber )FALSEBoolean
JaneISNULL ( Person.SequenceNumber )TRUEBoolean


Back to Top

ISUNKNOWN


This function replaces a value if that value is unknown.


Syntax

ISUNKNOWN ( expression , value )



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.


Person.namePerson.SequenceNumber
“Bob”654
“Jane”?
“Mary”667
“Rick”?
“Ron”?
“Jenny”765
?111
Active PersonExpressionResultType
Jane - ?ISUNKNOWN ( Person.SequenceNumber , 999 )999Integer
Mary - 667ISUNKNOWN ( Person.SequenceNumber , 999 )667Integer
? - 111ISUNKNOWN ( Person.Name , "customer" )"customer"String



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

Back to Top

IFUNKNOWN


An alternative notation of the ISUNKOWN 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

expression IFUNKNOWN value


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.


Person.namePerson.SequenceNumberPerson.HasDrivingLicense
“Bob”654true
“Jane”?true
“Mary”667false
“Rick”??
“Ron”?false
“Jenny”765true
?111true
Active PersonExpressionResultType
Jane - ? - truePerson.SequenceNumber IFUNKNOWN 999 999Integer
Mary - 667 - falsePerson.SequenceNumber IFUNKNOWN 999667Integer
? - 111 - truePerson.Name IFUNKNOWN "customer""customer"String
"Rick" - ? - ?NOT Person.HasDrivingLicense IFUNKOWN falsefalseBoolean




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

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

Back to Top

IS A


Use this function to check the type of an instance. The function returns TRUE if the selected instance is of the specified entity. 


Syntax

instance IS A entity_name



Inputs
  • instance - Instance to check.
  • entity_name - Name of the entity as string.


Return type

  • Boolean


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.

If you want to determine the number of bedrooms is the residence:

  • COUNT ( COLLECT Room FROM Residence.hasRooms WHERE ( Room IS A “Bedroom” ) )

If you want to determine the number of bathrooms is the residence:

  • COUNT ( COLLECT Room FROM Residence.hasRooms WHERE ( Room IS A “Bathroom” ) )

Back to Top


TYPE OF


Use this function to determine the type of an instance. The function returns the name of the entity.


Syntax

TYPE OF base_entity


Input

  • 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”

Back to Top

ISACTIVE


Use this function to determine if an instance of a specific type is currently active.


ISACTIVE instances [WHERE condition]


Inputs

  • 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


    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
Active PersonExpressionResultTypeNote
NoneISACTIVE PersonFALSEBoolean
Person_1ISACTIVE PersonTRUEBoolean
Person_1ISACTIVE Person WHERE Person.Age >= 18FALSEBoolean
NoneISACTIVE systemTRUEBoolean
NonePerson.Age >= 18Error
No Person is active
None( ISACTIVE Person ) AND Person.Age >= 18FALSEBooleanThe expression is evaluated left-to-right and fails on ( ISACTIVE Person ) instead of giving an error



Back to Top

GUID


This function is able to generate 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

GUID()


Return type

  • String - the generated GUID


Examples


ExpressionResult
GUID()4a18d6a7-03c1-47f9-b6aa-eae7d746050e
GUID()91d37298-23ec-4bd4-8523-9c7e7745cb9d


Back to Top
  • No labels