Cas particuliers dans les plannings de 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 pendant 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 se déroule le 28 février ou le 29 février d’une année bissextile.
Calendriers 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 des travaux planifiés à l’avenir.Exécution de scripts planifiés et de travaux importés d’une autre instance
Les exécutions de script planifiées et les travaux planifiés sont classés comme enregistrements de données dans , ce qui signifie qu’ils ServiceNow AI Platform sont exclus des ensembles de mises à jour. Pour déterminer si une table est incluse, accédez à et affichez la valeur Attribut pour 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 inattendus de données, les enregistrements d’élément 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.