forum.bitel.ru
http://forum.bitel.ru/

Переоформление договора и Inet (CRM)
http://forum.bitel.ru/viewtopic.php?f=44&t=8176
Страница 1 из 2

Автор:  Cromeshnic [ 20 июн 2013, 07:07 ]
Заголовок сообщения:  Переоформление договора и Inet

В модуле Inet переоформлять договоры стало проблематично:

1. Как и модуль Dialup, Inet ругается на активную сессию при попытке переоформить. В модуле Dialup приходилось закрывать логин, затем переоформляться и открывать логин на новом договоре, что было не очень удобно. В Inet стало ещё менее удобно:
- ставим сервису статус "закрыт"
- заходим в монитор, закрываем активную сессию (после этого сессия всё ещё висит определённый таймаут в активных и договор всё ещё нельзя переоформить)
- в мониторе сбрасываем сессию (закрываем в базе)
- переоформляем
- открываем логин статусом на новом договоре
- ждём следующей авторизации по нему

Представляете, что происходит, если нужно переоформить супердоговор с кучей субдоговоров? Такое бывает. В случае с dialup это было муторно, для Inet - вообще беда, учитывая, что туда будут перенесены все диапазоны IPN.

2. Сессии (и наработка по ним) не переносятся на новый договор при переоформлении задним числом, как это было в Dialup.


ps. Наверняка первое, что спросят разработчики, это: "Зачем вы переоформляете договоры задним числом?"
На практике, внутри открытого бухгалтерского периода клиент часто поздно вспоминает о том, что его фирма целиком или часть торговых точек была переоформлена на другую организацию. Чтобы счёт за текущий месяц выставился на нужном договоре, требуется переоформление.
Вот перед глазами тикет от менеджеров от 18.06.2013:
"Прошу переоформить 3 точки с ООО "Рога и копыта" на ООО "Пупкин и партнёры" с 01.06.13"
+ список субдоговоров

