вторник, 12 мая 2015 г.

Новые функции в Oktell 2.12

Приветствую.
Последнее время я как-то забросил писать всякое про ТМ и Октелл. Каюсь, исправлюсь, Тем более, что накопилось уже достаточно много всякого и интересного. Просто чтобы  вылить это все в статьи надо время, а его у меня полно - отсутствует лишь желание и настроение. Я ленивая жопа, да.

Тем не менее настроение появилось и вот что сегодня я вам расскажу. Минутка про новое в Октелле.

Несомненно в новой версии Октелла планируется много чего нового и интересного. Рассказывали про все это вот тут: https://oktell.ru/company/press/view/329/
Привет, Стас!

Однако, в данном опусе я хотел  бы рассказать о двух крайне полезных новых функциях в выражениях, которые помогут сильно сократить по объемам ваш сценарий.


Итак, представляю вам функции.

If (x, a, b)

Приведу выписки из wiki:
If (x, a, b)x - логическое выражение или число
a, b - число или строка
Число, строкаВыводит результат в зависимости от логического выражения.
Если x - не ноль (true), то возвращается a. Если x - ноль (false), возвращается b. В логическом выражении можно использовать операторы ==, >, <, >=, <=, &&, ||.
Примеры:
If ( num([a]) > 5, 'a больше 5', 'a меньше 5')
If ( num([a])&&num([b]), substr([callerid], 6, 5), 1)


Приведу пример где ее можно использовать в нашей практике. 
Дано: 
1.  городских номеров используется маска ХХХХХХ (шестизнаки без кода города) 

2.  в качестве сотовых использует 11 знаков 
3.  город Ижевск с кодом 3412

Как уложить это в одно выражение (а значит в один компонент отзвона) на примере города Ижевска:

if( len([номер])==6, '83412'+[номер], [номер])

Таким образом компонент наберет просто [номер], если его длина не равна 6 символам и 83412+[номер], если длина = 6 символам. Можно придумать еще много чего полезного, конкретный пример встречается в нашей практике чаще всего. 


ScriptFunc (s)



ScriptFunc (s)s - строкаСтрока или числоВозвращает значение функции из списка, указанной в параметре s. Следует указывать полное название функции.
Пример:
ScriptFunc('Текущий час')
ScriptFunc('Номер линии')
Тут все просто: функция возвращает одну из функций из списка функций =))
К примеру, чтобы вернуть "Код линии" теперь не обязательно создавать отдельный компонент с  привязкой к переменной, а достаточно в самом выражении написать ScriptFunc ('Код линии') и обработать его нужным образом.

Прощай куча бесполезных компонентов! Да здравствует минимализм!