Определение графика работы офиса — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
м (Реализация для версий Oktell ниже 2.9)
 
(не показано 14 промежуточных версии этого же участника)
Строка 11: Строка 11:
  
  
Возникает вопрос как можно проверить, например, в главном IVR сценарии, соответствует ли текущее время графику работы офиса или нет. В таблице? Сами данные по графику хранятся в таблице '''[oktell_settings].[dbo].[A_Settings]''' в виде xml-структур в строках с ключами:
+
Часто возникает вопрос как можно проверить, например, в главном IVR сценарии, соответствует ли текущее время графику работы офиса или нет.  
*<nowiki>'us~~~~o_WorkTime'</nowiki> (рабочее время),
+
*<nowiki>'usd~~~o_Holidays'</nowiki> (праздники)
+
  
 +
Сами данные по графику хранятся в таблице '''[oktell_settings].[dbo].[A_Settings]''' в виде xml-структур в строках с ключами:
 +
*<nowiki>us~~~~o_WorkTime</nowiki> (рабочее время),
 +
*<nowiki>usd~~~o_Holidays</nowiki> (праздники)
  
Соответственно, можно создать сценарий, возвращающий '''1''' - да, соответствует, '''0''' - нет и запускать его как вложенный. Сами xml-структуры разбираются парсером '''Oktell'''. Для графика работы офиса (в сценарии-примере):
 
  
<u>Количество записей для дня недели:</u> <span style="color:green">''''>Period[WeekDay='+[деньнедели]+']''''</span>, где '''[деньнедели]''' - переменная содержащая день недели в числовой форме: Понедельник=1, Вторник=2,.. Воскресенье=7.
+
==Реализация с помощью статуса объекта ==
  
<u>Период работы офиса в течении дня:</u> <span style="color:green">''''>Period[WeekDay='+[деньнедели]+']:eq('+Str( [количество] )+')''''</span>, где '''[количество]''' - номер по порядку периода работы офиса в течении дня (например, офис работает с 9.00 до 12.00 и с 13.00 до 18.00 - имеем 2 периода).
+
Для версий '''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 периода).
 +
 
  
 
В нижеприведенном примере проверяется только график, праздники не проверяются):
 
В нижеприведенном примере проверяется только график, праздники не проверяются):
Строка 31: Строка 51:
  
  
 +
<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)
*[http://wiki.oktell.ru/images/b/bb/%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%B0.oscr ГрафикРаботыОфиса.oscr‎] (для версий '''Oktell''' младше 2.10)
+
*[http://wiki.oktell.ru/images/0/03/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D0%BA_%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B_%D0%BE%D1%84%D0%B8%D1%81%D0%B0.oscr ГрафикРаботыОфиса.oscr‎] (для версий '''Oktell''' старше 2.10)
+

Текущая версия на 11:27, 31 марта 2023

Наверх

Введение

В общих настройках есть следующий пункт: Общие настройки->График работы офиса.


ГрафикОфиса.PNG


Часто возникает вопрос как можно проверить, например, в главном IVR сценарии, соответствует ли текущее время графику работы офиса или нет.

Сами данные по графику хранятся в таблице [oktell_settings].[dbo].[A_Settings] в виде xml-структур в строках с ключами:

  • us~~~~o_WorkTime (рабочее время),
  • usd~~~o_Holidays (праздники)


Реализация с помощью статуса объекта

Для версий Oktell старше 2.9 131126 определение рабочего времени доступно в сценариях с помощью компонента "Статус объекта".


График работы офиса -002.png


В компоненте настраиваются следующие параметры:

  • Действие - Определить
  • Тип объекта - Сервер
  • Функция - Рабочее время по графику офиса
  • Параметр - текущее время (или время, за которое проверяем график работы офиса). В примере используется функция "Текущие дата и время".
  • Значение в переменную - выберите переменную для хранения результата.

Результатом является число 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 периода).


В нижеприведенном примере проверяется только график, праздники не проверяются):


График работы офиса -001.png


ВНИМАНИЕ: Представленный сценарий является служебным. Чтобы использовать его в главном сценарии используйте IVR-версию

Скачать служебный сценарий: ГрафикРаботыОфиса.oscr (для версий Oktell старше 2.6)

Скачать IVR сценарий: ГрафикРаботыОфисаIVR.oscr‎ (для версий Oktell старше 2.9 131007)