Cas d’utilisation de scripts de planification
Un script de règle métier spécifie les actions entreprises par la règle métier. Les scripts incluent généralement des variables globales prédéfinies pour référencer des éléments dans votre système, tels que l’enregistrement actuel. Les variables globales sont disponibles pour toutes les règles métier.
Calculer la durée selon une planification
Type : avant règle métier Mettre à jour/Insérer.
Description : une durée d’activité calcule la durée d’ouverture à fermeture d’un incident en fonction des éléments particuliers de création et d’utilisation de calendriers. Si aucun calendrier n’est spécifié, le script utilisera simplement le premier calendrier renvoyé par la requête.
Exemple de script :
var gr_rec = new GlideRecord('incident');
gr_rec.get('ed92e8d173d023002728660c4cf6a7bc');
if (gr_rec.incident_state == 6) {
var dur = calcDurationSchedule(gr_rec.opened_at, gr_rec.sys_updated_on);
}
function calcDurationSchedule(start, end){
// Get the user
var usr = new GlideRecord('sys_user');
usr.get(gs.getUserID());
// Create schedule - pass in the sys_id of your standard work day schedule and pass in the users timezone
var sched = new GlideSchedule('08fcd0830a0a0b2600079f56b1adb9ae',usr.time_zone);
// Get duration based on schedule/timezone
return(sched.duration(start.getGlideObject(), end.getGlideObject()));
}Vérifier les dates d’arrêt à venir
Type : script planifié.
Description : ce script vérifie tous les soirs les dates de résiliation des contrats à venir dans 90, 50 ou 10 jours (selon le champ de durée du contrat).
Exemple de script :
function contractNoticeDue(){
var now_GR = new GlideRecord("contract");
now_GR.addQuery("u_contract_status","Active");
now_GR.query();
while(now_GR.next()){
if((now_GR.u_termination_date<= gs.daysAgo(-90))&&(now_GR.u_contract_duration=="Long")){
now_GR.u_contract_status="In review";}
elseif((now_GR.u_termination_date<= gs.daysAgo(-50))&&(now_GR.u_contract_duration=="Medium")){
now_GR.u_contract_status="In review";}
elseif((now_GR.u_termination_date <= gs.daysAgo(-10))&&(now_GR.u_contract_duration=="Short")){
now_GR.u_contract_status="In review";}
now_GR.update();
}
}- Comparaison de deux champs de date.
- Analyse des charges utiles XML.
- Abandon d’une action de base de données dans une règle métier.
- Indiquez l’opération qui déclenche la règle métier.
- Utilisez le bloc-notes avec les règles métier d’affichage pour modifier les valeurs d’un formulaire juste avant qu’un utilisateur ne charge le formulaire.
- Utilisez la condition OU comme vous le feriez dans un générateur de conditions.
Vous pouvez également utiliser la fonctionnalité de script du système disponible pour les scripts côté serveur.
Vous pouvez utiliser les options du formulaire Règles métier pour créer des conditions, définir des valeurs de champ et afficher des messages d’alerte sans avoir besoin d’écrire un script.