forum.bitel.ru http://forum.bitel.ru/ |
|
Проверка комментария при смене статуса. http://forum.bitel.ru/viewtopic.php?f=19&t=10466 |
Страница 1 из 1 |
Автор: | max [ 27 апр 2015, 14:43 ] |
Заголовок сообщения: | Проверка комментария при смене статуса. |
Хочу проверять наличие комментария при смене статуса договора, написал вот такой скрипт Код: 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 ); } } } Повесил на договор, в условиях задал "Перед действием". И не работает, подскажите плиз в чём может быть проблема? |
Автор: | stark [ 27 апр 2015, 14:55 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
А оно точно вызывается? поставьте print в нем. |
Автор: | dimOn [ 27 апр 2015, 15:26 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
В каких таких условиях? Версия какая? Если не древняя - надо делать динамическими экшенами. http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%BE%D0%B2 там есть 100% нужный вам пример про статус договора |
Автор: | max [ 28 апр 2015, 16:45 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
stark писал(а): А оно точно вызывается? поставьте print в нем. а где этот принт ловить потом? |
Автор: | max [ 28 апр 2015, 16:53 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
dimOn писал(а): В каких таких условиях? Версия какая? Если не древняя - надо делать динамическими экшенами. http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%BE%D0%B2 там есть 100% нужный вам пример про статус договора В условиях скрипта (там галочкой выбирается слева) Версия 6.1 |
Автор: | stark [ 28 апр 2015, 17:13 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
max писал(а): stark писал(а): А оно точно вызывается? поставьте print в нем. а где этот принт ловить потом? в логах выполнения скрипта на договоре. там вообще что-то есть ? |
Автор: | dimOn [ 28 апр 2015, 17:22 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
Хм? "Условие скрипта" - это конкретное название событие "Перед действием", в смысле, на которое скрипт повешен? 1) Тогда как минимум просто повесить скрипт на событие недостаточно, оно ещё настраивается в конфиге сервера дополнительно. Но как настраивается: - все забыли (в том числе за ненадобностью этого способа, т.к. он давно был заменен на дин.экшены и дин.сервисы) - да никто и не описывал нигде 2) Далее: ваш способ не сработает, т.к. смена статуса в 6.1 делается через веб-сервисы, а не экшенами (так что см. п.4). 3) Даже если бы работало: вы откуда вообще взяли action в виде changeContractStatus? Оно вроде так никогда не называлось (но я не уверен правильно ли я понял что вы хотели написать) 4) Для веб-сервисов способ "скрипт перед действиями" по-моему вообще и не работал, так что всё равно не сработало бы, нет нет нет |
Автор: | dimOn [ 28 апр 2015, 17:23 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
Одни проблемы как видите. Правильное, быстрое, рекомендуемое и 100% готовое решение есть по ссылке выше. |
Автор: | Phricker [ 29 апр 2015, 11:48 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
Код: [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="Временное изменение лимита без изменения комментария"/> Попробуйте по аналогии. Может получится и без скрипта. |
Автор: | dimOn [ 29 апр 2015, 12:21 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
сообщение не выведется) |
Автор: | Phricker [ 29 апр 2015, 12:23 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
А большая надпись что установка статуса без комментария запрещена - не приравнивается к сообщению? ) |
Автор: | dimOn [ 29 апр 2015, 12:26 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
где такая надпись?) |
Автор: | Phricker [ 29 апр 2015, 13:51 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
Хотя не выйдет через правила. Нужно разрабам добавлять описание Код: <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) |
Автор: | Phricker [ 29 апр 2015, 13:53 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
Но там скорее всего что то переименовалось - а что, лень искать. Код: 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) |
Автор: | dimOn [ 29 апр 2015, 16:19 ] |
Заголовок сообщения: | Re: Проверка комментария при смене статуса. |
да вроде должно на 6.1 как раз работать. перекомпилировать, перезагрузить сервер? |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |