ServiceNow - Sviluppo

ServiceNow fornisce molte funzionalità e applicazioni integrate, che possiamo facilmente utilizzare per implementare ITSM in qualsiasi organizzazione. Allo stesso tempo, esistono requisiti aziendali per impostare processi e funzionalità differenti. ServiceNow è altamente personalizzabile e gli sviluppatori possono facilmente creare applicazioni e moduli basati sui requisiti del cliente utilizzando i principi di Javascript.

Javascript è obbligatorio per lo scripting ServiceNow. In questa sezione, ti forniremo una panoramica dello sviluppo di ServiceNow.

Panoramica sulla creazione di applicazioni

ServiceNow fornisce un'applicazione chiamata “Studio”, dove puoi creare le tue nuove applicazioni, fornire i codici sorgente, creare nuove tabelle per le tue applicazioni, ecc. Studio fornisce un'interfaccia guidata e facile da usare per creare nuove applicazioni. Creiamo una nuova applicazione per il seguente caso di BookWorm ltd.

Il team IT di Frontend necessita di un'applicazione in ServiceNow in cui il Manager possa pubblicare il turno ROTA (rotazione del turno). Ci sarebbe un turno di 6 ore per ogni dipendente e il team deve supportare 24 X 7.

Dal navigatore vai a Studio, si aprirà una nuova finestra. Fare clic su Crea applicazione. Ti verrà chiesto di inserire il nome e la descrizione dell'applicazione. Infine, fai clic su Crea.

Di seguito troverai la pagina dell'applicazione. Ora è il momento di creare una tabella per la nostra applicazione. Vai a "Crea file applicazione".

Fare clic su Tabella in Modello dati e fare clic su Crea. Ti verrà chiesto di inserire i dettagli per la nuova tabella. Assegna il nome della tabella e mantieni i dettagli rimanenti come impostazione predefinita.

Ora scorri verso il basso e inizia a definire le colonne per queste tabelle. Abbiamo sotto la definizione della colonna, il punto importante da notare qui è che abbiamo selezionato il riferimento di sys_user nella colonna Membro.

Ora, fai clic sulla colonna Shift e seleziona "Crea elenco di scelta" come qui, creeremo scelte di turno come 6: 00-12: 00, 12: 00-18: 00, 18: 00-12: 00 e 12: 006: 00.

Quindi, ora che abbiamo creato la tabella, la nostra applicazione in studio si presenta così.

Lo studio ha creato automaticamente modulo, elenco, modulo, menu dell'applicazione per noi. Possiamo creare moduli, tabelle, interfaccia utente, ecc. Aggiuntivi dall'opzione di creazione del file dell'applicazione, come abbiamo fatto per la creazione della tabella ROTA.

Ora vediamo come la nostra applicazione appare in servizio ora. Cerca Frontend_IT_ROTA nella barra di navigazione e vai al nostro nuovo modulo.

Andiamo avanti e aggiungiamo alcuni nuovi record ROTA nella nostra applicazione. Fare clic sul pulsante Nuovo.

Criteri e azioni dell'interfaccia utente

ServiceNow definisce i criteri dell'interfaccia utente come uno strumento attraverso il quale possiamo modificare dinamicamente il comportamento delle informazioni su un modulo e controllare i flussi di processo personalizzati per le attività. L'azione dell'interfaccia utente viene invece utilizzata per rendere l'interfaccia utente più interattiva, personalizzata e specifica per le attività dell'utente. Comprendiamolo con l'aiuto di un esempio.

Supponiamo di dover configurare il modulo Incidente in modo tale che, se un incidente viene assegnato al gruppo di assegnazione del team IT frontend, il campo Servizi dovrebbe diventare invisibile e gli elementi di configurazione dovrebbero essere disabilitati. Il criterio dell'interfaccia utente qui è "se il gruppo di assegnazione è selezionato come team IT frontend" e le azioni dell'interfaccia utente qui, è "Il campo Servizi dovrebbe diventare invisibile e il campo Elemento della configurazione dovrebbe essere disabilitato".

L'azione dell'interfaccia utente può essere implementata tramite, un modo semplice per utilizzare l'interfaccia e anche tramite lo script del client. La scrittura di script client ci aiuterà a fare operazioni avanzate nei campi. Mostreremo anche lo scripting del client più avanti in questa sezione.

