---
sourceDocument: Yokohama Platform Analytics
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/yokohama/now-intelligence

 Release :

    - yokohama

ft:locale :

    - fr-FR

ft:publication_title :

    - Yokohama Platform Analytics

ft:clusterId :

    - par

bundleId :

    - par

workflow :

    - Platform


---

# Écriture de scripts

# Scripting dans Analyse des performances {#ariaid-title1}

* Rversion finale: Yokohama
* 
* Mis à jour 30 janv. 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 6 minutes de lecture

Analyse des performances fournit plusieurs objets de script à utiliser dans les scripts et les API pour interroger les Analyse des performances données. Les scripts servent de mappages de répartition ou de calcul d'une valeur à partir d'un indicateur.

## Conseils sur les scripts {#pa-scripts__section_ysl_gw2_nsb}

* En général, utilisez des scripts uniquement pour prendre en charge des indicateurs tels que Âge avec traitement de la date, à l'aide des variables `score_start` et `score_end` .
* Limitez les champs inutiles. Chaque fois que vous incluez un champ de remontée pas à pas supplémentaire, vous ajoutez une jointure supplémentaire à la requête.
* Essayez de remplacer les répartitions manuelles par des [vues de base de données](https://servicenow-prod.fluidtopics.net/ovhhdNydRSr_rf~a~ytTKw#gloss-database-view "Une vue de base de données définit les jointures de tables à des fins de reporting. Par exemple, une vue de base de données peut joindre la table Incident à la table Metric Definition. Cette vue peut être utilisée comme source d’indicateur.") pour améliorer les performances.
* Essayez d'utiliser des includes de script pour les fonctions courantes. Pour plus d'informations, consultez [Includes de script](https://www.servicenow.com/docs/access?context=c_ScriptIncludes&version=yokohama&pubname=yokohama-api-reference&ft:locale=en-US).
* Si les données ne sont pas structurées de la manière dont vous avez besoin pour le reporting, essayez d'ajouter des \<\< champs de reporting \>\> aux tables opérationnelles au lieu de créer des scripts. Pour plus d'informations, consultez ce [billet de la communauté](https://community.servicenow.com/community?id=community_blog&sys_id=2f99990fdbee5b00fece0b55ca9619fb).
* Si vous exécutez un script en arrière-plan qui interroge les tables de scores ou d'instantanés, vous ne pouvez pas accéder aux données d'une application incluse dans le Analyse des performances périmètre, sauf si vous disposez d'un rôle approprié pour cette application.

{#pa-scripts__ul_mcf_gws_yjb}  
Avertissement :  
Essayez de ne pas utiliser GlideRecords ou GlideAggregates dans les scripts Analyse des performances ou les indicateurs de formule. Bien que vous deviez parfois utiliser ces opérations pour obtenir les informations dont vous avez besoin, elles sont coûteuses et risquent de s'exécuter des centaines de milliers de fois. Assurez-vous qu'il n'existe aucune alternative avant de les utiliser.

## Mappage de répartition et scripts d'indicateur {#pa-scripts__section_bdq_kw2_nsb}

Un script de [mappage de répartition](https://servicenow-prod.fluidtopics.net/ovhhdNydRSr_rf~a~ytTKw#gloss-breakdown-mapping "Un mappage de répartition spécifie les relations entre les répartitions et les sources d’indicateurs. Un mappage de répartition fait référence à un champ sur la source de l’indicateur ou à un script qui interroge la source de l’indicateur.") renvoie généralement une sys_id d'un élément de répartition ou un nombre entier pour placer le score dans une catégorie. Les scripts d'indicateur renvoient un score calculé à partir d'un ou de plusieurs champs. Le même script peut servir à la fois de script de mappage de répartition et de script d'indicateur.  

## Script de répartition {#pa-scripts__section_krh_nw2_nsb}

Par exemple, considérez le script Incident.Age.Days fourni, qui utilise le champ `opened_at` de la table d'incidents. Ce script sert de mappage de répartition pour la répartition par âge, qui utilise le [sous-groupe](https://servicenow-prod.fluidtopics.net/ovhhdNydRSr_rf~a~ytTKw#gloss-bucket-group "Rassemble des données continues en groupes distincts lorsqu’il n’existe aucun champ de table pouvant servir d’éléments de répartition. Par exemple, un sous-groupe peut prendre des différences entre les horodatages et les diviser en périodes horaires.") Tranches d'âges d'incidents (jours) comme source de répartition.

    var diff=function(x,y){return y.dateNumericValue() - x.dateNumericValue();};
    var days=function(x,y){return diff(x,y)/(24*60*60*1000);};
    days(current.opened_at, score_end);

Dans cet exemple, `current.opened_at` obtient l'horodatage de l'ouverture de l'enregistrement actuellement évalué. La variable `de` [script](https://servicenow-prod.fluidtopics.net/qBMIprEHf9GUPvhE1OCNPA#pa-scripts "Analyse des performances fournit plusieurs objets de script à utiliser dans les scripts et les API pour interroger les Analyse des performances données. Les scripts servent de mappages de répartition ou de calcul d’une valeur à partir d’un indicateur.") score_end provient du [collecteur de données](https://servicenow-prod.fluidtopics.net/ovhhdNydRSr_rf~a~ytTKw#gloss-data-collector "Tâche planifiée qui collecte des données à partir d’une ou de plusieurs sources d’indicateurs pour produire des scores d’indicateur.") et est liée à la période collectée. Par exemple, si un indicateur mensuel est collecté, la `score_end` est la fin du mois. Ici, l'horodatage de l'ouverture de l'incident est soustrait de l'horodatage de la fin de la période de collecte et le résultat est converti en jours.

Cet exemple inclut le champ `Incident.opened_at` , qui est spécifié dans le champ Champs de ce script. Vous pouvez utiliser `score_start` et `score_end` sans les définir dans le champ Champs .
**Tâches associées**   

* [Créer un mappage de répartition sur un enregistrement de répartition](https://servicenow-prod.fluidtopics.net/7CuiZRPaUzj~W5iEt~qz9A "Spécifiez quel champ de la source d’indicateur fait référence à la source de répartition. Si aucun champ approprié n’est disponible, spécifiez un script pour interroger la source de l’indicateur.")  
**Information associée**   

* [Liste des API incluses dans le périmètre du serveur](https://developer.servicenow.com/dev.do#!/reference/api/tokyo/server)

## Créer un script dans Analyse des performances {#ariaid-title2}

Pour créer un script, sélectionnez d'abord la table des faits à laquelle le script s'applique, puis sélectionnez explicitement les champs.

### Avant de commencer

Rôle requis : admin, pa_admin. Pour accéder aux données des applications incluses dans le périmètre dans Analyse des performances des tables, vous devez également disposer du rôle administrateur approprié pour cette application.

### Procédure

1. Accédez à TousAnalyse des performancesScripts et cliquez sur Nouveau.
2. Donnez un nom descriptif au script.
3. Sélectionnez la table des faits à laquelle le script s'applique.  
   Seuls les indicateurs qui utilisent la même table des faits peuvent utiliser ce script.
4. Sélectionner la table de faits Champs, le cas échéant, qui seront utilisés dans le script.  
   Vous sélectionnez des champs en fonction de leurs étiquettes.
5. Écrivez le script.  
   Le script doit être conforme aux relations et restrictions suivantes :
   * Vous pouvez inclure uniquement les champs sélectionnés dans ce formulaire et ces variables de script. Pour plus d'informations, consultez la section sur les variables Analyse des performances.
   * Lorsque vous utilisez un champ dans le script, vous utilisez le nom de colonne. Si nécessaire, recherchez le nom de la colonne dans la table de faits.
   * Lorsque vous utilisez un champ à partir d'une vue de base de données, vous devez inclure le préfixe. Par exemple, la vue de base de données incident_sla inclut la table task_sla, avec le préfixe taskslatable. Task_sla inclut la colonne business_duration. Pour utiliser le champ business_duration de la vue de base de données incident_sla, écrivez-le comme taskslatable_business_duration. Si vous n'avez pas accès à la vue de base de données, demandez à votre administrateur système de trouver le préfixe pour vous.
   {#create-script-pa__ul_h32_xzl_sbb}

### Que faire ensuite

Après avoir créé le script, créez un mappage de répartition ou un indicateur qui utilise le script. Vous pouvez ouvrir un mappage de répartition ou un formulaire d'indicateur en cliquant sur Nouveau dans l'onglet Mappage de répartition ou Indicateur. Les mappages de répartition et les indicateurs qui utilisent ce script sont répertoriés dans ces onglets.

## Analyse des performances Les variables {#ariaid-title3}

Plusieurs variables sont disponibles pour être utilisées dans les scripts et les indicateurs de Analyse des performances formule.
Vous pouvez utiliser les variables suivantes dans les Analyse des performances scripts et les formules.  
* `score_start` : première seconde de la journée de la première collecte de scores d'indicateurs. Pour les scripts, l'heure est calculée en fonction de la différence entre le fuseau horaire de l'utilisateur Exécuter en tant que pour la tâche de collecte et le fuseau horaire de la base de données, qui est GMT. Pour les formules, l'heure est calculée en fonction de la différence entre le fuseau horaire de l'utilisateur qui exécute la formule et GMT. Un utilisateur exécute une formule en affichant l'indicateur de formule dans un widget de tableau de bord ou sur le Centre d'analyse.
* `score_end` : dernière seconde de la journée de la dernière collecte de scores d'indicateurs. Le temps est calculé de la même manière que pour `score_start`.
* `PA` : variable de formule, non utilisable dans les scripts, qui fournit un ensemble d'attributs et de Centre d'analyse méthodes.
{#r_ScriptsForAutomatedBreakdowns__ul_lkr_qk2_jp}

Dans les scripts, les variables de début et de fin de la collecte de scores sont des objets GlideElementGlideObject . Vous pouvez obtenir un objet GlideDateTime à partir de ces variables en appelant getGlideObject(), comme dans cet exemple : `gs.log(<< Score main = " + score_end.getGlideObject().getDayOfWeek()) ;`

Dans les formules, les variables de début et de fin de la collection de scores sont déjà des objets GlideDateTime . Par conséquent, vous pouvez utiliser les variables directement sans appeler getGlideObject(), comme dans cet exemple : `gs.log(<< Score main = " + score_end.getDayOfWeek()) ;`

Les valeurs des variables de début et de fin sont liées à la période collectée. Par exemple, si un indicateur mensuel est collecté, la `score_end` est la fin du mois.

Les valeurs `score_start` et `score_end` sont calculées en fonction du fuseau horaire de l'utilisateur concerné. Pour Analyse des performances les scripts, il s'agit du fuseau horaire d'exécution en tant que pour la tâche de collecte. Pour les formules, il s'agit du fuseau horaire de l'utilisateur qui affiche l'indicateur de formule dans un widget de tableau de bord ou le Centre d'analyse. Les utilisateurs de fuseaux horaires différents peuvent donc avoir des dates différentes pour `score_start` et `score_end` dans une formule.
**Concepts associés**   

* [Changements apportés à l'score_start/à la fin en raison de fuseaux horaires utilisateur différents](https://servicenow-prod.fluidtopics.net/27_YaeocpojWGifRo5Y12Q "Pour les indicateurs de formule, les valeurs des variables score_start et score_end sont calculées en fonction du fuseau horaire de l’utilisateur qui exécute la formule. Si des utilisateurs situés dans des fuseaux horaires différents exécutent la même formule, les valeurs de score_start et de score_end changent.")  
**Tâches associées**   

* [Obtenir les méthodes d'analyse dans les formules](https://servicenow-prod.fluidtopics.net/ctuyVoyTZ36GaDe3OwHQNg "Pour insérer une valeur calculée à partir de dans Centre d'analyse une formule, utilisez une méthode dans la formule.")

