Create an action for an 'on Catalog item launch' policy

  • Release version: Washingtondc
  • Updated February 1, 2024
  • 2 minutes to read
  • The on Catalog item launch trigger fires when an order form (stack request form) is launched for a catalog item. A policy that is triggered by the on Catalog item launch trigger can run a script or override a user-requested value (text values only).

    Before you begin

    Procedure

    1. In the Cloud Admin Portal, navigate to Govern > Policies.
    2. Open a cloud policy and set the policy to the Draft state if needed.
    3. Open the rule that should perform the action and then click New on the Policy Rule Actions related list.
    4. On the popup, click Create for the type of action to perform, enter a unique and meaningful Action Name, and then fill in the form for the action.
      Create Action popup
      Table 1. Settings for the 'Execute a Script' action
      Field Description
      Action Script Category Select a category.
      Action Script Name Specify a unique and meaningful name for the script.
      Action Script Create the script in the text box.

      See Create a policy action script for details.

      Table 2. Settings for the 'Property Override' action
      Field Description
      Property Specify the name of the property (attribute) on the user request form to override.
      Value
      Enter a value that overrides the value in the Property field. You can override text values only. You can specify a static value, an expression, or both. The example action, named SetTheCostCenter, specifies the value Marketing for the CostCenter property.
      Figure 1. Configure a Property Override action
      Configure a Property Override action
      Note:

      When both a policy rule and a form rule overwrite a value, the value in the form rule is used.

      Expressions can perform the following actions (see Using expressions in Cloud Provisioning and Governance for details):
      • Set form data values using definition expressions. For example: ${parameter.formData.CatalogAttributeType}
      • Assign user data values using definition expressions. For example: ${parameter.userData.userId}

        For example, the following value can set the stack name to Stack_Bob.Smith@company.com: Stack_${parameter.userData.userId}

      • Set stack or table values using runtime expressions.

        For example: $(ci.sn_cmp_ip_pool[subnet=${parameter.formData.Subnet Id}]) takes the subnet from the IP Pools table.

      • Associate a random number with a field using static expressions. Use: ${randomNumber}
      Is Script Based Select the check box to display the Script text box and then specify the script.

      You can use the following example script snippet to override a stack name. The function( formData) section of the script modifies the values for fields on the form. MyStack is the stack name in this example.

      customScript : function( formData){
                     // Manipulation of form parameter is only supported here. 
                     // Change in any other attributes will be ignored
                     // data available for manipulation are
                     // Form Data - Ex. StackName can be accessed 
                     // through formData.StackName
                     // formData.StackName = "MyStack";
                     // User Data - Ex. User Id can be accessed 
                     // through this.parameters.userData
                     // if(this.parameter.userData.userId == 'servicenowuserId')
                        formData.StackName = "MyStack";
                        return formData;
                      },