Il punto importante da notare qui è che le azioni dell'interfaccia utente sono più veloci ed eseguite per prime, seguite dagli script client. Creiamo una policy e un'azione dell'interfaccia utente per il nostro caso d'uso. Dalla barra di navigazione, apri il modulo "Criteri dell'interfaccia utente" sotto l'applicazione "Interfaccia utente di sistema" e fai clic sul pulsante Nuovo.

Dai il nome del tavolo, nel nostro caso è un incidente. Mantieni l'applicazione come globale. Se non riesci a trovare l'opzione globale, vai alla ruota dentata nell'angolo in alto a destra e dalla scheda sviluppatore seleziona l'applicazione come globale.

Ora inizia a dare le condizioni nella prossima sezione. Nel nostro caso sarebbe "Il gruppo di assegnazione è il team IT front-end". Successivamente, ci sono alcune caselle di controllo, che sono le seguenti:

  • Global - spuntare se si desidera, le politiche dell'interfaccia utente da implementare a livello globale.

  • On load - spuntare se lo si desidera, per eseguire la policy dell'interfaccia utente ogni volta che la pagina viene aggiornata.

  • Reverse if false - barrare se si desidera, per annullare tutte le azioni che abbiamo creato se le condizioni vengono modificate.

  • Eredita: selezionare se si desidera, la tabella (in cui viene creato il criterio dell'interfaccia utente) che estende la tabella specificata eredita questo criterio dell'interfaccia utente.

Compila tutti i dettagli richiesti e premi Invia.

Ora, apri nuovamente la politica dell'interfaccia utente e troverai l'opzione per accedere alle azioni dell'interfaccia utente. Diamo le azioni dell'interfaccia utente secondo il nostro caso d'uso. Fare clic sul pulsante Nuovo nella sezione delle azioni dell'interfaccia utente.

Selezionare le seguenti azioni per i campi Servizi e Elementi di configurazione.

Fare clic su Invia per confermare le azioni dell'interfaccia utente e, infine, fare clic su "Aggiorna" per salvare le modifiche nella politica dell'interfaccia utente. È ora possibile accedere ai moduli degli incidenti e verificare la politica e le azioni dell'interfaccia utente.

ServiceNow Scripting

Esistono due tipi di scripting in ServiceNow, che sono lato client e lato server. Lo scripting lato server significa che l'elaborazione avviene sul server web, mentre lo scripting client significa che l'elaborazione avviene sulla macchina dell'utente. Ci sono attività specifiche che possono essere eseguite da ogni tipo di script. Discutiamo, esempi di entrambi gli script:

Scripting lato client

Lo scripting lato client può essere utilizzato in vari scenari come la compilazione di alcuni valori predefiniti nel campo del modulo, la visualizzazione di un messaggio di avviso, l'impostazione del valore in un campo in base alla risposta dell'utente in un altro campo in un modulo, la modifica dell'elenco di scelte, ecc. Esistono tre tipi principali di script client.

  • Onload (): viene eseguito quando il modulo viene caricato.

  • Onchange () - Questo viene eseguito, quando un particolare campo nel modulo viene modificato.

  • Onsubmit (): viene eseguito quando viene inviato il modulo.

Creiamo uno script client per due casi d'uso. Nella nostra nuova applicazione, "Frontend IT team ROTA", implementeremo un avviso "Utilizzare questa applicazione una volta alla settimana, per impostare la rotazione dei turni", una volta caricata l'applicazione. Quindi, verrà visualizzato un avviso "Il socio ha diritto all'indennità di turno", se l'orario del turno è selezionato tra le 12.00 e le 6.00.

Passa al modulo Studio, apri l'applicazione e fai clic sul file "Crea applicazione". Quindi, seleziona lo script del client sotto l'opzione di sviluppo del client e fornisci i dettagli richiesti come di seguito:

Scorri verso il basso e dai lo script. Daremo un avviso come di seguito.

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

Fare clic su Invia e caricare la nuova applicazione per vedere il risultato.

Ora, implementiamo il prossimo caso d'uso. Qui useremo onChange. La funzione onChange viene passata automaticamente con 5 argomenti da ServiceNow.

  • Control - È il campo per il quale è configurato lo script client

  • OldValue - È il valore del campo, quando il modulo viene caricato (prima della modifica).

  • newValue - È il valore del campo dopo la modifica.

  • isLoading- È il valore booleano che indica se la modifica si sta verificando come parte del caricamento di un modulo. Il valore è vero se la modifica è dovuta al caricamento di un modulo. Quando il modulo viene caricato, tutti i valori dei campi sul modulo cambiano.

  • isTemplate- È il valore booleano che indica se la modifica avvenuta è dovuta al popolamento del campo da parte di un modello. Il valore è vero se il cambiamento è dovuto alla popolazione di un modello.

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)

