ServiceNow - Développement

ServiceNow fournit de nombreuses fonctionnalités et applications intégrées, que nous pouvons facilement utiliser pour implémenter ITSM dans n'importe quelle organisation. Dans le même temps, il existe des exigences commerciales pour configurer différents processus et fonctionnalités. ServiceNow est hautement personnalisable et les développeurs peuvent facilement créer des applications et des modules en fonction des besoins du client en utilisant les principes de Javascript.

Javascript est obligatoire pour les scripts ServiceNow. Dans cette section, nous vous donnerons un aperçu du développement de ServiceNow.

Présentation de la création d'application

ServiceNow fournit une application appelée «Studio», où vous pouvez créer vos nouvelles applications, donner les codes sources, créer de nouvelles tables pour vos applications, etc. Le Studio fournit une interface guidée et facile à utiliser pour créer de nouvelles applications. Créons une nouvelle application pour le cas suivant de BookWorm ltd.

L'équipe IT Frontend a besoin d'une application dans ServiceNow dans laquelle le Manager peut publier le shift ROTA (shift rotation). Il y aurait un quart de travail de 6 heures pour chaque employé et l'équipe doit soutenir 24 X 7.

Depuis le navigateur goto Studio, une nouvelle fenêtre s'ouvrira. Cliquez sur Créer une application. Vous serez invité à entrer le nom et la description de l'application. Enfin, cliquez sur Créer.

Vous trouverez la page d'application ci-dessous. Maintenant, il est temps de créer une table pour notre application. Allez dans «Créer un fichier d'application».

Cliquez sur Table sous Modèle de données et cliquez sur créer. Vous serez invité à entrer les détails de la nouvelle table. Donnez le nom de la table et conservez les autres détails par défaut.

Faites maintenant défiler vers le bas et commencez à définir les colonnes de ces tables. Nous avons ci-dessous la définition de la colonne, le point important à noter ici est que nous avons sélectionné la référence de sys_user dans la colonne Member.

Maintenant, cliquez sur la colonne Shift et sélectionnez «Créer une liste de choix» car ici, nous allons créer des choix de quart comme 6h-12h, 12h-18h, 18h-12h et 12h-6h.

Donc, maintenant que nous avons créé la table, notre application en studio ressemble à ceci.

Le studio a créé automatiquement pour nous Formulaire, liste, module, menu d'application. Nous pouvons créer des modules supplémentaires, des tables, une interface utilisateur, etc. à partir de l'option de création de fichier d'application, comme nous l'avons fait pour créer la table ROTA.

Voyons maintenant à quoi ressemble notre application en service maintenant. Recherchez Frontend_IT_ROTA dans la barre de navigation et accédez à notre nouveau module.

Allons-y et ajoutons de nouveaux enregistrements ROTA dans notre application. Cliquez sur le bouton Nouveau.

Politique et actions de l'interface utilisateur

ServiceNow définit les politiques d'interface utilisateur comme un outil grâce auquel nous pouvons modifier dynamiquement le comportement des informations sur un formulaire et contrôler les flux de processus personnalisés pour les tâches. L'action d'interface utilisateur, d'autre part, est utilisée pour rendre l'interface utilisateur plus interactive, personnalisée et spécifique aux activités de l'utilisateur. Comprenons cela à l'aide d'un exemple.

Supposons que nous devions configurer le formulaire d'incident de telle manière que, si un incident est affecté au groupe d'affectation de l'équipe informatique frontale, le champ Services devienne invisible et les éléments de configuration doivent être désactivés. La politique d'interface utilisateur ici est «si le groupe d'affectation est sélectionné en tant qu'équipe informatique frontale» et les actions d'interface utilisateur ici, est «le champ Services doit devenir invisible et le champ Élément de configuration doit être désactivé».

L'action de l'interface utilisateur peut être implémentée via, un moyen simple d'utiliser l'interface et également via le script client. L'écriture de script client nous aidera à faire des opérations avancées dans les champs. Nous montrerons également le script client plus loin dans cette section.

Le point important à noter ici est que les actions de l'interface utilisateur sont plus rapides et exécutées en premier, suivies des scripts client. Créons une politique et une action d'interface utilisateur pour notre cas d'utilisation. Depuis la barre de navigation, ouvrez le module «Politique d'interface utilisateur» sous l'application «Interface utilisateur système» et cliquez sur le bouton Nouveau.

Donnez le nom de la table, c'est Incident dans notre cas. Gardez l'application comme Global. Si vous ne trouvez pas l'option globale, accédez à la roue dentée dans le coin supérieur droit et à partir de l'onglet développeur, sélectionnez l'application comme globale.

