Function: CatalogUiPolicy(config)
Creates a Catalog UI Policy (catalog_ui_policy) — conditionally shows, hides, or sets variables
on a catalog item or variable set based on a condition.
Parameters
config
CatalogUiPolicyProps
Catalog UI Policy configuration — condition, actions, target item or variable set.
Properties:
-
$id (required):
string | number | ExplicitKey<string> -
shortDescription (required):
stringShort description of the UI policy -
actions (optional):
CatalogUiPolicyAction[]Actions to take when the policy is triggered -
active (optional):
booleanWhether the UI policy is active -
appliesOnCatalogItemView (optional):
booleanWhether the policy applies when viewing the catalog item -
appliesOnCatalogTasks (optional):
booleanWhether the policy applies on catalog tasks -
appliesOnRequestedItems (optional):
booleanWhether the policy applies on requested items -
appliesOnTargetRecord (optional):
booleanWhether the policy applies on the target record -
appliesTo (optional):
'item' | 'set'The applies to the policy. -
catalogCondition (optional):
stringCondition to determine when the policy applies to the catalog -
catalogItem (optional):
string | CatalogItemThe catalog item the policy applies to. Mutually exclusive with variableSet. -
description (optional):
stringDetailed description of the UI policy -
executeIfFalse (optional):
stringScript to execute when the policy condition is false -
executeIfTrue (optional):
stringScript to execute when the policy condition is true -
global (optional):
booleanWhether the UI policy applies globally -
isolateScript (optional):
booleanWhether to isolate the script execution context -
onLoad (optional):
booleanWhether the UI policy runs on page load -
order (optional):
numberOrder in which the policy should be evaluated -
reverseIfFalse (optional):
booleanWhether to reverse the policy condition logic -
runScripts (optional):
booleanWhether the UI policy runs scripts -
runScriptsInUiType (optional):
CatalogUiPolicyUITypeUI type(s) where the policy should run -
variableSet (optional):
string | VariableSetThe variable set the policy applies to. Mutually exclusive with catalogItem. -
vaSupported (optional):
booleanWhether the policy is supported for virtual agents
Examples
Basic CatalogUiPolicy
Create a simple catalog UI policy for a catalog item
// Source: packages/api/tests/service-catalog-plugin/catalog-ui-policy/catalog-ui-policy-plugin.test.ts
/**
* @title Basic CatalogUiPolicy
* @description Create a simple catalog UI policy for a catalog item
*/
import { CatalogUiPolicy } from '@servicenow/sdk/core'
export const BasicCatalogUiPolicy = CatalogUiPolicy({
$id: Now.ID['basic_catalog_policy'],
catalogItem: 'basic_catalog_item',
shortDescription: 'Basic catalog UI policy',
})
CatalogUiPolicy with Actions
Create a catalog UI policy with variable actions for visibility, read-only, and mandatory
// Source: packages/api/tests/service-catalog-plugin/catalog-ui-policy/catalog-ui-policy-plugin.test.ts
/**
* @title CatalogUiPolicy with Actions
* @description Create a catalog UI policy with variable actions for visibility, read-only, and mandatory
*/
import { CatalogUiPolicy } from '@servicenow/sdk/core'
export const ActionsCatalogUiPolicy = CatalogUiPolicy({
$id: Now.ID['catalog_ui_policy_with_actions'],
catalogItem: 'catalog_item_2',
shortDescription: 'Catalog UI policy with actions',
actions: [
{
variableName: 'var_description',
visible: true,
readOnly: true,
mandatory: true,
},
{
variableName: 'var_urgency',
visible: true,
mandatory: true,
variableMessageType: 'error',
variableMessage: 'This field is required',
valueAction: 'setValue',
order: 200,
value: 'default urgency value',
},
],
})
CatalogUiPolicy with Scripts
Create a catalog UI policy with conditional scripts and catalog conditions
// Source: packages/api/tests/service-catalog-plugin/catalog-ui-policy/catalog-ui-policy-plugin.test.ts
/**
* @title CatalogUiPolicy with Scripts
* @description Create a catalog UI policy with conditional scripts and catalog conditions
*/
import { CatalogUiPolicy } from '@servicenow/sdk/core'
export const ScriptedCatalogUiPolicy = CatalogUiPolicy({
$id: Now.ID['catalog_ui_policy_with_scripts'],
catalogItem: 'catalog_item_1',
shortDescription: 'Catalog UI policy with scripts',
runScripts: true,
runScriptsInUiType: 'mobileOrServicePortal',
executeIfTrue: 'function onCondition() { g_form.addErrorMessage("Error"); }',
executeIfFalse: 'function onCondition() { g_form.clearMessages(); }',
catalogCondition: 'var_short_descriptionENDSWITH^EQ',
global: true,
reverseIfFalse: true,
isolateScript: true,
})