BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 18 июн 2025, 22:38

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
СообщениеДобавлено: 27 апр 2015, 14:43 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
Хочу проверять наличие комментария при смене статуса договора, написал вот такой скрипт
Код:
import bitel.billing.server.script.event.*;
import ru.bitel.common.Utils;

void onEvent(event, setup, con, conSlave){
   if(event.getRequest().getParameter("action").equals("changeContractStatus")){
      comment = event.getRequest().getParameter("comment");

      if( Utils.isBlankString(comment) ){
         event.setError( "Пожалуйста укажите комментарий для устанавливаемого статуса", false );
      }
}
}

Повесил на договор, в условиях задал "Перед действием".
И не работает, подскажите плиз в чём может быть проблема?

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 апр 2015, 14:55 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
А оно точно вызывается? поставьте print в нем.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 27 апр 2015, 15:26 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
В каких таких условиях? Версия какая? Если не древняя - надо делать динамическими экшенами.
http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%BE%D0%B2
там есть 100% нужный вам пример про статус договора

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2015, 16:45 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
stark писал(а):
А оно точно вызывается? поставьте print в нем.

а где этот принт ловить потом?

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2015, 16:53 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 08 мар 2007, 20:44
Сообщения: 1570
Откуда: Челябинск
Карма: 18
dimOn писал(а):
В каких таких условиях? Версия какая? Если не древняя - надо делать динамическими экшенами.
http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%BE%D0%B2
там есть 100% нужный вам пример про статус договора

В условиях скрипта (там галочкой выбирается слева)
Версия 6.1

_________________
Интернет и телефония оптом со склада, или в розницу


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2015, 17:13 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
max писал(а):
stark писал(а):
А оно точно вызывается? поставьте print в нем.

а где этот принт ловить потом?


в логах выполнения скрипта на договоре. там вообще что-то есть ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2015, 17:22 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Хм? "Условие скрипта" - это конкретное название событие "Перед действием", в смысле, на которое скрипт повешен?

1) Тогда как минимум просто повесить скрипт на событие недостаточно, оно ещё настраивается в конфиге сервера дополнительно.
Но как настраивается:
- все забыли (в том числе за ненадобностью этого способа, т.к. он давно был заменен на дин.экшены и дин.сервисы)
- да никто и не описывал нигде

2) Далее: ваш способ не сработает, т.к. смена статуса в 6.1 делается через веб-сервисы, а не экшенами (так что см. п.4).

3) Даже если бы работало: вы откуда вообще взяли action в виде changeContractStatus? Оно вроде так никогда не называлось (но я не уверен правильно ли я понял что вы хотели написать)

4) Для веб-сервисов способ "скрипт перед действиями" по-моему вообще и не работал, так что всё равно не сработало бы, нет нет нет

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 апр 2015, 17:23 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Одни проблемы как видите. Правильное, быстрое, рекомендуемое и 100% готовое решение есть по ссылке выше.

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2015, 11:48 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Код:
[root@bgbilling actions]# cat ./kernel.xml | grep UpdateContractLimit
                        <action id="10007" mask="module=contract;action=UpdateContractLimit;comment=R:.+?" title="Изменение лимита с указанием комментария"/>
                        <action id="79" mask="module=contract;action=UpdateContractLimit" title="Изменение лимита без указания комментария"/>
                        <action id="10009" mask="module=contract;action=UpdateContractLimitPeriod;comment=R:.+?" title="Временное изменение лимита с указанием комментария"/>
                        <action id="245" mask="module=contract;action=UpdateContractLimitPeriod" title="Временное изменение лимита без изменения комментария"/>

Попробуйте по аналогии. Может получится и без скрипта.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2015, 12:21 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
сообщение не выведется)

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2015, 12:23 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
А большая надпись что установка статуса без комментария запрещена - не приравнивается к сообщению? )

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2015, 12:26 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
где такая надпись?)

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2015, 13:51 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Хотя не выйдет через правила.
Нужно разрабам добавлять описание
Код:
<ns5:changeContractStatus xmlns:ns5="http://service.common.status.contract.kernel.bgbilling.bitel.ru/" xmlns:common="http://common.bitel.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><cid>2</cid><statusId>2</statusId><dateFrom>2015-04-29T00:00:00+03:00</dateFrom><comment>22222222222</comment></ns5:changeContractStatus>

