Cas particuliers dans les calendriers des tâches
Certains cas particuliers nécessitent une attention particulière dans la planification des tâches.
Calendriers de fin de mois
Étant donné que les mois ont des durées différentes, soyez prudent lorsque vous planifiez des tâches pour la fin du mois.
- Il n’est pas recommandé de programmer un événement pour le 29 ou le 30, car la tâche planifiée est exécutée dans des mois (comme février) qui sont plus courts que ces dates.
- Si un événement est planifié pour le 31, il s’exécute le dernier jour du mois, même si le mois est plus court.
Par exemple, un élément planifié pour s’exécuter le 31 du mois est exécuté le 28 février ou le 29 février d’une année bissextile.
Calendriers des jours de la semaine
Pour les scripts planifiés, utilisez le script suivant à exécuter uniquement les jours de la semaine :
var isWeekday;
var today = new Date();
var dayOfWeek = today.getDay(); // Get day of the week(0 = Sunday, 1 = Monday, ... , 6 = Saturday)
switch (dayOfWeek) {
case 0: // Sunday
case 6: // Saturday
isWeekday = false;
break;
default:
isWeekday = true;
}
answer=isWeekday;
Si le script conditionnel d’un rapport planifié est plus complexe et que vous devez utiliser nos classes Glide, veuillez utiliser les étapes suivantes comme solution de contournement :
- Créez une tâche planifiée et exécutez toute la logique conditionnelle du rapport planifié à l’intérieur de la tâche planifiée.
- Si toute la logique conditionnelle est satisfaite, vous pouvez déclencher le rapport planifié avec le script suivant à l’intérieur du travail planifié.
var schRpGr = new GlideRecord("sysauto_report"); schRpGr.get("<sys_id of the scheduled report>"); gs.executeNow(schRpGr);
Travaux planifiés à partir des scripts
Pour exécuter une tâche planifiée déclenchée par un événement, utilisez le script suivant :
//Execute a scheduled script job
var rec = new GlideRecord('sysauto_script');
rec.get('name', 'YOUR_JOB_NAME_HERE');
SncTriggerSynchronizer.executeNow(rec);
- scheduled_import_set (ensembles d’importations planifiées)
- sysauto_script (exécution de script planifiée)
- sysauto_template (génération de modèle planifiée)
- sysauto_report (rapport planifié)
SncTriggerSynchronizer ne fournit pas de méthodes pour exécuter les travaux planifiés à l’avenir.Exécution de scripts planifiés et travaux importés d’une autre instance
Les exécutions de script planifiées et les travaux planifiés sont classés comme des enregistrements de données dans le ServiceNow AI Platform, ce qui signifie qu’ils sont exclus des ensembles de mises à jour. Pour déterminer si une table est incluse, accédez à et afficher la valeur Attribute de la table en question. Seules les tables avec l’attribut update_sync=true sont incluses dans les ensembles de mises à jour.
Vous pouvez éventuellement exporter et importer des enregistrements de données via XML. Toutefois, pour éviter des changements de données inattendus, les enregistrements d’éléments de calendrier [sys_trigger] ne sont pas créés pour les enregistrements de données importés à partir d’un fichier XML tel qu’un ensemble de mises à jour. Pour exécuter des travaux planifiés ou des scripts importés d’une autre instance, mettez à jour la tâche correspondante ou l’enregistrement de script dans l’instance cible.