0
Answered

Добавление и удаление расписаний на сервере

Alexandr Zakharov 4 years ago in Оther updated by Aleksandr Romanov (CTO) 2 years ago 7

Здравствуйте, согласно статье "Tips&Tricks/Редактирование расписания на панели управления", я вижу, что можно редактировать расписания на сервере из скриптов, но можно ли добавлять и удалять расписания из скрипта?

И почему эти возможности опять же не документированы в справочнике JS?

GOOD, I'M SATISFIED
Satisfaction mark by Alexandr Zakharov 4 years ago
Answered

Добрый день!

На данный момент можно редактировать только существующие расписания, нельзя добавлять или удалять, но можно включать или выключать их.


Функционал продолжает развиваться и еще не предполагает полного решения, потому и нет в документации. Использовать можно, совместимость не пропадет, но рекомендовать это как решение, мы не можем.

Что бы не дублировать похожие темы....


По примеру: https://dev.iridi.com/Demo_schedule_edit/ru

Всё отлично работает - большое спасибо.

Но как часто бывает  - этого недостаточно)

Есть ли возможность сохранять в энергонезависимую память введенные данные на стороне Сервера?

А то получается что после каждого "сброса\пропало питание" всё расписание надо забивать по новой...

З.Ы. ввиду отсутствия описания...да и собственных слабых возможностей в JS....всё никак не удается перебрать свойства и методы этого "EventsObj" что бы понять куда же там подставить значения при старте...

Они сохраняются автоматически (не пропадают после перезагрузки) и перетираются только при загрузке новой версии проекта. Уточните подробнее условия возникновения ошибки, версию и платформу сервера, если есть возможность, приложите проект, на котором это повторяется.

P.S. И лучше создать отдельный тикет в службу техподдержки.

Возможно ли в расписании задавать время срабатывания не жестко, а через переменную?

Что за переменная и что в ней будет? Какое-то событие же изменяет эту переменную, соответственно, в это время можно изменить саму константу времени в расписании. Опишите саму задачу, чтобы подсказать варианты решения.

Заказчику было бы удобно иногда фиксировать время активации сценария как некое значение по умолчанию, которое можно было бы вернуть после изменений. Поэтому было бы здорово сохранять желаемое время в некую переменную, и по этой переменной затем делать сработки. Речь идет о расписании Simple для редактируемых сценариев - не увидел там такой возможности. Время по умолчанию задается при программировании сценария и заказчику его изменить невозможно.

Заказчик задает это значение на каком-то попапе (форме), значит на кнопку ОК надо создать обработчик в скриптах, который подменит необходимые EVENTS в расписаниях исходя их предыдущего значения переменной. Т.е. вы храните предыдущее значение базового времени, новое значение базового времени, потом пробегаетесь по нужным расписаниям, из их времени вычитаете предыдущее значение базового времени (получаете сдвиг), далее вычисляете новое время сложим с новым базовым уровнем и прописываете новое время в расписание.

Скриптовые методы в документации https://dev.iridi.com/Routines#%D0%9F%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B5%D0%B2