By default every Expression function in AdapTableQL and every column provided to AdapTable are available to use in an Expression.
However sometimes users want to limit either the Expression Functions available (of which there are very many) or the columns which can be used in a query.
This is particularly the case if the Query is being run remotely on the server (typically via Server Searching) and not by AdapTable.
Both of these can be accomplished in AdapTable:
The expressionFunctions option in Query Language Options allows a precise set of Expression Functions to be provided to AdapTable (or a list of those to omit).
Only these Expression Functions will be displayed in the Expression Editor UI and only these will be valid when AdapTableQL evaluates the Expression.
Note for Devs: You need to import AdaptableExpressionFunctions from the same place you import Adaptable as seen in the code below.
In this example we have used omit (from Lodash) to remove the 'COALESCE', 'DIFF_YEARS' and 'IS_BLANK' functions.
The QueryableColumns property in Query State can be supplied with a list of Columns - only these can be used in a Query.
Note: The default is set all Columns as Queryable so only provide a value here if you explicitly require to limit this.
In this example we have configured that only 4 columns - 'ShipCountry', 'ShipVia', 'Employee' and 'ItemCount' - can be used in a Query.