Types of service catalog variables
Summarize
Summary of Types of Service Catalog Variables
ServiceNow's service catalog variables allow you to create customized questions for catalog items. These variables can be tailored with specific attributes and can include help text for user guidance. Understanding the types of variables available helps you enhance user experience and streamline request submissions.
Show less
Key Features
- Attachment Variable: Allows users to upload files, with configurable file size and type restrictions.
- Check Box Variable: Enables users to select options with mandatory and grouping functionalities.
- Container Variables: Organize multiple variables within a defined layout, supporting various configurations.
- Date and Time Variables: Facilitates date/time selection with time zone considerations.
- Masked Variable: Collects sensitive information securely, with encryption options.
- Reference Variable: Links to records in other tables, utilizing auto-complete for easier selection.
- Requested For Variable: Designates who the request is for, with restrictions based on user permissions.
Key Outcomes
By leveraging these variables, ServiceNow customers can enhance the functionality of their service catalog items, ensure proper data collection, and improve user interaction. With the ability to customize and enforce mandatory selections, users can submit requests more efficiently, leading to improved service delivery and user satisfaction.
Variables allow you to specify questions for a catalog item. Several types of service catalog variables are provided. Some variable types accept variable attributes.
See the following sections for more details on each variable type. For details on creating a variable, see Create a service catalog variable. You can also provide help text for any service catalog variable. For information on defining help information, see Define help information for a service catalog variable.
Support in various channels
Service Catalog variables are supported in various channels. For information on their availability, see Variable support in various channels.
Attachment
- You should specify only an integer value for the following:
- The max_file_size variable attribute
- The glide.sc.variable.attachment.default_max_size system property (catalog-level). The default value is 20.
- If the max_file_size variable attribute is not specified, the glide.sc.variable.attachment.default_max_size system property value is considered as the upper limit for the attachment file size.
- Irrespective of the file size allowed in the variable, the attachment file size cannot exceed the size specified in com.glide.attachment.max_size system property, which is applicable for attachments across ServiceNow AI Platform.
- The g_form.setValue() API is supported in catalog client scripts.
When you upload an attachment to this variable, an entry is created in the Attachment [sys_attachment] table. The variable is not updated until you submit the item request, add it to the cart, or save the record while editing it (in fulfiller flows). If you delete or update the attachment before submitting the corresponding catalog item, the entry in the Attachment [sys_attachment] table is cleared.
- In an order guide, when the variable is cascaded to a catalog item in the rule
baseImportant:The individual variable attributes are not honored for the catalog items in the rule base. For example, let us consider that a variable in the Describe Needs section allows a .pdf attachment and the variable of a catalog item in the rule base allows a .txt attachment. When you upload an attachment of .pdf type for a variable in the Describe Needs section, it is initially cascaded to the variable in the catalog item as well and the variable attributes specified in the catalog item are not honored. However, if you delete this initially cascaded attachment from an individual item and try to upload a new attachment, then the individual variable attributes of the catalog item are honored.
- In a record producer, when the variable is mapped to a task table field. This variable can be mapped only to the File Attachment field type of a task table.
- Submit a request for the corresponding catalog item
- Add the catalog item to the cart or wish list
- This variable is not supported in a multi-row variable set.
- This variable is supported in flows and workflows.
- This variable is available in condition builder
- For this variable, item variable assignment is not supported in order guide.
Break
The break variable displays a horizontal line across the form. This line is a formatting element that does not collect data.
Check box
The check box variable lets you enable and disable options by selecting and clearing it.
To make a check box mandatory, select the Selection Required option when you create the variable. For example, use this option to require users to select the I agree check box for an agreement form. If users try to submit the agreement form without selecting the check box, an alert message is displayed to tell users that they must select the check box.
A group of check box variables is created when you create consecutive check box variables. These check box variables are sorted by their order within the group. If you want to define a custom label for the group of check boxes, create a label variable at the start of the consecutive check box variables. The label is then considered a part of this group and acts a label of the group. If there is no custom label, check boxes are grouped under an Options label by the application.
- If any check box variable in the group is mandatory, the entire group becomes mandatory irrespective of the visibility of the mandatory check box variable. An asterisk (*) is then displayed next to the group label and you must select at least one of these check boxes.
- Hiding the label hides the entire group.
- If all other check box variables of a mandatory check box group are hidden and not selected, the following scenarios are applicable:
- The group remains mandatory as long as there is one check box in the group that is visible and not selected.
- The last check box of this group cannot be hidden if it is not selected.
In Service Portal, to make a group of check box variables mandatory, set at least one of the check box variables as mandatory. While defining the label for a group of check boxes, setting a label mandatory does not make the group of check box variables mandatory.
- If there are two consecutive check boxes, then a virtual container is created for a group of check boxes. Only check box variable types can be added inside the group
- Even if a check box variable is added immediately after a group of check boxes, it is automatically added to the group.
- Calculated
- Fixed
- Multiple
Container start, container split, and container end
The container start, container split, and container end variables define a layout for a container that can hold more variables. Use the container start and container end variables to define the start and end points of a container layout. The container end must be used along with the container start to close a container.
A container layout can be split into two or three columns using the container split variable. By default, the split is calculated at the 50% mark.
A container is similar to a variable set. Unlike a variable set, containers can be used anywhere, including inside a variable set. Containers can also be nested inside each other.
For more help with selecting the appropriate container type, see the Determining if you are using the correct container variable [KB0539982] article in the HI Knowledge Base.
- The container variables are not yet supported on mobile devices.
- Container start, container split, and container end variables are supported in Service Portal. However, if the settings are done on the top-level container, a maximum of two-column layouts can be achieved.
- Variable sets are also considered as containers. So, a container start variable with a two-column layout under a variable set is not supported in Service Portal.
- Select a Layout with 2 Columns Wide, alternating sides.
- Select the Display title check box to use a collapsible title bar.
Date
The date variable creates a widget with a field and calendar to select a date.
Date and time
The date and time variable creates a widget with a calendar and fields to select a date and time. The time value is stored in Greenwich Mean Time (GMT) and displayed in your time zone.
Duration
Use the duration variable to specify the duration for which a catalog item is available.
The email variable creates a widget to enter and select an email address. The variable accepts only valid email expressions containing @ and domain information.
HTML
The HTML variable lets you provide content with advanced formatting, including images, for a catalog item.
Use the variable to create fields for user input. You can also use the variable for reusable content when put into a variable set, such as terms and conditions.
The variable is available in two modes: edit and read-only. In edit mode, a toolbar is available, and links do not work. In read-only mode, the toolbar is disabled, and links work. To switch between modes, use entitlements or create a UI policy to set the HTML field to read-only mode.
IP Address
Use the IP address variable to specify the IPv4 and IPv6 data for a catalog item. Under the Validation Scripts submodule, a validation script type associated with this variable is available.
- Variable validation is not supported in Service Portal.
- When you set the default value for the IP Address variable, or specify its value in the g_form.getValue() and g_form.setValue() functions, the delimiter is (.).
Label
The label variable displays a label across the form. Labels are formatting elements. No data is collected.
You can use labels to arrange questions into sections. You can also use labels for questions with multiple options. For example, label check boxes for the different options for a question.
You cannot set a Label variable as mandatory. However, you can make mandatory, a group of check box variables preceded by a Label variable.
List collector
The list collector variable creates an interface that lets you select and add multiple records from a table. For attributes supported by this variable, see variable attributes.
- The Reference Qualifier and glide_list attribute applies to releases from Helsinki onward only. The attribute does not apply to Geneva.
- You can set a value for this variable using the g_form.setValue() function in a catalog client script.
- When the glide_list attribute is not true, you can only set the value that is visible in the Available list using the g_form.setValue() function. This functionality is not applicable when the setValue() function is called onLoad.
- Table with large data causes performance issues when loading the page. Use reference qualifiers to reduce data or use the glide_list attribute.
- The values in the referenced table do not appear if the user is not logged in.
- The list collector displays a maximum of 100 items in a list. After moving items to the Selected list, you can click Run Filter to refresh the Available list. This action will add more available items to the list, to a maximum of 100 items.
Lookup multiple choice
The lookup multiple choice variable creates radio buttons using data from a table. Its functionality is similar to the lookup select box variable, which creates a choice list from queried data. For attributes supported by this variable, see variable attributes.
- Table with large data causes performance issues when loading the page. Use reference qualifiers to reduce data or use the reference type variable.
- You cannot add more than 10,000 choices.
Lookup select box
The lookup select box variable creates a choice list using data queried from a table. Its functionality is similar to the lookup multiple choice variable, which creates radio buttons from queried data. For attributes supported by this variable, see variable attributes.
- Lookup from table:
Incident [incident] - Lookup value field:
Sys ID - Lookup label field:
number, category, priority - Reference qual:
caller_id=javascript:gs.getUserID()^active=true
- Table with large data causes performance issues when loading the page. Use reference qualifiers to reduce data or use the reference type variable.
- You cannot add more than 10,000 choices.
Custom
This variable inserts a UI macro into the catalog item.
UI macros in the service catalog do not support the following glide_list functions: clickthrough, slushbucket editing, and email field.
- Use phase one Jelly only for any UI macros added as variables. Phase two Jelly within the macro is not processed and appears on the page as standard content.
- This variable is not yet supported on Classic Mobile devices.
- This variable is supported in Service Portal through widgets. Create a widget with the same functionality as that of a macro and link the widget with the variable.
Custom with label
This variable inserts a UI macro with a label.
- This variable is not yet supported on Classic Mobile devices.
- This variable is supported in Service Portal through widgets. Create a widget with the same functionality as that of a macro with label, and link it with the variable.
Masked
The masked variable inserts a field that masks the text entered. Each character entered is displayed as an asterisk (*). Use this variable to ask users for sensitive or confidential data such as passwords.
On the variable editor, you can also decrypt and encrypt the values of a masked variable using the Show and Hide buttons. These buttons are not available for a fulfiller (itil) without the catalog_view_masked role. You can only view the value that you specified while requesting.
| Action | Roles | ||
| Requester | Fulfiller with the catalog_view_masked role | Fulfiller without the catalog_view_masked role | |
| View or hide the encrypted value on catalog forms | Yes | Not applicable | Not applicable |
| Edit the encrypted value on catalog forms | Yes | Not applicable | Not applicable |
| View or hide the encrypted value on the variable editor | Yes | Yes | No |
| Edit the encrypted value on the variable editor | Yes Note: If the masked variable is read-only on the variable editor, the
variable value is not editable |
Yes Note: If the masked variable is read-only on the variable editor, the
variable value is not editable |
No |
Multi-line text
The multi-line text variable creates a field that lets you enter multiple lines of text.
Multiple choice
The multiple choice variable creates radio buttons for question choices.
Numeric scale
The numeric scale variable creates a set of radio buttons for a range of options, like a Likert scale.
Reference
A reference variable references a record in another table. For example, a variable named point_of_contact references the User [sys_user] table. For attributes supported by this variable, see variable attributes.
- Reference variables use the auto-complete feature . To ensure that users have enough information to make the selection, configure the reference lookup list .
- Reference variables store the sys_id of the selected record (like reference fields). To use the display value in a script, use the same methods as for a reference field.
current.variables.<variable name>.getDisplayValue()
Requested For
Before submitting a catalog item request, this variable helps you specify who this request can be submitted for. You should specify this information while answering catalog item questions.
- You can only specify users from the User [sys_user] table.
- If you don’t specify the default value for this variable, the current logged-in user requesting the item is considered as the default Requested For variable value.
- You can submit the request for a user based on access to a catalog item. The Access Type field of the catalog item can be used to specify if a request can be submitted for a user who does not have access to the catalog item.
- For this variable, item variable assignment is not supported in the rule base of an order guide. If the order guide contains the Requested For variable, the value would be cascaded to the equivalent variable of items in the rule base as read-only.
Using the Enable also request for field of the Requested For variable, you can request a catalog item for different users under one request.
For information about delegated request experience, see Delegated request experience.
- You can add this variable to a catalog item or variable set. However, when submitting the request, a catalog item can have only one Requested For variable.
- You can add only one Requested For variable for a variable set.
- This variable is not supported in a multi-row variable set.
- After the request is submitted, this variable value is visible in the variable editor and variable summarizer.
Rich Text Label
This variable displays a formatted label on a catalog item form. In the TinyMCE rich text editor, you can format the label and add images or links. This variable supports the HTML tags.
- You can make this variable visible using catalog client scripts and catalog UI policies.
- You cannot cascade this variable in an order guide.
- You cannot set this variable as mandatory.
- In the Automated Test Framework, this variable is only supported in the Variable State Validation step to check the visibility.
- This variable is not supported in the following:
- Variable summarizer
- Multi-row variable set
- Condition builders and reports
- You cannot specify the following for this variable:
- Help text and instructions
- Tool tip
- Permissions
- Variable width
- Example text
- The g_form.setValue(), g_form.setReadOnly(), and g_form.setMandatory() APIs are not supported in catalog client scripts. Only the g_form.setVisible() API is supported.
Select box
The select box variable creates a list from predefined question choices. For attributes supported by this variable, see variable attributes.
Single-line text
The single-line text variable creates a field to enter a single line of text. For attributes supported by this variable, see variable attributes.
UI page
The UI page variable inserts a UI page into the catalog item.
- Use phase one Jelly only for any UI macros added as variables. Phase two Jelly within the macro is not processed and appears on the page as standard content.
- This variable is not yet supported on Classic Mobile devices and in Service Portal.
URL
The URL variable creates a widget for users to enter URLs. URLs are validated for the following protocols: HTTP, HTTPS, FTP.
- Variable validation is not supported in Service Portal.
- This variable is not editable on Now Mobile.
Wide single-line text
The wide single-line text variable creates a field that spans the form, letting users enter longer lines of text. For attributes supported by this variable, seevariable attributes.
Yes/No
The Yes or No variable creates a choice list with Yes and No as options.