Изменение стандартной логики перетирания статусов
Материал из BiTel WiKi
Имеется возможность задать свою любую логику перетирания статусов при установке. Стандартная логика заключается в полном перекрытии лежащих уже в договоре отрезков статуса. Иногда требуется при разных условиях выполнять разные дйствия. Для этого предназначено событие "Задание логики перетирания статусов". В скрипте (обработчике этого события) можно отслеживать откуда выполняется попытка установить статус (сервер,клиент,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)