MQL formula syntax
You can apply global or user and role row-level constraints using MQL.
Global constraints
You can use all of the standard operators, and any of the following functions when defining a global constraint:
OR
Two or more Boolean expressions
Returns true
if one or more parameters are true.
AND
Two or more Boolean expressions
Returns true
if all parameters are true.
LIKE
Two
Compares a column to a regular expression, using %
as a wild card.
IN
Two or more
Checks to see if the first parameter is in the following list of parameters.
NOW
N/A
The current date
DATE
Three numeric parameters: Year, month, and day
The specified date
DATEVALUE
One text parameter: year-month-day
The specified date
CASE
Two or more
Evaluates the odd-numbered parameters, and returns the even numbered parameter values. If there are an odd number of parameters, the last parameter is returned if no other parameter evaluates to true.
COALESCE
One or more
Returns the first non-null parameter. If all parameters are null, the message in the last parameter is returned.
DATEMATH
One expression
Returns a date value based on a DATEMATH
expression (see DateMath Javadoc for full syntax).
The following table contains examples of the functions:
Function Name
Example
OR
OR( [BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME] = "EuroCars";
[BT_CUSTOMERS.BC_CUSTOMERS_CREDITLIMIT] > 1000 )
AND
AND( [BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME] = "EuroCars";
[BT_CUSTOMERS.BC_CUSTOMERS_CREDITLIMIT] > 1000 )
LIKE
LIKE([BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME]; "%SMITH%")
IN
IN([BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME]; "Adam Smith"; "Brian Jones")
NOW
NOW()
DATE
DATE(2008;4;15)
DATEVALUE
DATEVALUE("2008-04-15")
CASE
CASE( [BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME] = "EuroCars"; "European Cars";
[BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME] = "AsiaCars"; "Asian Cars"; "Unknown Cars")
COALESCE
COALESCE( [BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERNAME];
[BT_CUSTOMERS.BC_CUSTOMERS_CUSTOMERID]; "Customer is Null" )
DATEMATH
DATEMATH("0:ME -1:DS")
This expression represents 00:00:00.000 on the day before the last day of the current month.
User and role row-level constraints
The MQL Formula syntax for defining a user or role row constraint is:
[table.column] = "row"
The table and column are defined as part of a metadata business model. Here is an example that isolates access to data from the Sales department:
[BT_OFFICE.BC_DEPARTMENT]="Sales"
It is also possible to give or deny access to an entire role, or a single user, by selecting that user or role, then using a TRUE() or FALSE() Boolean for a constraint.
Last updated
Was this helpful?