---
title: "Get Range Values"
slug: "get-range-values"
description: "Use this extension point to run a script to retrieve range values of a business relational attribute from a custom table or from an external system. "
updated: 2026-06-02T13:14:35Z
published: 2026-06-02T13:14:35Z
canonical: "docs.zilliant.com/get-range-values"
---
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zilliant.com/llms.txt
> Use this file to discover all available pages before exploring further.
# Get Range Values
## Purpose
Allows you to run a script to retrieve range values of a business relational attribute from a custom table or from an external system. Use this extension point for business relational attributes displayed in quotes and agreements.
## Setup
To set up the extension point, follow these steps:
1. [Find or create a business relational attribute.](/main/docs/get-range-values#find-or-create-a-business-relational-attribute)
2. [Define a Groovy script object and a source for the business relational attribute values.](/main/docs/get-range-values#define-a-groovy-script-object-and-a-source-for-the-business-relational-attribute-values)
3. [Update system settings.](/main/docs/get-range-values#update-system-settings)
4. [Upload a Groovy script.](/main/docs/get-range-values#upload-a-groovy-script)
### Find or create a business relational attribute
- If the business relational attribute is a predefined field, find **ObjectProperty** in the main schema that you want to override. Search for it in the **schema.owl** file, or contact your Zilliant representative.
- If the business relational attribute is a custom field, create it by adding a script snippet to the **application-schema-ext.owl** file. For example, the following script snippet creates the **Custom Attributes** tab with the **Quote Custom BRA** dropdown field on the quote screen. The dropdown list of the **Quote Custom BRA** field is empty.
```groovy
Custom Attributes
Sub Group
Quote Custom BRA
1
true
true
```
The following image shows the newly created **Custom Attributes** tab with the **Quote Custom BRA** dropdown field on the quote screen.

### Define a Groovy script object and a source for the business relational attribute values
For both predefined and custom business relational attributes, add a script snippet to the **application-schema-ext.owl** file. In the script snippet:
- Indicate that the system must retrieve business relational attribute values using a Groovy script.
- Define a new Groovy script object with the **GetRangeValues** script type.
For example, the following script snippet indicates that the system must retrieve values for the **Quote Custom BRA** dropdown field from the **Get Custom BRA Values** Groovy script:
```groovy
true
Get Custom BRA Values
```
### Update system settings
To make sure that the system reflects updates to the **application-schema-ext.owl** file, update system settings by following these steps:
1. From the application left navigation area, select **Administration**.
2. From the top navigation bar, select **Operation Settings**.
3. Go to the **System Settings** tab.
4. Under **Load Customizing**, select **Start**.
### Upload a Groovy script
The new Groovy script object that you've defined in the **application-schema-ext.owl** file appears in the list of Groovy scripts in Zilliant CPQ. Upload a script for this object by following these steps:
1. From the application left navigation area, select **Administration**.
2. From the top navigation bar, select **Master Data Management**.
3. Scroll or search to locate **Groovy Script** and select it from the list. The list of existing Groovy scripts appears.
4. Select the name of the Groovy script object you defined in the **application-schema-ext.owl** file.
5. Under **Script File**, select the folder icon to open the file selection window. Select the Groovy script file to upload, then select **Upload**.
6. (Optional.) In the **Lookup Tables** field, define lookup tables that the script can access. Read and write access is granted.
7. Select **Save**.
## Binding variables
In addition to the [common binding variables](/docs/binding-variables), the following binding variables are available for this extension point.
| Variable name | Class | Description |
| --- | --- | --- |
| activeObject | String | URI of the active object. |
| businessType | BusinessType | Type of the **RangeValue** objects. |
| salesItemsTree | SalesItemsTree | Represents the quote or the Quote object associated with the agreement under negotiation. It contains the functions that you can use to query and modify the quote or agreement and its line item data. |
| currentSalesItemNode | SalesItemNode | Sales item node related to the active object. Include this variable only when the active object is a sales item or a related object, such as item header price item. |
For details about the classes listed in this table, including available methods, fields, and method signatures, read the [Zilliant Groovy API reference](/main/docs/groovy-api-reference).
## Expected output
The script should return the **RangeValuesList** object containing **RangeValue** objects. For details on these objects, read the [Javadoc documentation](https://javadoc.io) .
The following table lists fields of the **RangeValue** object.
| Field name | Class | Description |
| --- | --- | --- |
| type | BusinessType | BusinessType binding variable. |
| objectId | String | Unique ID of the dropdown list option. |
| objectName | String | Object name of the dropdown list option. The object name is displayed if the `label` value is null. |
| label | String | Label of the dropdown list option. To define the label translation, use the **sessionLanguage** binding variable. |
## Script execution
A script that you upload for the defined extension point runs automatically when a user selects the business relational attribute field. **RangeValue** objects returned by the script appear as list options in that dropdown field.