Types of service catalog variables

  • Release version: Washingtondc
  • Updated February 1, 2024
  • 16 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    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 full answer 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

    When submitting a catalog item request, this variable lets you upload an attachment for a question of the item. After you upload the attachment, you can also download, update, and delete it. Even when fulfilling the request, you can download, update, and delete the attachment in a requested item or catalog task. You can specify restrictions for file size and extensions using the max_file_size and allowed_extensions variable attributes. For information on these variable attributes, see Service Catalog variable attributes.
    Important:
    • 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.
    Note:
    When you edit an attachment, the existing attachment is removed and a new attachment is uploaded.

    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.

    The attachment uploaded for this variable is copied in the following scenarios:
    • In an order guide, when the variable is cascaded to a catalog item in the rule base
      Important:
      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.
    Important:
    After an attachment is copied, the changes to the individual attachments are independent. For example, any change to an attachment in the order guide does not impact the same attachment cascaded to the catalog item in the rule base.
    Warning:
    Since the attachments are copied, a larger size can lead to performance issues.
    If the system-wide anti-virus check is enabled, the anti-virus check is performed on the attachment when you:
    • Submit a request for the corresponding catalog item
    • Add the catalog item to the cart or wish list
    Note:
    • 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.
    Figure 1. Attachment variable
    The Attachment variable

    Break

    The break variable displays a horizontal line across the form. This line is a formatting element that does not collect data.

    Figure 2. Example: break variable
    A break variable

    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.

    In a group of check box variables:
    • 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.

    In catalog builder, the following scenarios are applicable:
    • 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.
    Under the Type Specifications tab, you can specify the price in different currency types. Also, you can configure the price in the following pricing models:
    • Calculated
    • Fixed
    • Multiple
    For information on the pricing models, see Price fields .
    Figure 3. Example: check box variable
    A check box variable

    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.

    Note:
    • 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.
    To reproduce the container shown in the following figure, enter the following settings when creating a container start variable:
    • Select a Layout with 2 Columns Wide, alternating sides.
    • Select the Display title check box to use a collapsible title bar.
    Figure 4. Example: container variable
    A variable container

    Date

    The date variable creates a widget with a field and calendar to select a date.

    Figure 5. Example: date variable
    A variable 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.

    Figure 6. Example: date and time variable
    The date and time variable

    Duration

    Use the duration variable to specify the duration for which a catalog item is available.

    For attributes supported by this variable, see variable attributes.
    Note:
    Enter the duration in the DD HH:MM:SS format when setting the default value of the variable, and specifying in the g_form.getValue() and g_form.setValue() functions.
    Figure 7. Example: duration variable
    The Duration variable

    Email

    The email variable creates a widget to enter and select an email address. The variable accepts only valid email expressions containing @ and domain information.

    Note:
    Variable validation is not supported in Service Portal.
    Figure 8. Example: email variable
    An email variable

    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.

    Note:
    HTML variables are not supported for display on the shopping cart summary or approval summary screens.
    Figure 9. Example: HTML variable
    An HTML variable

    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.

    Note:
    • 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 (.).
    Figure 10. Example: IP address variable
    Screenshot for the IP Address variable

    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.

    Figure 11. Example: label variable
    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.

    Figure 12. Example: list collector variable
    A list collector variable
    Note:
    • 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.

    Note:
    • 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.
    Figure 13. Example: lookup multiple choice variable
    A lookup multiple choice variable

    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.

    To create the lookup select box, enter the following values when creating the variable:
    • 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
    Note:
    • 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.
    Figure 14. Example: Custom variable
    A Custom 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.
    Figure 15. Example: Custom with label variable
    A Custom with label 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.

    By selecting the Use encryption check box, you can configure the variable to encrypt its value using various encryption algorithms before storing in the database. These values can only be decrypted by using now_GR.variables.var_name.getDecryptedValue() on RITM, Catalog Task, or any task extension record created using a record producer.
    Note:
    By default, the Use encryption field is set to true to ensure secure storage of information.

    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.

    Table 1. Actions on an encrypted variable
    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
    Figure 16. Example: masked variable
    A masked variable

    Multi-line text

    The multi-line text variable creates a field that lets you enter multiple lines of text.

    Figure 17. Example: multi-line text variable
    A multi-line text variable

    Multiple choice

    The multiple choice variable creates radio buttons for question choices.

    Figure 18. Example: multiple choice variable
    A multiple choice variable

    Numeric scale

    The numeric scale variable creates a set of radio buttons for a range of options, like a Likert scale.

    Figure 19. Example: numeric scale variable
    A numeric scale variable

    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.

    Keep the following information in mind when you create a reference variable:
    • 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()
    Figure 20. Example: reference variable
    A reference variable

    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.

    Important:
    • 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.

    Important:
    • 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.
    Figure 21. Requested For variable
    Screenshot for the Requested For variable

    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.

    Note:
    • 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.
    Figure 22. Rich Text Label variable
    The Rich Text Label variable

    Select box

    The select box variable creates a list from predefined question choices. For attributes supported by this variable, see variable attributes.

    Figure 23. Example: select box variable
    A select box variable

    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.

    Figure 24. Example :single-line text variable
    A single-line text variable

    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.

    Note:
    • Variable validation is not supported in Service Portal.
    • This variable is not editable on Now Mobile.
    Figure 25. Example: URL variable
    A URL variable

    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.

    Figure 26. Example: wide single-line text variable
    A wide single-line text variable

    Yes/No

    The Yes or No variable creates a choice list with Yes and No as options.

    Figure 27. Example: Yes or No variable
    A Yes or No variable