Чтобы потом по нему можно было обращаться через expression.

Тогда да, только так как по ссылке предоставленной Димоном.
Но на 6.2 она у меня к примеру не завелась, а 6.1 тестового нет.

Добавил в конфиг
Код:
dynservice:ru.bitel.bgbilling.kernel.contract.status.ContractStatusMonitorService=ru.test.ContractStatusMonitorServiceImpl


Добавил в динкод
Код:
package ru.test;

import java.util.Date;

import javax.jws.WebService;

import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.common.BGMessageException;
import ru.bitel.bgbilling.kernel.contract.status.common.service.ContractStatusMonitorService;
import ru.bitel.common.Utils;

@WebService(endpointInterface = "ru.bitel.bgbilling.kernel.contract.status.common.ContractStatusMonitorService")
public class ContractStatusMonitorServiceImpl
        extends ru.bitel.bgbilling.kernel.contract.status.server.service.ContractStatusMonitorServiceImpl
        implements ContractStatusMonitorService
{
    @Override
    public void changeContractStatus( int[] cids, int statusId, Date dateFrom, Date dateTo, String comment )
            throws BGException
    {
        System.err.print("BLABLABLABLA");
        if( Utils.isBlankString( comment ) )
        {
            throw new BGMessageException( "Введите комментарий" );
        }
        super.changeContractStatus(cids, statusId, dateFrom, dateTo, comment);
    }
}


Перезагрузил сервер
И при входе в статус договора получаю
Изображение

Код:
com.sun.xml.ws.client.ClientTransportException: The server sent HTTP status code 500: Internal Server Error
   at com.sun.xml.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:314)
   at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:265)
   at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:184)
   at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:137)
   at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
   at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
   at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
   at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
   at com.sun.xml.ws.client.Stub.process(Stub.java:323)
   at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:161)
   at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:113)
   at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93)
   at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:144)
   at com.sun.proxy.$Proxy50.getStatusList(Unknown Source)
   at ru.bitel.bgbilling.kernel.contract.status.client.StatusControlPanel$1.actionPerformedImpl(StatusControlPanel.java:71)
   at ru.bitel.common.client.AbstractBGUPanel.actionPerformed(AbstractBGUPanel.java:237)
   at ru.bitel.common.client.AbstractBGUPanel$DefaultAction.actionPerformed(AbstractBGUPanel.java:91)
   at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:541)
   at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:522)
   at ru.bitel.common.client.AbstractBGUPanel.performAction(AbstractBGUPanel.java:517)
   at bitel.billing.module.contract.status.ContractSubPanel_Status.setData(ContractSubPanel_Status.java:80)
   at bitel.billing.module.contract.ContractPanel_Parameters$5.run(ContractPanel_Parameters.java:645)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2015, 13:53 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Но там скорее всего что то переименовалось - а что, лень искать.

Код:
server 04-29/10:51:31 ERROR [http-bio-0.0.0.0-8080-exec-5] JaxWSAdapter - class: ru.bitel.bgbilling.kernel.contract.status.common.ContractStatusMonitorService could not be found
com.sun.xml.ws.model.RuntimeModelerException: class: ru.bitel.bgbilling.kernel.contract.status.common.ContractStatusMonitorService could not be found
        at com.sun.xml.ws.model.RuntimeModeler.getPortTypeName(RuntimeModeler.java:1405)
        at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:164)
        at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:513)
        at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:568)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWSAdapter.createWsEndpoint(JaxWSAdapter.java:224)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.getTarget(AbstractJaxWsHandler.java:111)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.getTarget(AbstractJaxWsHandler.java:83)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWSAdapter.handle(JaxWSAdapter.java:285)
        at bitel.billing.server.Executer.doPost(SourceFile:163)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 апр 2015, 16:19 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
да вроде должно на 6.1 как раз работать.
перекомпилировать, перезагрузить сервер?

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.046s | 45 Queries | GZIP : On ]