Skip to main content

AQS Parameters

Get acquainted with AQS Parameters

AQS Parameters enable variables to be passed into a query and then used as part of the query definition, to build more dynamic queries.

Endpoints

AQS parameters affect the following endpoints:

  • POST /api/aqs/query

  • POST /api/aqs/join

  • POST /api/aqs/statistics

Examples

The following examples illustrate the use of AQS parameters.

Where you have a design, designs_testDesign, which has an attribute, attributes_numberAttribute and you want to search for items of this design with the attribute value as 123, this is how your request would look without parameters:

{
"properties": {
"dodiCode": "designs_testDesign",
"attributes": ["All"]
},
"children": [
{
"type": "Equals",
"children": [
{
"type": "Attribute",
"properties": {
"attributeCode": "attributes_numberAttribute"
}
},
{
"type": "Number",
"properties": {
"value": [123]
}
}
]
}
]
}

You can use parameters instead of directly using the search value 123 in the Number node as follows:

{
"aqs": {
"properties": {
"dodiCode": "designs_testDesign",
"attributes": ["All"],
"parameters": [
{
"name": "testParam",
"type": "Number",
"defaultValue": [456]
}
]
},
"children": [
{
"type": "Equals",
"children": [
{
"type": "Attribute",
"properties": {
"attributeCode": "attributes_numberAttribute"
}
},
{
"type": "Number",
"properties": {
"parameterName": "testParam"
}
}
]
}
]
},
"parameterValues": [{ "name": "testParam", "value": [123] }]
}

When using parameters, the AQS query itself is defined in the aqs property. Under properties, you can define an array of parameters, for example, with parameter testParam and set its name, type and defaultValue.

In the Number node, you provide parameterName as testParam.

Now at the end, you can define an array of parameterValues which contain the names and values for the parameters to be used.

In the example illustrated, you can search for all items of designs_testDesign with attributes_numberAttribute value as 123.

If you do not specify a value for testParam in parameterValues, the query will return all items with attributes_numberAttribute value as 456, because the parameter's definition declares defaultValue as 456.

Note

You can define as many parameters you want and use parameters in AQS in place of any primitive nodes.