Правило включения типов — различия между версиями
Elena (обсуждение | вклад) |
|||
(не показано 5 промежуточных версии 2 участников) | |||
Строка 1: | Строка 1: | ||
+ | <code>[[Техническая документация]] / [[Call-центр]] или [[Администрирование]] / [[Сценарии]] / [[Правило включения типов]] </code> | ||
+ | |||
+ | |||
При задании значений переменным, сравнении, а также прочих операциях, где участвуют два аргумента, возможно допущение логической ошибки – сравнение данных разных типов (например, строки и числа). Сервер логики Oktell помогает решить подобные задачи и исключить подобные некорректности использованием правила включения типов. | При задании значений переменным, сравнении, а также прочих операциях, где участвуют два аргумента, возможно допущение логической ошибки – сравнение данных разных типов (например, строки и числа). Сервер логики Oktell помогает решить подобные задачи и исключить подобные некорректности использованием правила включения типов. | ||
− | + | ==Правило== | |
+ | Правило:если на выходе при подстановке значения переменной требуется строка, то ее значение переводится в строку без потерь. Если требуется число или дата/время, то обработчик сценария пытается преобразовать значение переменной к нужному типу, и в случае невозможности корректного приведения типов в качестве результата будет взято значение по умолчанию (для типа «число» – это 0, для типа «строка» – это пустая строка, для типа «дата/время» – это текущая дата/время). | ||
Текущая версия на 12:49, 18 декабря 2014
Техническая документация / Call-центр или Администрирование / Сценарии / Правило включения типов
При задании значений переменным, сравнении, а также прочих операциях, где участвуют два аргумента, возможно допущение логической ошибки – сравнение данных разных типов (например, строки и числа). Сервер логики Oktell помогает решить подобные задачи и исключить подобные некорректности использованием правила включения типов.
Правило
Правило:если на выходе при подстановке значения переменной требуется строка, то ее значение переводится в строку без потерь. Если требуется число или дата/время, то обработчик сценария пытается преобразовать значение переменной к нужному типу, и в случае невозможности корректного приведения типов в качестве результата будет взято значение по умолчанию (для типа «число» – это 0, для типа «строка» – это пустая строка, для типа «дата/время» – это текущая дата/время).
В качестве примеров:
- Целое число 1 корректно переходит в строку «1»;
- строка «1» менее корректно переходит в число 1, поскольку в строке могут содержаться нечисловые символы;
- десятичное число 1,5 корректно переходит в строку «1.5»;
- Строка «1.5», а также «1,5» переходит в десятичное число менее корректно;
- Дата/время корректно преобразуется в строку, определяемую текущими настройками операционной системы (в стандартной русской раскладке «25.12.1981 12:30:00»);
- Перевод из строки в тип «дата/время» наименее корректен в силу больших различий в представлениях дат;
- Перевод из числа в дату и наоборот – некорректен;
- Перевод из строки, содержащей «лишние символы» в число – некорректен;
- Перевод из строки, содержащей текст, не соответствующий представлению дат/времени в строках в операционной системе сервера, в дату – некорректен.
Использование разных типов в одной операции может привести к нежелаемым последствиям для создателя сценария. Имейте это в виду при редактировании сценариев, и, по возможности, не допускайте подобного назначения свойств (за исключением случаев, когда это крайне необходимо и продиктовано форматом хранения данных в БД, а также необходимостью преобразования в число символов, набираемых абонентом с клавиатуры телефона).