Maintenant, commencez à donner les conditions dans la section suivante. Ce serait «Le groupe d'affectation est l'équipe IT Frontend» dans notre cas. Ensuite, il y a quelques cases à cocher, qui sont les suivantes -

  • Global - cochez si vous le souhaitez, vos politiques d'interface utilisateur doivent être mises en œuvre globalement.

  • On load - cochez si vous le souhaitez, pour exécuter votre politique d'interface utilisateur chaque fois que la page est actualisée.

  • Reverse if false - cochez si vous le souhaitez, pour annuler toutes les actions que nous avons créées si les conditions sont modifiées.

  • Hériter - cochez si vous le souhaitez, la table (dans laquelle la stratégie d'interface utilisateur est créée) qui étendent la table spécifiée hérite de cette stratégie d'interface utilisateur.

Remplissez tous les détails requis et appuyez sur Soumettre.

Maintenant, ouvrez à nouveau la stratégie d'interface utilisateur et vous trouverez l'option permettant d'entrer les actions de l'interface utilisateur. Donnons les actions de l'interface utilisateur selon notre cas d'utilisation. Cliquez sur le bouton Nouveau dans la section Action de l'interface utilisateur.

Nous sélectionnerons les actions suivantes pour les champs Services et Éléments de configuration.

Cliquez sur Soumettre pour confirmer vos actions d'interface utilisateur et enfin, cliquez sur «Mettre à jour» pour enregistrer les modifications dans la stratégie d'interface utilisateur. Vous pouvez maintenant accéder aux formulaires d'incident et vérifier votre politique et vos actions d'interface utilisateur.

Script ServiceNow

Il existe deux types de scripts dans ServiceNow, qui sont côté client et côté serveur. Le script côté serveur signifie que le traitement a lieu au niveau du serveur Web, tandis que le script client signifie que le traitement a lieu sur la machine de l'utilisateur. Il existe des tâches spécifiques qui peuvent être accomplies par chaque type de script. Discutons, exemples des deux scripts -

Script côté client

Le script côté client peut être utilisé dans divers scénarios tels que le remplissage de certaines valeurs par défaut dans le champ du formulaire, l'affichage d'un message d'alerte, la définition d'une valeur dans un champ en fonction de la réponse de l'utilisateur dans un autre champ d'un formulaire, la modification de la liste de choix, etc. Il existe trois principaux types de scripts clients.

  • Onload () - Ceci est exécuté, lorsque le formulaire est chargé.

  • Onchange () - Ceci est exécuté, lorsqu'un champ particulier du formulaire est modifié.

  • Onsubmit () - Ceci est exécuté, lorsque le formulaire est soumis.

Créons un script client pour deux cas d'utilisation. Dans notre nouvelle application, «Frontend IT team ROTA», nous mettrons en place une alerte «Veuillez utiliser cette application une fois par semaine, pour définir la rotation des équipes», une fois l'application chargée. Ensuite, nous afficherons une alerte «Le membre a droit à une indemnité de quart de travail», si le moment du quart est sélectionné de 12 h à 6 h.

Accédez au module Studio, ouvrez l'application et cliquez sur le fichier «Créer une application». Ensuite, sélectionnez le script client sous l'option de développement client et donnez les détails requis comme ci-dessous -

Faites défiler vers le bas et donnez le script. Nous donnerons une alerte comme ci-dessous.

Function onLoad() {
alert (“Please use this application once a week to set the shift rotation”);
}

Cliquez sur soumettre et chargez votre nouvelle application pour voir le résultat.

Maintenant, implémentons le prochain cas d'utilisation. Ici, nous utiliserons onChange. La fonction onChange est automatiquement passée avec 5 arguments par ServiceNow.

  • Control - C'est le champ pour lequel le script client est configuré

  • OldValue - C'est la valeur du champ, lorsque le formulaire est chargé (avant le changement).

  • newValue - C'est la valeur du champ après le changement.

  • isLoading- Il s'agit de la valeur booléenne indiquant si le changement se produit dans le cadre d'un chargement de formulaire. La valeur est vraie si la modification est due à un chargement de formulaire. Lorsque le formulaire se charge, toutes les valeurs de champ du formulaire changent.

  • isTemplate- C'est la valeur booléenne indiquant si, le changement intervenu, est dû à la population du champ par un modèle. La valeur est vraie si le changement est dû au remplissage par un modèle.

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '12am-6pm') {
      alert("The member is entitled for shift allowance");
      return;
   }
}

