Amir писал(а):
Цитата:
еще когда я захожу в сервис и нажимаю ОК у меня даты периода откатываются ровно на 1 день. xD Скриптами, событие изменения сервиса, не обрабатывается. Это баги или я чтото накрутил?
Как я вымотался уже с этим модулем D:
На клиентской или на серверной машине стоит java с неправильной timezone (зимнее/летнее время). Попробуйте обновить на последнюю.
Спасибо, проглядел. Теперь все хорошо.
Amir писал(а):
Все сервисы после добавления сначала в состоянии удален.
Если же период добавленного сервиса активен на текущий день - то будет выполнена команда serviceCreate в обработчике активации сервисов (ServiceActivator).
Если неактивен (например, период начала - в будущем) - то так и останется в состоянии удален - для того чтобы при наступлении периода активности выполнилась команда serivceCreate есть задача Активации/Деактивации сервисов по периоду.
Опишу все подробнее.
Я самописным скриптом создаю кучу сервисов таким куском,
все сервисы создаются с сегодняшней датой.
Код:
if(isd.searchInetServ("", new IpAddress(byte_ipadrFrom), 1).size() == 0 && port_id != 0)//Если порт в админке не равен 0 и такого сервиса нет - создаем новый сервис для него
{
print (cid + ";" + IpRange.toString(byte_ipadrFrom, byte_ipadrTo) + ";" + device_id_bill + ";" + port_id + ";" + status_device + ";" + "Создаем сервис." + ";" + adm_comment_incode);
InetServ service = new InetServ();
service.setTypeId(1);
service.setContractId(cid);
service.setDateFrom(new Date());
service.setSessionCountLimit(1);
service.setDeviceId(device_id_bill);
service.setInterfaceId(port_id);
service.setAddressFrom(byte_ipadrFrom);
service.setAddressTo(byte_ipadrTo);
//service.setDeviceState(InetServ.STATE_ENABLE);
//service.setLogin(InetServLogin);
service.setPassword("Redback");
service.setComment(ipn_comment);
servService.inetServUpdate( service, new ArrayList(), true, false, 0 );
}
else //Если порт в админке РАВЕН 0 сервис не создаем и принтуем инфу для дальшейшего анализа
{
status_serviсe = "Сервис НЕ создан.";
adm_comment_incode = new String(adm_comment.getBytes("Cp1252"), "UTF-8"); //декодируем жопошную кодировку adm
print (cid + ";" + IpRange.toString(byte_ipadrFrom, byte_ipadrTo) + ";" + device_id_bill + ";" + port_id + ";" + status_device + ";" + "Сервис НЕ создан." + ";" + adm_comment_incode);
}
После этого в БД я вижу следующее:

Открываю сервис с состоянием "-1"

Делаю этому сервису синхронизацию, в логах следующее (serviceCreate отработал):
Цитата:
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorSet - Connecting to device
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Do task deviceId: 764; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServInitEvent] moduleId: 15; pluginId: no; cid: global; scid: -1; userId: 12; deviceId: 764; inetServId: 174; timestamp: 1352259655903
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Do InetSaServInitEvent task
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Do task deviceId: 764; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent] moduleId: 15; pluginId: no; cid: global; scid: -1; userId: -1; oldInetServ: 174; newInetServ: null; newInetServState: 1; newInetServOptionList: ; timestamp: 1352259680012
connection 11-07/10:41:20 WARN [sa-p-13-t-81] InetApplication - Accounting period not found for inetServ:174
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=3; inetServId: 174; call: true; oldState: 1; newState: 1; oldOptionSet: ; newOptionSet:
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Processing deviceId:764; command ServiceActivatorEvent type=3; inetServId: 174; call: true; oldState: 1; newState: 1; oldOptionSet: ; newOptionSet:
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorSet - Invoking serviceCancel
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Process event type[3] result=true
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Do task deviceId: 764; Event[ru.bitel.bgbilling.modules.inet.access.sa.event.InetSaServModifyEvent] moduleId: 15; pluginId: no; cid: global; scid: -1; userId: -1; oldInetServ: null; newInetServ: 174; newInetServState: 1; newInetServOptionList: ; timestamp: 1352259680012
connection 11-07/10:41:20 WARN [sa-p-13-t-81] InetApplication - Accounting period not found for inetServ:174
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Command result event: ServiceActivatorEvent type=1; inetServId: 174; call: true; oldState: 1; newState: 1; oldOptionSet: ; newOptionSet:
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Processing deviceId:764; command ServiceActivatorEvent type=1; inetServId: 174; call: true; oldState: 1; newState: 1; oldOptionSet: ; newOptionSet:
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorSet - Invoking serviceCreate
connection 11-07/10:41:20 INFO [sa-p-13-t-81] ServiceActivatorDeviceWorker - Process event type[1] result=true
connection 11-07/10:41:25 INFO [sa-p-13-t-81] ServiceActivatorSet - Disconnecting from device
сервис остается также с состоянием "удален"!
Оживить сервис получается только если
отключить(на включить не реагирует) его руками в контекстном меню, открыть и нажать ок, только тогда он примет соостветсвующее договору состояние.
Если я создам новый сервис на этом договоре руками то он примет состояние соответственное договору.
Мб что то где то не успевает отрабатывать? Не очень хочется сотни а то и тысячи договоров руками перелопачивать.)