Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To create a scheduled script job, please complete the steps below:

...

Field

Mandatory

Description

NameYSpecify the scheduled script job name.
Run asYSelect a user to run the script execution. 
ActiveNSelect this checkbox to make the job script active or inactive.
JobSpecify a job to executeType a description of actions performed by the script.
ScriptNType a script to execute.
Run frequencyY

Available options:

  • On-Demand
  • Periodically
  • Once
  • Daily
  • Weekly
  • Monthly.
Run periodY

This field appears when the Periodically option is selected in the Run frequency field.

Customize the period (days, hours, minutes, or seconds) in a preferred combination using the input fields 

Run timeY

This field appears when the Daily, WeeklyMonthly options are selected in the Run frequency field.

Specify the time when to execute a script. Then the script will run regularly at this time.

Run date and timeY

This field appears when Periodically, Once options are selected in the Run frequency field.

Specify the date and time of the job script execution.

You can set the current date and time by clicking Now in the date-picker.

Day of weekY

This field appears when the Weekly option is selected in the Run frequency field.

Specify a day of the week on which the job script should run. For example, select Friday.

Day of monthY

This field appears when the Monthly option is selected in the Run frequency field.

Specify a day of the month on which the job script should run. For example, select 13 for the 13th day of the month.


Скрипты по расписанию Schedule Scripts

Скрипты по расписанию позволяют выполнять серверные скрипты в конкретное время и с определённой периодичностью. Например, отправлять отчёт c числом просроченных задач третьего числа каждого месяца.

...

Поля формы Schedule Script:

Поле

Описание

Name

Название скрипта по расписанию

Run as

Пользователь, от лица которого будет запускаться скрипт. Убедитесь, что у указанного пользователя достаточно прав на совершение CRUD операций, определённых в скрипте.


Active

Активность скрипта по расписанию

Job

Текстовое описание действий, выполняемых в скрипте

Script

Серверный скрипт для запуска

Run frequency

Частота запуска скрипта

Run period

Период запуска скрипта. Доступные опции:

  • On-Demand / По запросу
  • Periodically / Периодически
  • Once / Единожды
  • Daily / Ежедневно
  • Weekly / Еженедельно
  • Monthly / Ежемесячно

Run date and time

Время и дата запуска скрипта с периодом запуска "Единожды"

Timezone

Часовой пояс для даты и времени, указанных в поле Run date and time

Run time

Время запуска в часовом поясе UTC

Day of week

Один из дней недели для запуска скрипта

Day of month

один из дней месяца для запуска скрипта

В качестве альтернативы скриптам, запускаемым периодически могут использоваться отложенные системные события, в скрипте которых будет выполняться планирование будущего события и выполнение основного скрипта (который задаётся в поле Schedule script -> Script). Скрипты системных событий рассматриваются в статье.

Особенности настройки скриптов по расписанию

  1. При написании скриптов, для изменения/удаления записей конфигурации через скрипт создайте отдельного пользователя User и производите установку нужного приложения, перед изменением/удалением записи:(function executeScheduleScript() {  const RUN_AS_USER_ID = '155964310500000026'; // Schedule script -> Run as -> ID  preference.addQuery('name', 'application');  preference.setLimit(1);  if (preference.next()) {    preference.update();    preference.user_id = RUN_AS_USER_ID;    preference.value = ITSM_APPLICATION;  }})()
  2.   // update/delete vcs enabled records ...
  3.     preference.insert();
  4.     preference.name = 'application';
  5.   } else {
  6.     preference.value = ITSM_APPLICATION;
  7.   preference.query();
  8.   preference.addQuery('user_id', RUN_AS_USER_ID);
  9.   const preference = new SimpleRecord('sys_user_preference');
  10.   const ITSM_APPLICATION = '156950344216170038';
  11. Для получения токена текущего пользователя в теле скрипта (пользователя, указанного в поле Run as) невозможно использовать метод getAccessToken(). ​​​​​​Для получения токена используйте выборку:const tokenRec = new SimpleRecord('user_token');tokenRec.orderByDesc('sys_created_at');tokenRec.query();const tokenValue = tokenRec.token;
  12. tokenRec.next();
  13. tokenRec.setLimit(1);
  14. tokenRec.addQuery('user_id', '155964310500000026'); // Schedule script -> Run as -> ID
  15. Создавайте скрипты по расписанию в неактивном состоянии. После завершения настройки скрипта измените активность через отдельное сохранение формы скрипта.
  16. Выполняйте перенос скрипта между экземплярами в неактивном состоянии.


Нестандартное использование скриптов по расписанию

При выполнении серверного скрипта с обновлением большого числа записей возможно возникновение сообщений 504. Ошибка связана с ограничением времени выполнения для REST запросов (Time Out).

...