Classe Glideform (g_form)

La glideform est la classe qui permet de contrôler les formulaires et les champs des formulaires. Nous pouvons effectuer des tâches telles que Masquer une valeur de champ, définir la valeur de champ en fonction de la réponse sur les autres champs, ajouter des champs à la liste de choix, etc.

La classe de formulaire glide est fournie avec de nombreuses méthodes. Quelques méthodes importantes sont addOption (), clearOptions (), showFieldMsg (), clearMessages (), clearValue (), setValue (), etc.

Créons un script client sous forme d'incident pour remplir un message dans le champ de description, si le groupe d'affectation est sélectionné comme équipe informatique Frontend. Accédez aux stratégies d'interface utilisateur et créez une nouvelle stratégie. Indiquez la condition dans la section «Où postuler» comme «Le groupe d'affectation est l'équipe IT Frontend».

Soumettez la politique d'interface utilisateur, ouvrez-la à nouveau, puis cliquez sur la vue avancée. Plus tard, vous trouverez l'option de donner le script.

Le script est automatiquement rempli avec la fonction onCondition (). La fonction onCondition sera exécutée automatiquement une fois, la condition que nous avons donnée dans la politique de l'interface utilisateur est remplie. Un autre point à noter est qu'il existe deux scripts, «Exécuter si vrai» et «Exécuter si faux».

Le script 'execute if true' s'exécutera une fois que la condition est remplie et si, nous changeons les valeurs dans les champs de telle sorte que, la condition que nous avons mentionnée n'est plus remplie, alors le script dans 'execute if false' s'exécutera.

Écrivons un script pour les deux. Ici, nous utiliserons les méthodes setValue et clearValue. Pour obtenir le nom du champ, qui doit être mentionné dans le script, ouvrez le formulaire d'incident et faites un clic droit sur le champ souhaité, vous pouvez trouver le nom du champ au format «Afficher - <fieldname>»

On true script

function onCondition() {
   g_form.clearValue('description');
   g_form.setValue(‘description’,'**Please mention server name, instance name and error code**');
}

On false script

function onCondition() {
   g_form.clearValue('description');
}

Maintenant, ouvrez le formulaire d'incident et vérifiez le résultat.

Script côté serveur

Les scripts côté serveur s'exécutent sur le serveur ou la base de données ServiceNow. Les scripts côté serveur ont deux catégories -

  • Règles commerciales

  • Script inclure

Jetons un œil à chaque catégorie une par une.

Règles commerciales

Le module de règles métier se trouve dans l'application de définition de système. Pour créer une règle métier, cliquez sur nouveau. Nous pouvons créer une règle métier simple à l'aide d'actions de règle métier, qui ont une interface déroulante simple.

Vous pouvez utiliser l'action de règle métier pour définir les valeurs du champ ou pour ajouter un message dans le formulaire. Nous pouvons choisir, quand exécuter la règle métier comme ci-dessous -

  • Before - La logique de la règle métier s'exécute avant l'opération de base de données

  • After - La logique de la règle métier s'exécute après l'opération de base de données

  • Async - Async Business Rules exécute leur logique après une opération de base de données, mais le planificateur met la tâche en file d'attente dès que possible, mais pas nécessairement immédiatement après l'opération de base de données.

  • Display - Afficher les règles métier exécute leur logique, lorsqu'un formulaire se charge et qu'un enregistrement est chargé à partir de la base de données.

Nous pouvons également choisir l'opération de base de données à laquelle la règle métier doit s'exécuter. Créons une action de règle métier, dans l'application ROTA de l'équipe IT Frontend, que nous avons créée dans la dernière section.

Nous devons définir la valeur dans le champ Remarque comme «Surveiller les travaux par lots du XO887» si le décalage est de 12h à 6h. Donnez le nom et la table frontend_it_rota. À l'intérieur, quand exécuter l'onglet donnez la condition, car le décalage est de 12h à 6h et cochez les cases «insérer» et «mettre à jour».

L'onglet Action intérieure donne votre condition pour le champ de remarque.

Nous pouvons également donner notre script personnalisé dans cette règle métier. Pour commencer à écrire le script personnalisé, cochez la case Avancé et vous verrez, le nouvel onglet Avancé pour écrire le script.

Écrivons un script, pour abandonner la transaction d'insertion lorsque le champ membre, heure ou date n'est pas donné. Nous utiliserons des objets «actuels» et «précédents» à cette fin.

