Affectation des plans d’exécution pouvant contenir des scripts
Chaque élément de catalogue est associé à un plan d’exécution, utilisé chaque fois qu’un élément de ce type est commandé. Si aucun plan n’est spécifié, le plan par défaut est utilisé. Cette valeur par défaut est effective pour la plupart des organisations, mais votre plan d’exécution peut devoir varier en fonction de critères supplémentaires.
Par exemple, dans le catalogue de services du système de base, une demande de nouveau PC utilise toujours le plan de livraison de PC. Toutefois, ce plan peut devoir être modifié dans des circonstances inhabituelles, par exemple lorsqu’un demandeur travaille à domicile dans un endroit éloigné.
Pour offrir cette flexibilité, vous pouvez utiliser un script pour remplacer le plan d’exécution par défaut sur un élément de catalogue spécifique.
Limitations lors de l’exécution du script
Les scripts de plan d’exécution ont des limites qui doivent être prises en compte lors de leur implémentation.
Pendant que le script du plan d’exécution s’exécute :
- Vous ne pouvez interagir avec aucune tâche de catalogue, car les tâches de catalogue ne sont créées qu’une fois le plan d’exécution sélectionné.
- Certains champs tels que le délai de livraison total et la date d’échéance ne sont pas encore calculés, bien que la demande elle-même soit disponible dans le script via current.request().
- Les approbations n’ont pas encore été générées.
Ecriture des scripts
Suivez ces instructions lors de l’écriture de scripts de plan d’exécution.
Les scripts de plan d’exécution peuvent accéder aux mêmes variables globales et autres fonctions que dans n’importe quel autre plan d’exécution côté serveur.
- actuel est l’élément de catalogue actuellement demandé,
sc_req_item. - current.delivery_plan() est le plan d’exécution affecté pour cet élément de catalogue.
La valeur évaluée du script est utilisée comme sys_id du plan d’exécution.
Exemple simple :
current.delivery_plan.setDisplayValue('PC Delivery Plan')Si une valeur non valide est renvoyée (non définie ou introuvable), la valeur affectée existante est utilisée.
Exemple plus complexe :
getexecutionplan();
function getexecutionplan() {
var location = current.request.requested_for.location.getDisplayValue();
// if we're in Atlanta
if (location == 'Atlanta') {
// use the remote pc delivery plan instead of the normal one
var remote_plan = new GlideRecord('sc_cat_item_delivery_plan');
remote_plan.addQuery('name', 'Remote PC Delivery Plan');
remote_plan.query();
remote_plan.next();
current.delivery_plan = remote_plan.sys_id;
return remote_plan_sys_id;
}
return current_delivery_plan;
}Dans cet exemple, chaque fois qu’une demande est destinée à un utilisateur d’Atlanta, ServiceNow le plan de livraison de PC distants est utilisé. Dans le cas contraire, le plan d’exécution n’est pas remplacé et ServiceNow utilise le plan d’exécution normal de l’élément de catalogue, le plan de livraison PC.
Ajouter un script à un élément de catalogue
Vous pouvez ajouter un script à un élément de catalogue afin que le script s’exécute chaque fois qu’un utilisateur demande cet élément.
Procédure
Résultats
Utiliser un script pour approuver un plan d’exécution
Vous pouvez utiliser un script de règle d’approbation pour approuver un plan d’exécution.
Procédure
- Récupérez une tâche de plan d’exécution d’approbation.
- Affichez le champ Script d’approbation.
- Remplissez un script d’approbation en utilisant la même syntaxe et les mêmes règles que celles que vous utiliseriez sur une règle d’approbation.
Exemple
Par exemple, dans le script ci-dessous, le gestionnaire du demandeur est l’approbateur.