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