(function executeRule(current, previous /*null when async*/)) {
   if((current.member = ' ') || (current.date = ' ') || (current.shift = ' '){
      current.setAbortAction(true);
   }
}

Script Inclure

En utilisant des scripts inclus, nous pouvons écrire des fonctions ou des classes personnalisées, puis les utiliser dans d'autres scripts autant de fois que nécessaire. Ce sont des sortes de scripts réutilisables; nous pouvons utiliser dans d'autres scripts côté client ou côté serveur. Cependant, ils ne sont exécutés que lorsqu'ils sont appelés explicitement par les autres scripts. Pour créer un nouveau script d'inclusion, nous avons un module "Script include»Sous l'application« Définition du système ». Cliquez sur nouveau pour créer une nouvelle inclusion de script.

Dans le formulaire d'inclusion de script, indiquez le nom de l'inclusion de script. Le champ de nom d'API est le nom interne du script include et il est utilisé lorsque ce script include est appelé à partir d'autres applications. Cochez la case appelable par le client si vous souhaitez utiliser ce script d'inclusion dans les scripts côté client. Dans l'application, indiquez l'application pour laquelle ce script est utilisé. Dans le champ «accessible depuis», indiquez la portée de l'application.

Écrivons un script pour le cas suivant dans l'application ROTA de l'équipe informatique Frontend. Tout d'abord, nous allons écrire un script include, qui vérifiera un caractère invalide dans n'importe quel champ. Nous allons définir une fonction, qui prendra l'argument comme une chaîne et retournera vrai ou faux, en fonction des caractères de la chaîne.

Nous utiliserons cette fonction dans notre script de règle métier pour valider, si la valeur indiquée dans le champ Membre (Nom) (dans l'application ROTA de l'équipe informatique frontend), n'a pas de caractère invalide lors de la soumission du formulaire.

Ouvrez le module d'inclusion de script, ci-dessous est le script que nous allons utiliser.

function validatefieldcharacters(fieldinput) {
   var validcharacters = /^[a-zA-Z]+$/;
   if(fieldinput.value.match(validcharacters)) {
      return true;
   } else {
      return false;
   }
}

Maintenant, écrivons le script de règle métier pour valider le champ Membre. Ouvrez le module de règles métier et créez une nouvelle règle métier pour notre équipe informatique Frontend ROTA.

var memberfieldstatus = validatefieldcharacters(current.member)
   if(memberfieldstatus == false) {
   gs.addErrorMessage(" Special characters not allowed in member field");
   current.setAbortAction(true);
}

Débogage

Nous pouvons utiliser diverses techniques de débogage, si notre script ne fonctionne pas comme prévu, ou si nous obtenons une erreur. Discutons de différentes manières dont nous pouvons déboguer les scripts côté client et côté serveur.

Débogage des scripts client

La meilleure façon de déboguer le script client se réfère aux journaux. Le Javascript fournit la méthode jslog () pour écrire des messages dans les journaux Javascript. La méthode jslog () accepte les messages, que nous voulons dans les journaux de l'argument. Vous trouverez ci-dessous un exemple sur la façon dont nous pouvons implémenter jslog (). Vous pouvez utiliser le script ci-dessous dans le script de règle métier.

function onLoad(){
   jslog("This log is displayed from jslog().");
   jslog("The value of Member field is = " + g_form.getValue('Member'));
}

Cela donnera la valeur donnée dans le champ membre dans les journaux. Dans ce cas, nous avons utilisé la méthode getvalue, pour récupérer la valeur du champ membre. Maintenant, l'étape suivante consiste à activer les journaux. Accédez à l'option de configuration dans le coin supérieur droit et cliquez sur l'onglet développeur. Activez l'option «Journal Javascript et observateur de champ».

Les journaux JavaScript s'ouvriront dans une nouvelle section au bas de la fenêtre principale du navigateur ServiceNow.

Outre jslog (), nous pouvons également utiliser des instructions try / catch que nous utilisons généralement en Javascript pour déboguer les scripts.

Débogage du script côté serveur

Le moyen le plus courant de déboguer un script côté serveur consiste à utiliser le module «Script debugger». Le débogueur de script peut être utilisé pour placer des points d'arrêt, parcourir le code pas à pas, afficher la valeur des variables, etc. Pour accéder au débogueur de script, recherchez «débogueur de script» dans la barre de navigation. Il est présent dans l'application «System Diagnostics».

En dehors de cela, nous pouvons également nous référer au module «Journaux d'application», qui est présent dans «Application log système».