Restriction de l’accès aux enregistrements
Vous pouvez utiliser une règle métier de requête qui s’exécute avant la requête de base de données pour empêcher les utilisateurs d’accéder à certains enregistrements.
Avertissement :
La personnalisation décrite ici a été développée pour une utilisation dans des instances spécifiques, et n'est pas prise en charge par Now Support. Cette méthode est fournie telle quelle et doit être testée rigoureusement avant d'être implémentée. Publiez toutes les questions et commentaires concernant cette personnalisation dans notre forum communautaire.
Prenons l’exemple suivant d’une règle métier par défaut qui limite l’accès aux enregistrements d’incidents.
| Nom | Table | Quand |
|---|---|---|
| Requête d’incident | Incident | avant, interroger |
Restriction de l’accès aux enregistrements
Dans l’exemple suivant, les utilisateurs ne peuvent pas accéder aux enregistrements d’incidents, sauf s’ils disposent du rôle itil et s’ils sont répertoriés dans le champ Appelant ou Ouvert par . Lorsque les utilisateurs en libre-service ouvrent une liste d’incidents, ils ne peuvent voir que les incidents qu’ils ont soumis.
if (!gs.hasRole("itil")&& gs.isInteractive()) {
var u = gs.getUserID();
var qc = current.addQuery("caller_id", u).addOrCondition("opened_by", u).addOrCondition("watch_list","CONTAINS", u);
gs.print("query restricted to user: " + u);}
Remarque :
Vous pouvez également utiliser des contrôles d’accès pour restreindre les enregistrements que les utilisateurs peuvent voir. (pour en savoir plus, consultez Access Control List Rules) ;
Script de calendrier pour les jours de la semaine
Type : Règles métier/Scripts clients.
Ce script planifie le script pour les jours de la semaine. Insérez n’importe quel script dans lequel il est écrit « Votre script ici ».
var go ='false';
var now =new Date();
// Correct time zone, which is by default GMT -7
now.setHours(now.getHours()+8);
var day = now.getDay();
// No go on Saturday or Sunday
if(day !=0&& day !=6){
// (your script here)
}Définir le champ de date en fonction de la date actuelle
Ce script définit un champ de date en fonction du jour de la semaine. Dans cet exemple, si le jour est du lundi au mercredi, il définit la date au lundi suivant ; sinon, il fixe le champ de date à lundi prochain.
function setCabDate(){
var today = new Date();
var thisDay = today.getDay();
//returns 0 for Sunday, 1 for Monday, through 6 for Saturday.
var thisMon = new GlideDateTime();
thisMon.setDisplayValue(gs.beginningOfThisWeek());
var nextMon = thisMon.getNumericValue();
nextMon +=(1000*60*60*24*7);
if((thisDay <4)&&(thisDay >0))
//if today is Mon thru Wed (thisDay = 1, 2, or 3), set cab to this coming Monday.
current.u_req_cab_rev_date.setDateNumericValue(thisMon.getNumericValue());
else if((thisDay >=4)||(thisDay ==0))
//if today is Thurs thru Sun (thisDay = 4, 5, 6, or 0), set cab to next Monday.
current.u_req_cab_rev_date.setDateNumericValue(nextMon);
}Pour valider l’entrée de tous les champs de date/heure, vous pouvez utiliser les éléments suivants dans un script de validation (). Étant donné que le format date/heure est codé en dur dans ce script, il doit correspondre au format date/heure de votre instance. Si le format de date/heure de votre instance change, vous devez mettre à jour votre script de validation.
Définissez le type du script de validation sur Date/Heure. Ensuite, avec ce script de validation, si un utilisateur saisit un format incorrect dans un champ date/heure, il reçoit un message d’erreur.
function validate(value){
// empty fields are still valid dates
if(!value)
return true;
// We "should" have the global date format defined always defined. But there's always that edge case.
if(typeof g_user_date_time_format !=='undefined')
return isDate(value, g_user_date_time_format);
// if we don't have that defined, we can always try guessing
return parseDate(value)!==null;}Pour plus d'informations, consultez Cas d’utilisation du script de validation : date et heure.