Il glideform è la classe che viene utilizzata per controllare i moduli e i campi dei moduli. Possiamo eseguire attività come nascondere un valore di campo, impostare il valore di campo in base alla risposta sugli altri campi, aggiungere campi all'elenco di scelta, ecc.

La classe glide form include molti metodi. Alcuni metodi importanti sono addOption (), clearOptions (), showFieldMsg (), clearMessages (), clearValue (), setValue (), ecc.

Creiamo uno script client in forma di incidente per popolare un messaggio nel campo della descrizione, se il gruppo di assegnazione è selezionato come team IT frontend. Vai a Criteri dell'interfaccia utente e crea un nuovo criterio. Assegnare la condizione nella sezione "Dove applicare" come "Il gruppo di assegnazione è il team IT frontend".

Invia il criterio dell'interfaccia utente, aprilo di nuovo e quindi fai clic sulla visualizzazione avanzata. Successivamente, troverai l'opzione per dare lo script.

Lo script viene automaticamente popolato con la funzione onCondition (). La funzione onCondition verrà eseguita automaticamente una volta soddisfatta la condizione fornita nella politica dell'interfaccia utente. Un altro punto da notare è che ci sono due script, "Execute if true" e "Execute if false".

Lo script "esegui se vero" verrà eseguito una volta che la condizione è soddisfatta e se, cambiamo i valori nei campi in modo tale che la condizione che abbiamo menzionato non sia più soddisfatta, verrà eseguito lo script in "esegui se falso".

Scriviamo uno script per entrambi. Qui utilizzeremo i metodi setValue e clearValue. Per ottenere il nome del campo, che deve essere menzionato nello script, aprire il modulo dell'incidente e fare clic con il pulsante destro del mouse sul campo desiderato, è possibile trovare il nome del campo nel formato "Mostra - <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');
}

Ora apri il modulo dell'incidente e controlla il risultato.

Scripting lato server

Gli script lato server vengono eseguiti sul server o sul database ServiceNow. Lo scripting lato server ha due categorie:

  • Regole di business

  • Script include

Diamo uno sguardo a ciascuna categoria una per una.

Regole di business

Il modulo delle regole di business è disponibile nell'applicazione di definizione del sistema. Per creare una regola aziendale, fare clic su nuovo. Possiamo creare una semplice regola aziendale utilizzando le azioni delle regole aziendali, che hanno una semplice interfaccia a discesa.

È possibile utilizzare l'azione della regola aziendale per impostare i valori del campo o per aggiungere un messaggio nel modulo. Possiamo scegliere quando eseguire la regola aziendale come di seguito:

  • Before - La logica nella regola aziendale viene eseguita prima dell'operazione sul database

  • After - La logica nella regola aziendale viene eseguita dopo l'operazione sul database

  • Async - Async Business Rules esegue la logica dopo che si è verificata un'operazione sul database, ma lo scheduler mette in coda l'attività da eseguire il prima possibile ma non necessariamente subito dopo l'operazione sul database.

  • Display - Display Business Rules esegue la loro logica, quando viene caricato un modulo e un record viene caricato dal database.

Possiamo anche scegliere l'operazione del database, in corrispondenza della quale deve essere eseguita la regola aziendale. Creiamo un'azione di regola di business, nell'applicazione ROTA del team IT di frontend, che abbiamo creato nell'ultima sezione.

Dobbiamo impostare il valore nel campo Osservazioni come "Monitora lavori batch XO887" se il tempo di turno è dalle 12 alle 6 del mattino. Assegna il nome e la tabella frontend_it_rota. All'interno, quando eseguire la scheda, indicare la condizione, poiché il turno è dalle 12:00 alle 6:00 e seleziona le caselle "inserisci" e "aggiorna".

La scheda Inside Action indica la tua condizione per il campo commento.

Possiamo anche fornire il nostro script personalizzato in questa regola aziendale. Per iniziare a scrivere lo script personalizzato, seleziona la casella di controllo Avanzate e vedrai, la nuova scheda Avanzate per scrivere lo script.

Scriviamo uno script, per interrompere la transazione di inserimento quando il campo membro, ora o data non viene fornito. A questo scopo useremo gli oggetti "corrente" e "precedente".

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

Script Include

Utilizzando gli include di script, possiamo scrivere funzioni o classi personalizzate e quindi usarle in altri script tutte le volte che ne abbiamo bisogno. Sono una specie di script riutilizzabili; possiamo usare in altri script lato client o lato server. Tuttavia, vengono eseguiti solo se chiamati esplicitamente dagli altri script. Per creare un nuovo script include, abbiamo un modulo "Script include"Sotto l'applicazione" Definizione del sistema ". Fare clic su nuovo per creare una nuova inclusione di script.

Nel modulo di inclusione dello script, fornire il nome dell'inclusione dello script. Il campo del nome API è il nome interno dell'inclusione di script e viene utilizzato quando questo include di script viene chiamato da altre applicazioni. Selezionare la casella di controllo richiamabile dal client, se si desidera utilizzare questo script incluso negli script lato client. Nell'applicazione, fornire l'applicazione per la quale viene utilizzato questo script. Nel campo "accessibile da", indica l'ambito dell'applicazione.

Scriviamo uno script per il seguente caso nell'applicazione ROTA del team IT di frontend. Per prima cosa, scriveremo uno script include, che controllerà un carattere non valido in qualsiasi campo. Definiremo una funzione, che prenderà l'argomento come una stringa e restituirà vero o falso, in base ai caratteri nella stringa.

Useremo questa funzione nel nostro scripting delle regole di business per convalidare, se il valore fornito nel campo Member (Name) (nell'app ROTA del team IT frontend), non ha alcun carattere non valido durante l'invio del modulo.

Apri il modulo include script, di seguito è riportato lo script che useremo.

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

Ora, annota lo script della regola aziendale per convalidare il campo Membro. Aprire il modulo delle regole aziendali e creare una nuova regola aziendale per la nostra applicazione Frontend IT team ROTA.

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

Debug

Possiamo utilizzare varie tecniche di debug, se il nostro script non funziona come previsto o se stiamo ottenendo qualche errore. Parliamo di vari modi in cui possiamo eseguire il debug di script lato client e lato server.

Debug degli script client

Il modo migliore per eseguire il debug dello script client è fare riferimento ai log. Javascript fornisce il metodo jslog () per scrivere messaggi nei log Javascript. Il metodo jslog () accetta messaggi, che vogliamo nei log nell'argomento. Di seguito è riportato un esempio su come implementare jslog (). È possibile utilizzare lo script seguente nello script delle regole aziendali.

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

Questo darà il valore dato nel campo membro nei log. In questo caso, abbiamo utilizzato il metodo getvalue, per recuperare il valore del campo del membro. Ora, il passaggio successivo è attivare i log. Vai all'opzione di impostazione nell'angolo in alto a destra e fai clic sulla scheda sviluppatore. Attiva l'opzione "Log Javascript e osservatore di campo".

I log JavaScript si apriranno in una nuova sezione nella parte inferiore della finestra principale del browser ServiceNow.

Oltre a jslog () possiamo anche usare istruzioni try / catch che generalmente usiamo in Javascript per eseguire il debug degli script.

Debug di script lato server

Il modo più comune per eseguire il debug di script lato server è utilizzare il modulo "Script debugger". Lo script debugger può essere utilizzato per posizionare punti di interruzione, attraversare il codice passo dopo passo, visualizzare il valore delle variabili, ecc. Per accedere allo script debugger, trovare "script debugger" nella barra di navigazione. È presente all'interno dell'applicazione “System Diagnostics”.

Oltre a questo, possiamo anche fare riferimento al modulo “Log applicazioni”, che è presente all'interno di “Applicazione log di sistema”.