Автор:  Cromeshnic [ 20 июн 2013, 07:11 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

В чём вообще проблема фиктивно разорвать сессию, как это делается на границе суток?
Если это нельзя сделать фиктивно на разных сервисах (я не разбирался), то можно ведь закрыть или сбросить.
В Inet ведь даже radius-сессии могут подниматься из update - пакетов, в крайнем случае можно просто сбрасывать активную сессию и спокойно переоформляться.

Автор:  Cromeshnic [ 20 июн 2013, 07:14 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Тут ещё одна проблема: когда закрываем сессию через ServiceActivator для переоформления, то у клиента возникает перерыв в предоставлении услуг.
В случае с cisco ip subscriber interface у нас повторная авторизация сработает только через 5 минут.
Этого тоже хотелось бы избежать.

Автор:  stark [ 20 июн 2013, 14:05 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Cromeshnic писал(а):
В модуле Inet переоформлять договоры стало проблематично:


2. Сессии (и наработка по ним) не переносятся на новый договор при переоформлении задним числом, как это было в Dialup.



В 6.1 добавили сегодня.

Автор:  stark [ 20 июн 2013, 14:27 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Cromeshnic писал(а):
В чём вообще проблема фиктивно разорвать сессию, как это делается на границе суток?
Если это нельзя сделать фиктивно на разных сервисах (я не разбирался), то можно ведь закрыть или сбросить.
В Inet ведь даже radius-сессии могут подниматься из update - пакетов, в крайнем случае можно просто сбрасывать активную сессию и спокойно переоформляться.


Допустим, мы разорвем. Но сессия же идет сейчас , т.е. прямо сейчас считает , увеличивает счетчики максимальных трафиков и т.п .Прем может быть еще несколько сессии одновременно, которые отсчитываются на разных accounting -серверах, увеличивая общий счетчик трафика в диапазоне тарифа . И тут вы предлагаете каким-то чудом переоформить договор и чтобы это все как-то тоже переехало на новый договор и все корректно обсчитало . Слишком сложно получается. Неужели проблема переофрмления такая частая ? И неужели нельзя в этом момент хоть какое-то время обойтись без текущих сессиий. Может быть нам насильно попытаться сбросить все сессий в этот момент(хотя в случае авто сесиий не получиться скорее всего , там netflow как шел и так идет). Просто вы сами же пишите что клиент что-то забыл , т.е сам виноват . раз виноват то пусть посидит без интернета хоть чуть-чуть.

Автор:  Cromeshnic [ 20 июн 2013, 14:46 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

stark писал(а):
Слишком сложно получается. Неужели проблема переофрмления такая частая ? И неужели нельзя в этом момент хоть какое-то время обойтись без текущих сессиий. Может быть нам насильно попытаться сбросить все сессий в этот момент(хотя в случае авто сесиий не получиться скорее всего , там netflow как шел и так идет). Просто вы сами же пишите что клиент что-то забыл , т.е сам виноват . раз виноват то пусть посидит без интернета хоть чуть-чуть.

Согласен.
Проблема частая.
Если выбирать между 2 вариантами: клиент посидит без интернета на время переоформления, либо мы потеряем за это время данные по трафику, то я выбираю второй.
Но допустимы оба.
Основное, что мне не нравится сейчас - много действий руками при переоформлении.
Если бы доступ клиенту сам закрывался на время переоформления, а потом открывался, и он авторизовывался уже в новом модуле - было бы нормально. А ещё лучше - чтобы клиент продолжал работать, но мы бы просто потеряли некоторые данные по трафику.
Что касается максимальных трафиков и диапазонов тарифа - так на новом договоре это всё равно будет считаться заново.

Автор:  snark [ 20 июн 2013, 15:06 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Для тех кто сюда зайдет - похожая тема.

Автор:  Cromeshnic [ 27 июн 2013, 08:19 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Ещё один баг:
3.
На договоре в модуле Inet есть 2 сервиса:
- с датами: 01.06.2013 - 10.06.2013
- с датами: 15.06.2013 - ...

переоформляем с 27.06.2013 (сегодня).
На новом договоре получаем:
- с датами: 27.06.2013 - 10.06.2013
- с датами: 27.06.2013 - ...

на старом:
- с датами: 01.06.2013 - 26.06.2013
- с датами: 15.06.2013 - 26.06.2013

Т.е. закрытый датой сервис тоже переносится.
Иногда при этом может возникнуть конфликт ресурсов (например, портов), тогда вообще всё переоформление ломается.

Клиент: вер. 5.2 сборка 1181 от 21.06.2013 20:24:28
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_41
Сервер: вер. 5.2 сборка 1513 от 24.06.2013 21:46:44
os: Linux; java: Java HotSpot(TM) Client VM, v.1.6.0_27

inet вер. 5.2 сборка 1199 от 24.06.2013 21:46:43

Автор:  stark [ 27 июн 2013, 15:48 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Исправлено. Будет в следующем обновлении

Автор:  skyb [ 28 июн 2013, 08:22 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

с переоформлением поддерживаю кромешника, мне покачто даты не важны, а вот ручной работы прибавилось, и тоже самое при удалении сервиса и тд

Автор:  Cromeshnic [ 08 июл 2013, 07:30 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

up!

Переоформлять супердоговор с кучей субов с активными сессиями Inet - ад кромешный.

Автор:  Cromeshnic [ 22 июл 2013, 06:22 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

up

По переоформлению только п.1 остался.

Автор:  Cromeshnic [ 23 июл 2013, 12:53 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

up

Автор:  Cromeshnic [ 29 июл 2013, 08:43 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

up

Скину кусок из внутренней вики о переоформлении модуля dialup, чтобы оценить масштаб проблемы:

Цитата:
Переоформление договоров крупных клиентов, где много точек (Банки)

План переоформления договоров крупных клиентов (где точек много).
Подготовить скрипт (А), который автоматически запретит в логине (IPoE, PPPoE, Dial-up) доступ.
Подготовить скрипт (Б), который автоматически разрешит в логине (IPoE, PPPoE, Dial-up) доступ.
Подготовить SQL запрос (В) для отображения текущих сессий (IPoE, PPPoE, Dial-up) клиента по CID супердоговора
SELECT u.login, u.id, c.comment, c.title, s.*
FROM
log_session_23_201201 s, user_login_23 u, contract c
WHERE s.lid = u.id AND c.scid = 125202 AND c.id = u.cid
AND s.STATUS = 0
Согласовать с клиентом дату и время переоформления, предупредить клиента о том, что возможны прерывания сервиса. Согласовать приоритет точек, которые в первую очередь должны быть подняты и проверены.
Предупредить саппорт о проводимых работах
В назначенную дату:
Запускаем SQL запрос (В), смотрим какие сессии сейчас активны.
Необходимо с помощью SQL скрипта посмотреть у каких логинов договора не проставлена дата открытия. - проставить началом даты договора/субдоговора.
Запускаем скрипт А
ждем 30 секунд пока все сессий будут сброшены
Запускаем SQL запрос (В), смотрим какие сессии сейчас активны. Если остались активные сессии, смотрим состояние логина и скидываем ручками.
Через биллинг запускаем переоформление договора. Ждем пока все договоры (субдоговоры) клиента будут переоформлены.
Запускаем скрипт Б

История переоформления <BANKNAME>
Перерыв сервиса у клиента был примерно 15 минут. Из них минут 13 биллинг переоформлял договоры (61 договор)
Остальное время требовалось чтобы поднялись сессии.

Автор:  Cromeshnic [ 17 сен 2013, 07:09 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

up

Автор:  skyb [ 17 сен 2013, 12:57 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

ап

Автор:  Cromeshnic [ 20 сен 2013, 07:09 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Хотя бы в планах есть?
И когда?
В HD тема лежит уже 17 дней без ответа.

У Битела нет культуры работы с клиентами: если не могут/не хотят что-то делать, то просто притворяются мертвыми.
Даже в HD.
И непонятно - сколько ждать и ждать ли вообще.

Обычно в любом саппорте есть определённые регламентом сроки, в течение которых нужно уведомить клиента о статусе заявки и сроках решения проблемы, даже если ничего ещё не сделано.

Автор:  Phricker [ 20 сен 2013, 10:30 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Cromeshnic писал(а):
Обычно в любом саппорте есть определённые регламентом сроки, в течение которых нужно уведомить клиента о статусе заявки и сроках решения проблемы, даже если ничего ещё не сделано.

тут даже не регламент :) тут договор техподдержки.
Цитата:
2.1.2. Отвечать на сообщения Заказчика в течении 10 рабочих часов с момента их отправки. Ответ на сообщение может содержать:
- ответ на заданный вопрос в рамках консультационно-справочного обслуживания;
- уведомление о выполненной работе;
- уточняющий вопрос;
- предложение по срокам и стоимости выполнения работ;
- отказ в обслуживании в случае если вопрос либо работа лежат вне сферы компетенции Исполнителя.

Автор:  stark [ 27 сен 2013, 17:31 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Cromeshnic писал(а):
Хотя бы в планах есть?
И когда?
В HD тема лежит уже 17 дней без ответа.

У Битела нет культуры работы с клиентами: если не могут/не хотят что-то делать, то просто притворяются мертвыми.
Даже в HD.
И непонятно - сколько ждать и ждать ли вообще.

Обычно в любом саппорте есть определённые регламентом сроки, в течение которых нужно уведомить клиента о статусе заявки и сроках решения проблемы, даже если ничего ещё не сделано.


По доработкам мы не всегда даем конкретные сроки , в общем случае мы можем вообще отказаться ее делать . Просто вы висите в очереди с несрочной задачей(Да неудобно работать, но не критично). Мы пока не придумали как это сделать и руки до этой проблемы не дошли. Мы можем в этой момент быть заняты на еще 100500 хотелок, часть их которых принадлежит вам же. Какой бы порядок мы не выбрали, всегда найдется тот, кто скажет что его игнорируют уже давно.

Автор:  Cromeshnic [ 28 сен 2013, 16:41 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Можно просто написать, что задача в очереди на рассмотрение.
Я же ведь не знаю - может вы вообще забили сразу.

Автор:  Cromeshnic [ 28 сен 2013, 16:43 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

"Знаешь, что я заметил? Никто не паникует, когда всё идет согласно плану. Даже если план чудовищен."
(с) Джокер

Автор:  stark [ 30 сен 2013, 12:52 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Cromeshnic писал(а):
Можно просто написать, что задача в очереди на рассмотрение.
Я же ведь не знаю - может вы вообще забили сразу.

Написали

Автор:  Cromeshnic [ 21 ноя 2014, 08:36 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Код:
Caused by: ru.bitel.bgbilling.common.BGException: ru.bitel.bgbilling.common.BGMessageException: Этот сервис не может быть перенесен, так как на нем есть активные сессии.
        at ru.bitel.bgbilling.kernel.event.processors.CommonKernelEventProcessor.notify(CommonKernelEventProcessor.java:181)
        at ru.bitel.bgbilling.kernel.event.processors.CommonKernelEventProcessor.notify(CommonKernelEventProcessor.java:1)
        at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)


Ситуация: куча субов, переоформление занимает несколько минут, в процессе приходит update или flow по сервису и поднимается сессия. Переоформление останавливается с такой ошибкой, половина субов переведена, половина - нет.

1. Можете более информативно сделать - чтобы в ошибке договор и сервис выдавало?
2. Мб можно как-то лочить фичу поднятия сессии по аккаунтингу в момент переофрмления?

v 5.2

Автор:  Cromeshnic [ 21 ноя 2014, 09:13 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Ещё как вариант делать закрытие сессий по wrap.contract.finish.current.sessions=1 не при первичной проверке перед переоформлением (или не только), а при собственно переносе сервиса (в методе inetServWrap())

Автор:  stark [ 21 ноя 2014, 13:14 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Cromeshnic писал(а):
Код:
Caused by: ru.bitel.bgbilling.common.BGException: ru.bitel.bgbilling.common.BGMessageException: Этот сервис не может быть перенесен, так как на нем есть активные сессии.
        at ru.bitel.bgbilling.kernel.event.processors.CommonKernelEventProcessor.notify(CommonKernelEventProcessor.java:181)
        at ru.bitel.bgbilling.kernel.event.processors.CommonKernelEventProcessor.notify(CommonKernelEventProcessor.java:1)
        at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)


Ситуация: куча субов, переоформление занимает несколько минут, в процессе приходит update или flow по сервису и поднимается сессия. Переоформление останавливается с такой ошибкой, половина субов переведена, половина - нет.



Там же вроде одна транзакция, все переведенные субы должны откатить.

Автор:  stark [ 21 ноя 2014, 13:21 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Cromeshnic писал(а):
2. Мб можно как-то лочить фичу поднятия сессии по аккаунтингу в момент переофрмления?



У нас есть принципиальная позиция одного из разработчиков не менять ничего в runtime ради "ненужного, громоздкого, малоиспользуемого переоформления".

Автор:  stark [ 21 ноя 2014, 13:21 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Cromeshnic писал(а):

1. Можете более информативно сделать - чтобы в ошибке договор и сервис выдавало?



Это можно.

Автор:  Cromeshnic [ 21 ноя 2014, 15:09 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Итого:

Цитата:
1. Можете более информативно сделать - чтобы в ошибке договор и сервис выдавало?
2. Мб можно как-то лочить фичу поднятия сессии по аккаунтингу в момент переофрмления?
3. Делать закрытие сессий по wrap.contract.finish.current.sessions=1 не при первичной проверке перед переоформлением (или не только), а при собственно переносе сервиса (в методе inetServWrap())


1 - ок
2 - won't fix (ок, резонно)
3 - won't fix (будут проблемы с транзакциями и дедлоками)

Автор:  Cromeshnic [ 29 окт 2016, 12:31 ]
Заголовок сообщения:  Re: Переоформление договора и Inet

Всё те же грабли всё там же.

Давно уже написал пару скриптов через "Доп действия договора":
- отключить сервисы перед переоформлением
- включить сервисы после переоформления

Вот описание из кода:

Код:
/**
 * Метод реализует 2 доп действия договора:
 *  - Закрываем логины указанных экземпляром модулей Inet и Dialup на договоре и субах
 *  - Открываем их
 *  Логика следующая:
 *  Когда мы хотим переоформить договор, запускаем первое действие на нём.
 *  Все сервисы/логины закрываются, текущие сессии гасятся.
 *  Переоформляем.
 *  На новом договоре запускаем второе доп действие.
 *  Все сервисы/логины открываются, постепенно восстанавливаются соединения.
 *  Сервисы и логины закрываются статусом.
 *  При этом закрытые до первого действия сервисы и логины так и остаются закрытыми после открытия остальных.
 *  Это достигается путём установки "левых" id статусов (SERV_STATUS_CLOSED для Inet и DIALUP_STATUS_CLOSED для Dialup)
 *  В случае с Inet, у сервиса есть 3 стандартных статуса: 0,1,2 - Открыт, Закрыт, Заблокирован.
 *  Для Dialup - 2 статуса: 0,1 - Разрешен, Запрещен.
 *  В обоих модулях статус, отличный от 0, запрещает соединение.
 *  Т.е. я могу использовать любые id статусов, отличные от нуля и уже существующих, для собственных целей.
 *  При отключении сервисы и логины закрываются специальными статусами, только если текущий статус=0.
 *  При включении обратно сервисы и логины возвращаются в статус 0 только если текущий статус = 'специальный статус'.
 *  (*В случае модуля Inet также после закрытия сервиса происходит сначала закрытие текущих сессий, а затем принудительный сброс их.*)
 *  (на самом деле нет, т.к. это нормально не работает)
 */


- всё равно не помогает для Inet.

1. Закрываю сессию без разрыва на устройстве.
2. Ставлю закрытый статус сервису, чтобы новые сессии не авторизовались
3. Но когда сессия поднимается не через авторизацию, а из аккаунтинга (radius/flow), ей пофигу на статус сервиса. Т.е. нет вообще никакого способа гарантировать, что в процессе переоформления/переноса сервиса не возникнет ошибки "Этот сервис не может быть перенесен, так как на нем есть активные сессии." (не в ActionWrapContract, а уже в inetServWrap)
4. Половина субдоговоров остаётся непереоформленными, приходится делать вручную.
5. Боль, бессилие, фрустрация.

Я не прошу разработчиков прикручивать сложную логику на переоформление - я сам прикручу её скриптами.
Просто дайте мне способ сказать аккаунтингу: "вот этот сервис залочен сейчас - не поднимай на нём никаких сессий вообще".

Сейчас могу только придумать загадить сервис так, чтобы он его даже не находил: поменять устройство, дату и т.п.
Но это же потом переносить и обратно восстанавливать нужно будет...

Автор:  stark [ 26 дек 2016, 11:45 ]
Заголовок сообщения:  Re: Переоформление договора и Inet (CRM)

Хорошо, подумаем что можно сделать. Добавили в TODO. Тема старая, там же уже что-то делали, я думал проблема уже как-то решилась.

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/