forum.bitel.ru http://forum.bitel.ru/ |
|
trayinfo, http://forum.bitel.ru/viewtopic.php?f=26&t=11821 |
Страница 1 из 1 |
Автор: | Galkov [ 26 июл 2016, 13:05 ] |
Заголовок сообщения: | trayinfo, |
Не понимаю куда писать скрипты, отрабатывающие событие запроса от trayinfo клиента. этот скрипт должен висеть на договоре абонента или где-то ещё? |
Автор: | dimOn [ 26 июл 2016, 13:54 ] |
Заголовок сообщения: | Re: trayinfo, |
это просто класс в дин.коде, этот класс прописывается в конфиге модуля, никакого скрипта на договоре там нет |
Автор: | Galkov [ 27 июл 2016, 12:01 ] |
Заголовок сообщения: | Re: trayinfo, |
а. т.е. его можно дополнить классом в "управление динамическим кодом" в "ветке" ru.bitel.bgbilling.trayinfo ? а есть пример какой-нибудь. а то что-то трудно у меня с пониманием как это будет работать в составе существующего кода.. |
Автор: | Phricker [ 27 июл 2016, 14:23 ] |
Заголовок сообщения: | Re: trayinfo, |
Код: replybuilder=ru.ellcom.bgbilling.modules.trayinfo.SimpleReply Код: package ru.ellcom.bgbilling.modules.trayinfo;
import java.math.BigDecimal; import java.sql.Connection; import java.util.Date; import bitel.billing.server.contract.bean.BalanceUtils; import ru.bitel.bgbilling.modules.trayinfo.server.bean.TrayInfoReplyBuilder; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.common.Utils; /** * Какой-то простой формат ответа. * @author dimon */ public class SimpleReply implements TrayInfoReplyBuilder { private Connection conSlave = null; @Override public void init( Setup setup, Connection conSlave, int mid ) { this.conSlave = conSlave; } @Override public String reply( int cid ) { BalanceUtils cu = new BalanceUtils( conSlave ); BigDecimal balance = cu.getBalance( new Date(), cid ); return "Ваш баланс = "+Utils.formatCost( balance ) ; } } |
Автор: | Galkov [ 27 июл 2016, 17:12 ] |
Заголовок сообщения: | Re: trayinfo, |
у меня в логах - 07-27/14:14:26 INFO ["http-bio-/0.0.0.0-8080"-exec-10] BalanceSender - No trayinfo-script for contract cid=28286! Куда это прописывать?! Phricker писал(а): Код: replybuilder=ru.ellcom.bgbilling.modules.trayinfo.SimpleReply [/code] т.е. и надо ли, так как у меня это - replybuilder=ru.bitel.bgbilling.modules.trayinfo.SimpleReply |
Автор: | Phricker [ 27 июл 2016, 17:24 ] |
Заголовок сообщения: | Re: trayinfo, |
Вы прописываете тот package который у вас в динкоде. Т.к. при обновлении SimpleReply который в комплекте - перетирается, я перенес его в свой package и указал путь к нему. |
Автор: | Galkov [ 27 июл 2016, 17:34 ] |
Заголовок сообщения: | Re: trayinfo, |
я так практически сразу и сделал. но в логах пишет ошибку, что не найден скрипт,... поэтому подозреваю, что нужно где-то ему путь прописать... где это делается хоть? пишет всё время в логах 07-27/15:41:07 INFO ["http-bio-/0.0.0.0-8080"-exec-8] BalanceSender - No trayinfo-script for contract cid=28286! debug уровень логов прояснения не даёт.. я так понимаю, что он мой скрипт просто не находит... Собственно я и спрашивать начал в начале ветки о структуре, просто не так понял что у меня не так выходит. |
Автор: | Phricker [ 27 июл 2016, 18:21 ] |
Заголовок сообщения: | Re: trayinfo, |
А какая версия биллинга у вас? |
Автор: | Galkov [ 27 июл 2016, 18:29 ] |
Заголовок сообщения: | Re: trayinfo, |
Сервер: вер. 6.0 сборка 1870 от 05.11.2015 21:31:29 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_75 trayinfo вер. 6.0 сборка 177 от 09.02.2015 18:41:24 |
Автор: | Phricker [ 27 июл 2016, 18:57 ] |
Заголовок сообщения: | Re: trayinfo, |
Эээээ... В 6.0 не было динкода для отображения информации.. https://bgbilling.ru/v6.0/doc/ch07s06.html |
Автор: | Galkov [ 27 июл 2016, 19:08 ] |
Заголовок сообщения: | Re: trayinfo, |
так это явно не похоже на пример класса и @Override но конструкция event.setReply( "test cid="+event.getContractID() ); первоначально и навела меня на то, что скрипт надо вешать на каждый договор. |
Автор: | Phricker [ 27 июл 2016, 19:11 ] |
Заголовок сообщения: | Re: trayinfo, |
Galkov писал(а): скрипт надо вешать на каждый договор. Именно так. В 6.1+ уже не нужно |
Автор: | Galkov [ 27 июл 2016, 19:33 ] |
Заголовок сообщения: | Re: trayinfo, |
тьфу ... а можно кусок кода генерации нужного для trayinfo ? или ссылку на форуме на это? а то event.setReply( "test cid="+event.getContractID() ); ругается на отсутствие метода setReply у класса. ошибка в логах server 07-27/17:19:07 ERROR ["http-bio-/0.0.0.0-8080"-exec-1] BalanceSender - error executer ru.bitel.bgbilling.kernel.event.EventProcessorException: Local event must be generated in ServerContext! собственно она всё объясняет, я просто не понимаю структуру приложения и не могу это использовать. нужно какое-то простое описание... |
Автор: | Phricker [ 27 июл 2016, 20:13 ] |
Заголовок сообщения: | Re: trayinfo, |
Справочники - Другие - Договоры-скрипты поведения. Добавляете новый скрипт. Если есть тот к которому собираетесь привязывать (какие-нибудь общие скрипты и т.п.)оставляете как есть. Сервис - Автоматизация - Функции скриптов поведения. Вкладка "Скрипты BGBS" Выбираете нужный вам скрипт (который добавлен в справочнике) из выпадающего меню. Нажимаете зеленый + Вводите любое название. В правой части окна вставляете Код: import bitel.billing.common.TimeUtils.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.util.*; import java.util.*; cid = event.getContractId(); bu = new BalanceUtils( con ); tu = new TimeUtils(); balance = bu.getBalance(tu.convertCalendarToDate(event.getGenerateTime()), cid); event.setReply(" "+"Баланс = "+balance+" р."); В левой части окна находите "Модуль TrayInfo - формирование ответа" (у вас может по другому называться данный пункт. Ставите галочку. Добавляете данный скрипт на договор. Профит |
Автор: | Galkov [ 28 июл 2016, 11:07 ] |
Заголовок сообщения: | Re: trayinfo, |
спасибо ,... BGBS .. а java нету варианта? .. у меня выдача там суммы к оплате, чтоб не отключило услугу 1 числа... это довольно сложно вычисляемое значение... лопатить BGBS документацию как переложить это из java ... )) а на этот скрипт валится ошибка ru.bitel.bgbilling.kernel.event.EventProcessorException: Local event must be generated in ServerContext! at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:233) |
Автор: | Phricker [ 28 июл 2016, 12:04 ] |
Заголовок сообщения: | Re: trayinfo, |
Я на 7.0, а там динкод |
Автор: | dimOn [ 28 июл 2016, 13:20 ] |
Заголовок сообщения: | Re: trayinfo, |
можно и на жаве писать скрипты поведения, конечно, как и для остальных случаев, но в вашем варианте (6.0) это всё равно должен быть скрипт поведения на событие, и повешенный на договор, не гольный дин.код как в 6.1+, так что инструкция как выше почти, но код другой |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |