BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 13 май 2024, 17:35

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




Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: CRM - Задачи
СообщениеДобавлено: 12 авг 2009, 16:50 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
Ув. разработчики.
Есть необходимость запретить принимать и закрывать задачи CRM если не произведены определенные манипуляции в договоре.

Возможно ли добавить еще одно событие в биллинг "Перед сохранением задачи"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2009, 19:21 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
не понятно, что даст вам это событие...
- вызов события не отменяет выполнение акшена
- событие выполняется на сервере, а не на клиенте....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2009, 19:49 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
Цитата:
не понятно, что даст вам это событие...

Это событие даст возможность уведомить пользователя, что он что то не сделал в договоре. И не даст возможность закрыть задачу.

Цитата:
- вызов события не отменяет выполнение акшена
- событие выполняется на сервере, а не на клиенте....


У вас есть событие "Перед изменением параметра договора". В нем можно вернуть ошибку event.setError("Ошибка"). При этом ести выводится ошибка, то данные не записываются.
Вот и хотелось бы получить похожее событие, но только для CRM-Задачи.

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

Очень прошу помочь...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2009, 20:16 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
добавлять по одному событию в разные места проги, не очень продуктивное занятие....
попробуем решить проблему более глобально, добавить возможность вызова скрипта перед и после любого акшена в биллинге, но это потребует времени на тестирование.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 авг 2009, 21:44 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
skn писал(а):
добавлять по одному событию в разные места проги, не очень продуктивное занятие....
попробуем решить проблему более глобально, добавить возможность вызова скрипта перед и после любого акшена в биллинге, но это потребует времени на тестирование.


К сожалению времени у нас не так то и много.
Как быстро мы сможем воспользоваться таким скриптом?
Готов быть тестером.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 11:37 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
что бы что нибудь тестировать, надо сначало это что то сделать....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 18:49 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
skn писал(а):
добавлять по одному событию в разные места проги, не очень продуктивное занятие....
попробуем решить проблему более глобально, добавить возможность вызова скрипта перед и после любого акшена в биллинге, но это потребует времени на тестирование.

Чудо?! НГ?!

Ну а если серьезно, то это будет принципиальный шаг к обеспечению нормальной адаптации биллинга под конкретного заказчика. А с возможностью отмены действия из скрипта обработки - два принципиальных шага. IMHO


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 19:39 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
увы пока не все так просто.... события привязываются к договорам в которых есть ссылки на скрипты. Но далеко не все акшены связаны с договорами..... где искать скрипты для таких акшенов?


Последний раз редактировалось skn 13 авг 2009, 20:36, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 19:56 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
skn писал(а):
увы пока не все так просто.... события привязываются к договорам в которых есть ссылки на срипты. Но далеко не все акшены связаны с договорами..... где искать скрипты для таких акшенов?


В голову приходит два варианта:
1. Не привязывать эти скрипты к договорам.
2. Дать возможность вызывать событие для акшенов, так же как для обработки доп. действий договора. Типа пишем в каком то конфиге, что для такого то акшена вызвать событие "Акшен" и передать в него несколько параметров: код экшена, cid и т.д. А дальше обрабатываем это событие как и любое другое для договора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 20:04 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
В скриптах, не привязнных к договорам. :)
Например, есть некая сущность "профиль", к ней привязаны скрипты и набор событий. Да вообще могут быть просто скрипты без привязки к договорам. Даже наверное так: привязка скрипта к договору похожа на попытку предугадать, как облегчить жизнь разрабочикам скриптов, но если посмотреть некоторые скрипты в вики, то видно, что процедура "свой-чужой договор" в скрипте это тривиальная задача, которая могла быть дополнительно упрощена с помощью библиотечных утилит или вообще архитектурного решения скрипт+фильтр(скрипт-диспатчер).

Мне другое интересно - вызов обработчика по любому экшену, вероятно в том месте кода, где тип экшена не известен, подразумевает проблему контекста, получаемого обработчиком. Какую информацию мы получим кроме факта "происходит вот такое вот событие"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 20:32 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
короче пока так получилось

1) в конфиге прописывается для какаих акшенов генерировать события в виде

Код:
action.event_<module>_<action>=before|after|both


2) события генерируются только для запросов в которых есть параметер cid

3) есть два события: ActionBeforeEvent и ActionAfterEvent в которые передаются параметры: module, action, contractId, userId. Дополнительно в ActionBeforeEvent передается httpRequest (из которого можно получить все параметры переданные с клиента), а в ActionAfterEvent - rootNode - ссылка на ответную xml.

4) ActionBeforeEvent содержит методы setDoAction(Boolean) и setError( String, Boolean ) с помощью которых можно отменить выполнение акшена и задать сообщение выводимое в клиенте.


Последний раз редактировалось skn 14 авг 2009, 14:34, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 20:46 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
То есть мы получим только то, что связанно с работой клиентского приложения по поводу договоров?
Насчет DoAction и SetError - если error выводится только при отмене - то некоторая избыточность ощушается :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 20:52 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
vdd писал(а):
То есть мы получим только то, что связанно с работой клиентского приложения по поводу договоров?


а какие варианты?

vdd писал(а):
Насчет DoAction и SetError - если error выводится только при отмене - то некоторая избыточность ощушается :)


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 23:09 
Не в сети

Зарегистрирован: 16 ноя 2007, 16:11
Сообщения: 829
Карма: 49
skn писал(а):
vdd писал(а):
То есть мы получим только то, что связанно с работой клиентского приложения по поводу договоров?


а какие варианты?

я проверяю, насколько понимаю о чем речь. Идеология action выглядит расширяемой и на остальные части, внутри сервера.

skn писал(а):
vdd писал(а):
Насчет DoAction и SetError - если error выводится только при отмене - то некоторая избыточность ощушается :)


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

То есть SetError - это все таки SetMessage?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 23:25 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
реализовал второй вариант, для тех кто умеет програмировать на java, в конфиге задается рематинг

Код:
action.remap_<module>_<action>=mypackage.MyAction


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

Код:
package mypackage;
public class MyAction extends bitel.billing.server.contract.action.ActionUpdateParameterType1
{
       @Override
        public void doAction() throws SQLException
        {
            // проверки до вызова стандартного акшена
           ...........

           // вызон стандартного акшена, если надо
          super.doAction();
 
          // дествия после акшена
          ............

        }
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 23:35 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
vdd писал(а):
skn писал(а):
vdd писал(а):
То есть мы получим только то, что связанно с работой клиентского приложения по поводу договоров?

а какие варианты?

я проверяю, насколько понимаю о чем речь. Идеология action выглядит расширяемой и на остальные части, внутри сервера.


action может быть и расширяемо, а вот текущая реализация событий не очень. Я пока не вижу смысла в событиях на акшены не связанные с договорами, к примеру: редактирование шаблонов, пользователей, справочников.....


Последний раз редактировалось skn 13 авг 2009, 23:48, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 авг 2009, 23:42 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
vdd писал(а):
skn писал(а):
vdd писал(а):
Насчет DoAction и SetError - если error выводится только при отмене - то некоторая избыточность ощушается :)


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

То есть SetError - это все таки SetMessage?


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 10:56 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
skn писал(а):
Я пока не вижу смысла в событиях на акшены не связанные с договорами, к примеру: редактирование шаблонов, пользователей, справочников.....

Я согласен с таким подходом.
Возможность обработки акшенов для договоров очень серьезно расширит возможность биллинга по автоматизации работы.
По крайней мере у нас акшенами, которые не связаны с договором, пользуются в основном только администраторы биллинга, а в автоматизации их работы нет большего смысла.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 13:16 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
выложил обновление сервера и CRM


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 13:58 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
skn писал(а):
выложил обновление сервера и CRM

Приступил к тестированию.
setDoAction(Boolean) - работает, а setError(error) - нет.

В конфиге прописал:
Код:
action.event_ru.bitel.bgbilling.plugins.crm_UpdateRegisterTask=before


В скрипте поведения:
Код:
print("ok");
event.setError( "asd" );


Получил ошибку:
Код:
java.util.concurrent.ExecutionException: java.security.PrivilegedActionException: Sourced file: Function [id:45; title:До выполнения action] : Error in method
 invocation: Method setError( java.lang.String ) not found in class'bitel.billing.server.script.bean.event.ActionBeforeEvent' : at Line: 2 : in file: Function
 [id:45; title:До выполнения action] : event .setError ( "asd" )

        at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
        at java.util.concurrent.FutureTask.get(Unknown Source)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.runScriptImpl(ScriptMachine.java:359)
        at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:128)
        at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:237)
        at bitel.billing.server.Executer.doModule(Executer.java:717)
        at bitel.billing.server.Executer$1.run(Executer.java:206)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Unknown Source)
        at bitel.billing.server.Executer.doPost(Executer.java:201)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.security.PrivilegedActionException: Sourced file: Function [id:45; title:До выполнения action] : Error in method invocation: Method setError(
java.lang.String ) not found in class'bitel.billing.server.script.bean.event.ActionBeforeEvent' : at Line: 2 : in file: Function [id:45; title:До выполнения a
ction] : event .setError ( "asd" )

        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Unknown Source)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:335)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        ... 1 more
