---
sourceDocument: Gestion des opérations IT Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/it-operations-management

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Gestion des opérations IT Xanadu

ft:clusterId :

    - itom

bundleId :

    - itom

workflow :

    - Technology


---

# Créer un script d'action de politique

# Créer un script d'action de politique {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes de lecture

Utilisez des scripts d'action de politique pour obtenir, mettre à jour ou définir des valeurs dans les demandes dans le cloud.{#create-policy-script__shortdesc-policy-action-scripts}

## Avant de commencer

Rôle requis : sn_cmp.cloud_governor ou admin.

## Pourquoi et quand exécuter cette tâche

Pour plus d'informations sur l'utilisation des scripts, consultez [Scripts dans le cloud et modèles de scripts dans le cloud](https://servicenow-prod.fluidtopics.net/HOzV2qzZr18yWFJRy9C1jA "Dans l'application Cloud Provisioning and Governance, l'exécution de script est divisée en scripts dans le cloud et en modèles de script dans le cloud. Utilisez des scripts dans des plans, des blocs de ressources, des profils de système d'exploitation et utilisez des scripts de politique pour définir des attributs de formulaire de demande. Les scripts de politique ne peuvent pas remplacer les données utilisateur.").

## Procédure

1. Sur le portail d'administration du cloud, accédez à PiloterPolitiques.
2. Dans l'onglet Scripts d'action de politique, cliquez sur Nouveau, entrez un Nom et une Description uniques et significatifs, puis cliquez sur Soumettre.  
   Une fois que vous avez saisi un nom, un script s'affiche avec une variable qui utilise le nom que vous avez saisi.{#create-policy-script__table_sqt_4gp_qz__entry__2}

   | Champ | Description |
   |-|-|
   | Catégorie du script d'action | Choisissez une autre catégorie ou conservez celle que vous avez créée à une étape antérieure. |
   | Script | Modifiez la fonction `customScripts` dans le script. Il s'agit de la seule partie du script que vous devez modifier. |
   [ ]

   {#create-policy-script__table_sqt_4gp_qz}

## Exemple

L'exemple de script suivant détermine si l'utilisateur appartient à un groupe d'utilisateurs, puis remplace la valeur de nom de nœud de serveur d'applications spécifiée par l'utilisateur par la valeur MyNodeName.  


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

Cet exemple renvoie un nombre aléatoire :  


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

Cet exemple de script ajoute trois heures à la date de bail à l'aide de la classe système-de-base [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).  


    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);

Cet exemple de script définit le champ de nom DNS Azure Wordpress spécifié par l'utilisateur du formulaire sur le même nom que le nom de la pile :  

    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);

**Tâches associées**   

* [Exemple de script d'action de politique qui balise les ressources](https://servicenow-prod.fluidtopics.net/ND2WcDRsZFGR1dEv00pxnw "Votre instance suit les ressources balisées pour la facturation et la génération de rapports. Les scripts d'action de politique peuvent ajouter et modifier des balises de ressources. Cet exemple balise une ressource de volume de stockage.")

