---
sourceDocument: Yokohama IT Operations Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/de-DE/yokohama/it-operations-management

 Release :

    - yokohama

ft:locale :

    - de-DE

ft:publication_title :

    - Yokohama IT Operations Management

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# Erstellen Sie ein Richtlinienaktionsskript

# Erstellen Sie ein Richtlinienaktionsskript {#ariaid-title1}

* Freigeben Version: Yokohama
* 
* Aktualisiert 30. Januar 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 Minuten Lesedauer

Verwenden Sie Richtlinienaktionsskripts, um Werte in Cloud-Anforderungen abzurufen, zu aktualisieren oder festzulegen.{#create-policy-script__shortdesc-policy-action-scripts}

## Vorbereitungen

Erforderliche Rolle: sn_CMP.Cloud_Governor oder admin.

## Warum und wann dieser Vorgang ausgeführt wird

Weitere Informationen zur Verwendung von Skripts finden Sie unter [Cloud-Skripts und Cloud-Skriptvorlagen](https://servicenow-prod.fluidtopics.net/voNmvEfFphvBaU5peVTo~Q "In Cloud Provisioning and GovernanceDie Ausführung von Anwendungen und Skripts ist in Cloud-Skripts und Cloud-Skriptvorlagen unterteilt. Verwenden Sie Skripts in Blueprints, Ressourcenblöcken und Betriebssystemprofilen, und verwenden Sie Richtlinienskripts, um Anforderungsformularattribute festzulegen. Richtlinienskripts können Anwenderdaten nicht überschreiben.").

## Prozedur

1. Navigieren Sie im Cloud-Administratorportal zu BedingungenRichtlinienan.
2. Auf Richtlinienaktionsskripts Klicken Sie auf die Registerkarte Neu , Geben Sie eine eindeutige und beschreibende Eingabe ein Name Und Beschreibung , Füllen Sie das Formular aus, und klicken Sie dann auf Übermitteln .  
   Nachdem Sie einen Namen eingegeben haben, wird ein Skript mit einer Variable angezeigt, die den von Ihnen eingegebenen Namen verwendet.{#create-policy-script__table_sqt_4gp_qz__entry__2}

   | Feld | Beschreibung |
   |-|-|
   | Aktionsskriptkategorie | Wählen Sie eine andere Kategorie aus, oder behalten Sie die Kategorie bei, die Sie in einem früheren Schritt erstellt haben. |
   | Skript | Ändern Sie `Anwenderdefinierte Skripts `Funktion im Skript. Dies ist der einzige Teil des Skripts, den Sie ändern müssen. |
   [ ]

   {#create-policy-script__table_sqt_4gp_qz}

## Beispiel

Das folgende Beispielskript bestimmt, ob der Anwender zu einer Anwendergruppe gehört, und überschreibt dann den vom Anwender angegebenen Knotennamenwert des Anwendungsservers mit dem Wert Mein Knotenname .  


    customScript : function(formData){
      var groups = this.parameters.userData.groups; 
        if( groups.length > 0){ 
          formData.App_Server_NodeName = "MyNodeName"; 
        }
      return formData;
    },

Dieses Beispiel gibt eine zufällige Zahl zurück:  


    customScript : function(formData){
      var min = 10000;
      var max = 99999;
      var num = Math.floor(Math.random() * (max - min + 1)) + min;
      formData.randomNumber = num + "";  
      return formData;
    },

Dieses Beispielskript fügt dem Mietdatum mithilfe von drei Stunden hinzu Basissystem [GlideDateTime](https://developer.servicenow.com/app.do#!/training/article/app_store_learnv2_scripting_jakarta_server_side_scripting/app_store_learnv2_scripting_jakarta_glidedatetime?v=jakarta)Klasse.  


    var SetLeaseShort = Class.create();
    SetLeaseShort.prototype = Object.extendsObject(sn_cmp.PolicyExecutionBase, {
    	customScript : function(formData){
    		// Manipulation of form parameters are supported. Changes in any other attributes
                  // will be ignored.
    		// The data available for manipulation is as follows:
    		// Form Data -  for example: StackName can be accessed through formData.StackName
    		// formData.StackName = "MyStack";
    		// User Data  - for example: User Id can be accessed through this.parameters.userData
    		// if(this.parameter.userData.userId == 'servicenowuserId')
    		// this.info("id = " + formData.StackName);
    		
    		// var leaseValue = now();
    		// leaseValue = leaseValue.setHours(leaseValue.getHours()+4);
    		// formData.LeaseEndDate = leaseValue;
    		
    		if (formData.hasOwnProperty("LeaseEndDate")) {
    			gdt = new GlideDateTime();
    			// 10800 = 3 hours
    			gdt.addSeconds(10800);
    			formData.LeaseEndDate = gdt.getDisplayValue();
    		}	
    		return formData;
    	},
    	execute: function() {
    		if(this.parameters !=  null && this.parameters.formData != null){
            	var inputData = JSON.parse(JSON.stringify(this.parameters.formData));
    		    var outputFormData = this.customScript(inputData);
                if( outputFormData != null){
                    this.parameters.formData = outputFormData;
                }
           	}
    		var output = {};
    		output.answer = this.parameters;
    		return JSON.stringify(output);
    	},
    	type : 'SetLeaseShort'
    });	

    var SetLeaseShortObj = new SetLeaseShort(inputAttributes);
    var outputParams = SetLeaseShortObj.execute();
    gs.info( "Output of script is = " + outputParams);

Dieses Beispielskript legt den vom Anwender angegebenen fest Azure WordPress-DNS Namensfeld aus dem Formular mit demselben Namen wie der Stapelname:  

    var WordpressFill = Class.create();
    WordpressFill.prototype = Object.extendsObject(sn_cmp.PolicyExecutionBase, {
    	customScript : function(formData){
    		// Manipulation of form parameters are supported. Changes in any other attributes
            // will be ignored.
    		// The data available for manipulation is as follows:
    		// Form Data -  for example: StackName can be accessed through formData.StackName
    		// formData.StackName = "MyStack";
    		// User Data  - for example: User Id can be accessed through this.parameters.userData
    		// if(this.parameter.userData.userId == 'servicenowuserId')
    		//this.info("id = " + formData.StackName);
    		
    		formData.Azure_Wordpress_v6_vmDnsName = formData.StackName;
    		
    		return formData;
    	},
    	execute: function() {
    		if(this.parameters !=  null && this.parameters.formData != null){
            	var inputData = JSON.parse(JSON.stringify(this.parameters.formData));
    		    var outputFormData = this.customScript(inputData);
                if( outputFormData != null){
                    this.parameters.formData = outputFormData;
                }
           	}
    		var output = {};
    		output.answer = this.parameters;
    		return JSON.stringify(output);
    	},
    	type : 'WordpressFill'
    });	

    var WordpressFillObj = new WordpressFill(inputAttributes);
    var outputParams = WordpressFillObj.execute();
    gs.info( "Output of script is = " + outputParams);

**Zugehörige Tasks**   

* [Beispiel für Richtlinienaktionsskript, das Ressourcen markiert](https://servicenow-prod.fluidtopics.net/10mzqzVzo4BEhby5eATHxA "Ihre Instanz verfolgt getaggte Ressourcen für Abrechnung und Berichterstellung. Richtlinienaktionsskripts können Ressourcen-Tags hinzufügen und ändern. Dieses Beispiel taggt eine Speichervolume-Ressource.")