Caused by: Sourced file: Function [id:45; title:До выполнения action] : Error in method invocation: Method setError( java.lang.String ) not found in class'bit
el.billing.server.script.bean.event.ActionBeforeEvent' : at Line: 2 : in file: Function [id:45; title:До выполнения action] : event .setError ( "asd" )

        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:310)
        at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:69)
        at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:189)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.access$0(ScriptMachine.java:1)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1$1.run(ScriptMachine.java:340)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1$1.run(ScriptMachine.java:1)
        ... 9 more
08-14/11:49:17  INFO [http-8080-1] script - Process time => 11
08-14/11:49:17  INFO [http-8080-1] script - ok



Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 14:23 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
Код:
print(event.contractId);

Выдает ошибку:
Код:
java.util.concurrent.ExecutionException: java.security.PrivilegedActionException: Sourced file: Function [id:45; title:До выполнения action] : Cannot access f
ield: contractId, on object: Event bitel.billing.server.script.bean.event.ActionBeforeEvent cid: 15682; module: 0; type: 30 : at Line: 5 : in file: Function [
id:45; title:До выполнения action] : event .contractId

        at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source)
        at java.util.concurrent.FutureTask.get(Unknown Source)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.runScriptImpl(ScriptMachine.java:359)
        at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:128)
        at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:237)
        at bitel.billing.server.Executer.doModule(Executer.java:717)
        at bitel.billing.server.Executer$1.run(Executer.java:206)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Unknown Source)
        at bitel.billing.server.Executer.doPost(Executer.java:201)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:37)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.security.PrivilegedActionException: Sourced file: Function [id:45; title:До выполнения action] : Cannot access field: contractId, on object: E
vent bitel.billing.server.script.bean.event.ActionBeforeEvent cid: 15682; module: 0; type: 30 : at Line: 5 : in file: Function [id:45; title:До выполнения act
ion] : event .contractId

        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Unknown Source)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:335)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        ... 1 more
Caused by: Sourced file: Function [id:45; title:До выполнения action] : Cannot access field: contractId, on object: Event bitel.billing.server.script.bean.eve
nt.ActionBeforeEvent cid: 15682; module: 0; type: 30 : at Line: 5 : in file: Function [id:45; title:До выполнения action] : event .contractId

        at bsh.UtilEvalError.toEvalError(Unknown Source)
        at bsh.UtilEvalError.toEvalError(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHArguments.getArguments(Unknown Source)
        at bsh.BSHMethodInvocation.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)
        at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:310)
        at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:69)
        at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:189)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.access$0(ScriptMachine.java:1)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1$1.run(ScriptMachine.java:340)
        at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1$1.run(ScriptMachine.java:1)
        ... 9 more
08-14/12:13:57  INFO [http-8080-1] script - Process time => 12
08-14/12:13:57  INFO [http-8080-1] script - ok



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

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
см. http://www.bgbilling.ru/v4.6/javadoc/bi ... frame.html

замени

Код:
print("ok");
event.setError( "asd" );


на

Код:
print("ok");
event.setError( "asd", false );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 14:29 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
Замени

Код:
print(event.contractId);


на

Код:
print(event.getContractID());


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 14:34 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
Все получилось. Огромное Вам спасибо! :D


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 15:59 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
Подскажите пожалуйста как получить параметр из request по имени.
Делаю так:
Код:
request = event.getRequest();
print(request.getSession().getAttribute( "type" ));
print(request.getSession().getAttribute( "comment" ));


Но всегда получаю null.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 16:32 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
Код:
print(request.getParameter( "type" ));


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 авг 2009, 16:37 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
skn писал(а):
Код:
print(request.getParameter( "type" ));

Спасибо. Все получилось.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2009, 11:52 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
Возникла такая проблема.
Обрабатываю событие "До action" для CRM->задачи:
Код:
action.event_ru.bitel.bgbilling.plugins.crm_UpdateRegisterTask=before


Проблема в том, что если я сохраняю задачу из договора, то событие срабатывает, а если из плагина CRM, то событие не срабатывает.
Присмотрелся к запросу, оказалось что при сохранении задачи из плагина параметр cid не передается.

Можно решить эту проблему?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2009, 14:05 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4489
Откуда: Уфа, Россия
Карма: 186
ну как вариант переопределить акшен как предлагал выше


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2009, 14:09 
Не в сети
Клиент

Зарегистрирован: 20 мар 2008, 20:20
Сообщения: 676
Откуда: Россия, Иваново
Карма: 36
skn писал(а):
ну как вариант переопределить акшен как предлагал выше

А нельзя просто передавать cid, что бы сработало событие?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 58 ]  На страницу 1, 2  След.

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


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

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


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

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