Изменение стандартной логики перетирания статусов
Материал из BiTel WiKi
DimOn (Обсуждение | вклад) |
DimOn (Обсуждение | вклад) |
||
Строка 7: | Строка 7: | ||
Возможность включается установкой в конфиге сервера флага use.event.set.status.logic=1. | Возможность включается установкой в конфиге сервера флага use.event.set.status.logic=1. | ||
- | Также можно использовать описание [[Алгоритм установки статуса в системе|алгоритма установки статуса]] для более полного понимания того, что происходит при инициации смены статуса в | + | Также можно использовать описание [[Алгоритм установки статуса в системе|алгоритма установки статуса]] для более полного понимания того, что происходит при инициации смены статуса в системе. |
+ | |||
+ | Внутри скрипта можно распознать кто именно изменяет статус - оператор, сервер или пользователь из Web. Распознать эти случаи можно по userId события: User.USER_SERVER и User.USER_CONTRACT или же он равен id менеджера. | ||
--[[Участник:DimOn|dimOn]] 06:28, 13 октября 2010 (UTC) | --[[Участник:DimOn|dimOn]] 06:28, 13 октября 2010 (UTC) |
Версия 11:59, 26 ноября 2010
Имеется возможность задать свою любую логику перетирания статусов при установке. Стандартная логика заключается в полном перекрытии лежащих уже в договоре отрезков статуса. Иногда требуется при разных условиях выполнять разные дйствия. Для этого предназначено событие "Задание логики перетирания статусов". В скрипте (обработчике этого события) можно отслеживать откуда выполняется попытка установить статус (сервер,клиент,web) и полность изменить алгоритм.
Следует учесть, что скрипт довольно низкоуровневый, и при этом весьма ответственный, посему относиться к его написанию и отладке следует с особым трепетом и вниманием. Для удобства прилагается полный рабочий скрипт, представляющий собой в точности реализованную стандартную логику. Его также можно использовать для изучения алгоритма.
Возможность включается установкой в конфиге сервера флага use.event.set.status.logic=1.
Также можно использовать описание алгоритма установки статуса для более полного понимания того, что происходит при инициации смены статуса в системе.
Внутри скрипта можно распознать кто именно изменяет статус - оператор, сервер или пользователь из Web. Распознать эти случаи можно по userId события: User.USER_SERVER и User.USER_CONTRACT или же он равен id менеджера.
--dimOn 06:28, 13 октября 2010 (UTC)