Определение графика работы офиса — различия между версиями
м (→Реализация для версий Oktell ниже 2.9) |
|||
(не показано 20 промежуточных версии этого же участника) | |||
Строка 1: | Строка 1: | ||
[[Практики|Наверх]] | [[Практики|Наверх]] | ||
+ | |||
+ | __TOC__ | ||
+ | |||
+ | == Введение == | ||
В общих настройках есть следующий пункт: '''Общие настройки'''->'''График работы офиса'''. | В общих настройках есть следующий пункт: '''Общие настройки'''->'''График работы офиса'''. | ||
Строка 7: | Строка 11: | ||
− | + | Часто возникает вопрос как можно проверить, например, в главном IVR сценарии, соответствует ли текущее время графику работы офиса или нет. | |
− | *<nowiki> | + | |
− | *<nowiki> | + | Сами данные по графику хранятся в таблице '''[oktell_settings].[dbo].[A_Settings]''' в виде xml-структур в строках с ключами: |
+ | *<nowiki>us~~~~o_WorkTime</nowiki> (рабочее время), | ||
+ | *<nowiki>usd~~~o_Holidays</nowiki> (праздники) | ||
+ | |||
+ | |||
+ | ==Реализация с помощью статуса объекта == | ||
+ | |||
+ | Для версий '''Oktell''' старше '''2.9 131126''' определение рабочего времени доступно в сценариях с помощью компонента "'''Статус объекта'''". | ||
+ | |||
+ | |||
+ | [[Файл:График работы офиса -002.png|center]] | ||
+ | |||
+ | |||
+ | В компоненте настраиваются следующие параметры: | ||
+ | *'''Действие''' - Определить | ||
+ | *'''Тип объекта''' - Сервер | ||
+ | *'''Функция''' - Рабочее время по графику офиса | ||
+ | *'''Параметр''' - текущее время (или время, за которое проверяем график работы офиса). В примере используется функция "'''Текущие дата и время'''". | ||
+ | *'''Значение в переменную''' - выберите переменную для хранения результата. | ||
+ | |||
+ | Результатом является число '''1''', если время в параметре соответствует графику работы офиса и '''0''' - если не соответствует. Функция проверяет график работы офиса и праздничные дни. | ||
+ | |||
+ | |||
+ | ==Реализация для версий Oktell ниже 2.9== | ||
+ | |||
+ | Для версий ниже 2.9 131126 можно создать сценарий, возвращающий '''1''' - время соответствует графику офиса, '''0''' - не соответствует и запускать его как вложенный. Сами xml-структуры разбираются парсером '''Oktell'''. Для графика работы офиса (в сценарии-примере): | ||
+ | |||
+ | <strong>Количество записей для дня недели:</strong> <span style="color:green">''''>Period[WeekDay='+[деньнедели]+']''''</span>, где '''[деньнедели]''' - переменная содержащая день недели в числовой форме: Понедельник=1, Вторник=2,.. Суббота=6, Воскресенье=0. | ||
+ | |||
+ | <strong>Период работы офиса в течении дня:</strong> <span style="color:green">''''>Period[WeekDay='+[деньнедели]+']:eq('+Str( [количество] )+')''''</span>, где '''[количество]''' - номер по порядку периода работы офиса в течении дня (например, офис работает с 9.00 до 12.00 и с 13.00 до 18.00 - имеем 2 периода). | ||
+ | |||
+ | |||
+ | В нижеприведенном примере проверяется только график, праздники не проверяются): | ||
+ | |||
+ | [[Файл:График работы офиса -001.png|center]] | ||
− | |||
− | + | <span style="color:red">ВНИМАНИЕ: Представленный сценарий является служебным. Чтобы использовать его в главном сценарии используйте IVR-версию | |
− | + | '''Скачать служебный сценарий:''' [[Media:ГрафикРаботыОфиса.oscr|ГрафикРаботыОфиса.oscr]] (для версий '''Oktell''' старше 2.6) | |
− | + | '''Скачать IVR сценарий:''' [[Media:%D0%93%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D1%8B%D0%9E%D1%84%D0%B8%D1%81%D0%B0IVR.oscr|ГрафикРаботыОфисаIVR.oscr]] (для версий '''Oktell''' старше 2.9 131007) |
Текущая версия на 11:27, 31 марта 2023
Содержание
Введение
В общих настройках есть следующий пункт: Общие настройки->График работы офиса.
Часто возникает вопрос как можно проверить, например, в главном IVR сценарии, соответствует ли текущее время графику работы офиса или нет.
Сами данные по графику хранятся в таблице [oktell_settings].[dbo].[A_Settings] в виде xml-структур в строках с ключами:
- us~~~~o_WorkTime (рабочее время),
- usd~~~o_Holidays (праздники)
Реализация с помощью статуса объекта
Для версий Oktell старше 2.9 131126 определение рабочего времени доступно в сценариях с помощью компонента "Статус объекта".
В компоненте настраиваются следующие параметры:
- Действие - Определить
- Тип объекта - Сервер
- Функция - Рабочее время по графику офиса
- Параметр - текущее время (или время, за которое проверяем график работы офиса). В примере используется функция "Текущие дата и время".
- Значение в переменную - выберите переменную для хранения результата.
Результатом является число 1, если время в параметре соответствует графику работы офиса и 0 - если не соответствует. Функция проверяет график работы офиса и праздничные дни.
Реализация для версий Oktell ниже 2.9
Для версий ниже 2.9 131126 можно создать сценарий, возвращающий 1 - время соответствует графику офиса, 0 - не соответствует и запускать его как вложенный. Сами xml-структуры разбираются парсером Oktell. Для графика работы офиса (в сценарии-примере):
Количество записей для дня недели: '>Period[WeekDay='+[деньнедели]+']', где [деньнедели] - переменная содержащая день недели в числовой форме: Понедельник=1, Вторник=2,.. Суббота=6, Воскресенье=0.
Период работы офиса в течении дня: '>Period[WeekDay='+[деньнедели]+']:eq('+Str( [количество] )+')', где [количество] - номер по порядку периода работы офиса в течении дня (например, офис работает с 9.00 до 12.00 и с 13.00 до 18.00 - имеем 2 периода).
В нижеприведенном примере проверяется только график, праздники не проверяются):
ВНИМАНИЕ: Представленный сценарий является служебным. Чтобы использовать его в главном сценарии используйте IVR-версию
Скачать служебный сценарий: ГрафикРаботыОфиса.oscr (для версий Oktell старше 2.6)
Скачать IVR сценарий: ГрафикРаботыОфисаIVR.oscr (для версий Oktell старше 2.9 131007)