Изменение стандартной логики перетирания статусов

Материал из 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)

Личные инструменты