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/