Статья №296
Перезагрузка сервера при поствызовной обработке
Сервер отправлен на перезагрузку, которая запускается по окончанию всех коммутаций. Но при поствызовной обработке данная настройка не срабатывает. В результате теряются введенные оператором данные.
Сервер, отправленный на перезагрузку, ожидает не только окончания всех коммутаций, но и окончания служебных задач.
Воспользуемся этим.
Сценарий диалога будет выглядеть так:
1) В компоненте "инициализируем флаг" создадим глобальную переменную, в которой выставим флаг того, что запущен сценарий диалога. А как мы знаем, глобальная переменная хранит свое значение в рамках сессии. Присвоим ей значение "1"
2) В компоненте "Запуск сценария проверки флага" запускаем асинхронный служебный сценарий, в котором проверяем значение этого флага.
3) После диалоговой карточки ставим компонент "Меняем значение флага", в котором переменной "Флаг" присваиваем "0"
4) Сценарий проверки флага. выглядит так:
Если значение "1", то диалоговая форма открыта и перезагружать рано, значит переходим на паузу 300 мс, затем опять проверяем. Если значение стало "0" - переходим на компонент "Стоп". Для этого в компоненте "Анализ флага" в качестве первого аргумента укажем глобальную переменную "Флаг", которую тут нужно создать заново. В качестве второго - "0"
5) В разделе Администрирование\Общие настройки\Менеджер задач\Поведение сценария диалога после разъединения - Довести сценарий до конца.
6) В разделе Администрирование\Общие настройки\Управление сервером\Ставим галочку "Ожидать момента завершения всех коммутаций и служебных сценариев перед перезапуском"