BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 24 ] 
Автор Сообщение
 Заголовок сообщения: Скрипты и 5.2
СообщениеДобавлено: 08 авг 2011, 13:30 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Начал перетаскиваться потихоньку на 5.2 ...... удивило то что некоторое даже заработало, но не все. Подскажите
скрипт
Код:
import bitel.billing.common.*;
import java.util.*;
import bitel.billing.server.dialup.*;
import bitel.billing.server.task.bean.*;
 
mid = 1;
Calendar date1 = new GregorianCalendar();
date1.add( Calendar.MONTH, -1 );
Calendar date2 = TimeUtils.getEndMonth( date1 );
 
String email = "mail@mail.ru";
long groups = CommonUtils.enumToMask( "12" );
String contracts = null;      
 
new RunTaskDataManager( con ).addTask( new SessionsRecalculator( email, date1, date2, mid, groups, contracts ) );

Ругается так
EXCEPTIONS:
Код:
Sourced file: Переобсчет сессий  : Typed variable declaration : Attempt to resolve method: enumToMask() on undefined variable or class name: CommonUtils
Sourced file: Переобсчет сессий  : Typed variable declaration : Attempt to resolve method: enumToMask() on undefined variable or class name: CommonUtils : at Line: 12 : in file: Переобсчет сессий  : CommonUtils .enumToMask ( "12" )

Код:
import java.sql.*;
import java.util.*;

import bitel.billing.server.contract.bean.*;
import bitel.billing.server.tariff.*;
import bitel.billing.server.util.*;
import bitel.billing.common.KernelConst;

cpu = new ContractParamUtils( con );

cid = event.getContractID();
DateNow = new GregorianCalendar();
contract = new ContractManager(con).getContractByID(cid);

contract_status_manager  = new ContractStatusManager(con);
status = contract_status_manager.getStatus(cid, DateNow);
contract_status = status.getStatus();

if (contract_status == KernelConst.CONTRACT_STATUS_CLOSED)
{
cpu.setGroup( cid, 0 );
}

if (contract_status == KernelConst.CONTRACT_STATUS_ACTIVE)
{
cpu.unsetGroup( cid, 0 );
};

ругается так
Код:
EXCEPTIONS:
Sourced file: Function [id:29; title:Добавление/удаление группы] : Undefined argument: con  : at Line: 9 : in file: Function [id:29; title:Добавление/удаление группы] : ( con )

java.util.concurrent.ExecutionException: Sourced file: Function [id:29; title:Добавление/удаление группы] : Undefined argument: con  : at Line: 9 : in file: Function [id:29; title:Добавление/удаление группы] : ( con )

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 08 авг 2011, 13:58 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Первое - нужно переделать на Utils.enumToMask()
import ru.bitel.common.*;

Второе - ошибка, похоже. Перестал нормально поддерживаться старый метод добавления скриптов. Но по хорошему тоже лучше переделать на вызов метода, так и быстрее работать будет:
Код:
public void onEvent( event, setup, con, conSlave )
{
cpu = new ContractParamUtils( con );

cid = event.getContractID();
DateNow = new GregorianCalendar();
contract = new ContractManager(con).getContractByID(cid);

contract_status_manager  = new ContractStatusManager(con);
status = contract_status_manager.getStatus(cid, DateNow);
contract_status = status.getStatus();

if (contract_status == KernelConst.CONTRACT_STATUS_CLOSED)
{
cpu.setGroup( cid, 0 );
}

if (contract_status == KernelConst.CONTRACT_STATUS_ACTIVE)
{
cpu.unsetGroup( cid, 0 );
}
}

А можно и на классы java сразу переписать (Управление динамическим кодом). Скорее всего это станет основным, т.к. там всегда видно, что какой-то метод пропал или изменился, в отличие от скриптов, где об этом узнается только когда выполнение дойдет до строчки вызова несуществующего метода. Да и, опять таки, еще быстрее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 08 авг 2011, 17:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Согласен - что было бы не плохо на код перейти. Наверное завтро и попробую.

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 09 авг 2011, 05:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Глупый канечно вопрос, но вот я не догоняю -- нужно ли как то уже во встроенное дерево пакетов запихивать классы чтоб биллинг их увидел? или можно с / создавать?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 09 авг 2011, 12:29 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Не понял вопроса :)
Открываете функции скриптов поведения, закладка Классы Java, нажимаете добавить, выбираете событие, выбираете класс.
Если класса еще нет - нажимаете плюсик рядом с выбором класса и вводите имя класса, например, что-нибудь вроде skyb.bgbilling.kernel.PaymentEventListener.
Откроется Управление динамическим кодом. Там также работают кнопки добавления и удаления классов.

Эти файлы иходников хранятся не в базе а на диске, в папке dyn. Т.е. если есть желание, можно замаунтить папку dyn к себе, поставить eclipse и создать проект, библиотеками указав все библиотеки биллинга, а папкой исходников - эту папку dyn. Только изменение этих файлов на диске не отслеживается - если поменяли файлы прямо на диске на будет на вкладке Управление динамическим кодом нажать Скомпилировать все.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 09 авг 2011, 13:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
да вот чегота покачто не понял как это работает. Нужна ли точка входа ?
а есть хелоуворлд который будет работать? я с эклипсом и маунтом разобрался, а вот с тем как код должен быть расположен нет. :(

вот как правильно выстраивать иерархию (скрин)


Вложения:
снимок74.png
снимок74.png [ 16.64 КБ | Просмотров: 10384 ]

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 10 авг 2011, 10:21 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
да вот чегота покачто не понял как это работает. Нужна ли точка входа ?

Что в данном случае имеется ввиду под точкой входа? . раньше вы просто скрипт писали , а теперь это код помещаете в класс и имя этого класса (со всеми пакетами) указываете и все.

skyb писал(а):
а есть хелоуворлд который будет работать? я с эклипсом и маунтом разобрался, а вот с тем как код должен быть расположен нет. :(

вот как правильно выстраивать иерархию (скрин)


Иерархию можете выставлять как хотите , это ваше по сути дело . Это просто пакеты . Например можно назвать класс ru.skyb.device.cisco.ISGFunnySkybProtocolHandler. ru.skyb - гарантирует то, что пакеты будут не пересекаться с нашими, а дальше уже как вам удобно .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 10 авг 2011, 11:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark писал(а):
Что в данном случае имеется ввиду под точкой входа?

Что и в обычной яве ;) класс мэйн является точкой входа.
В ваших скриптах ведь тоже есть точки входа(в глобальных) ;)

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 10 авг 2011, 13:04 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
stark писал(а):
Что в данном случае имеется ввиду под точкой входа?

Что и в обычной яве ;) класс мэйн является точкой входа.
В ваших скриптах ведь тоже есть точки входа(в глобальных) ;)


там много точек входа . надо смотреть api интерфейсов , там описаны методы


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 02 сен 2011, 13:06 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
А почему не все события в динамическом коде? и как быть если класс необходимо навешать на 2 события?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 02 сен 2011, 13:32 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
http://wiki.bgbilling.ru/index.php/%D0% ... 1%82%D1%83
Код:
GENERATE_TIME: 02.09.11 17:35:15
EXECUTION_STOP_TIME: 02.09.11 17:35:15
PROCESS_TIME: 41

OUT:
serviceId=24
update tariff


EXCEPTIONS:
Sourced file: Function [id:20; title:Приостановление абонента] : Unknown class: TariffChangedEvent : at Line: 77 : in file: Function [id:20; title:Приостановление абонента] : new TariffChangedEvent ( cid )

java.util.concurrent.ExecutionException: Sourced file: Function [id:20; title:Приостановление абонента] : Unknown class: TariffChangedEvent : at Line: 77 : in file: Function [id:20; title:Приостановление абонента] : new TariffChangedEvent ( cid )

   at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
   at java.util.concurrent.FutureTask.get(FutureTask.java:91)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.runScriptImpl(ScriptMachine.java:269)
   at bitel.billing.server.script.bean.ScriptMachine.runScript(ScriptMachine.java:120)
   at bitel.billing.server.script.bean.event.EventProcessor.processContractEvent(EventProcessor.java:306)
   at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:224)
   at bitel.billing.server.script.bean.event.EventProcessor.processEvent(EventProcessor.java:192)
   at bitel.billing.server.script.bean.event.EventProcessor.run(EventProcessor.java:141)
Caused by: Sourced file: Function [id:20; title:Приостановление абонента] : Unknown class: TariffChangedEvent : at Line: 77 : in file: Function [id:20; title:Приостановление абонента] : new TariffChangedEvent ( cid )

   at bsh.BSHAllocationExpression.objectAllocation(BSHAllocationExpression.java:98)
   at bsh.BSHAllocationExpression.eval(BSHAllocationExpression.java:62)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHArguments.getArguments(BSHArguments.java:65)
   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:69)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BSHBlock.eval(BSHBlock.java:47)
   at bsh.BSHIfStatement.eval(BSHIfStatement.java:48)
   at bsh.BSHBlock.evalBlock(BSHBlock.java:131)
   at bsh.BSHBlock.eval(BSHBlock.java:81)
   at bsh.BshMethod.invokeImpl(BshMethod.java:362)
   at bsh.BshMethod.invoke(BshMethod.java:258)
   at bsh.BshMethod.invoke(BshMethod.java:186)
   at bsh.Name.invokeLocalMethod(Name.java:917)
   at bsh.Name.invokeMethod(Name.java:804)
   at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:75)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
   at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
   at bsh.BSHSwitchStatement.eval(BSHSwitchStatement.java:82)
   at bsh.Interpreter.eval(Interpreter.java:653)
   at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:366)
   at bitel.billing.server.script.bean.ScriptMachine$SimpleScriptRunner.runScript(ScriptMachine.java:61)
   at bitel.billing.server.script.bean.ScriptMachine.runScriptImpl(ScriptMachine.java:182)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine.access$0(ScriptMachine.java:1)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:259)
   at bitel.billing.server.script.bean.ScriptMachine$ThreadedScriptMachine$1.call(ScriptMachine.java:1)
   at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
   at java.lang.Thread.run(Thread.java:662)


Код:
75   if ( changed )
76   {
77      BillingEventBus.publish( new TariffChangedEvent( cid ) );
78   }

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 19 сен 2011, 11:00 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Есть скрипт

Код:
package ru.skyb.scripts.global.reestr;

import ru.bitel.bgbilling.kernel.script.server.dev.GlobalScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.sql.Connection;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;

import ru.bitel.bgbilling.server.util.DefaultServerSetup;
import ru.bitel.bgbilling.server.util.ServerUtils;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.model.Page;
import bitel.billing.common.TimeUtils;
import bitel.billing.server.mps.bean.MPSPayment;
import bitel.billing.server.mps.bean.MPSPaymentManager;
import bitel.billing.server.mps.bean.MPSPaymentManager.MPSPaymentList;
import bitel.billing.server.util.MailMsg;

public class tembrbank
   extends GlobalScriptBase
{
   @Override
   public void execute( Setup setup1, ConnectionSet connectionSet2 )
      throws Exception
   {

      Connection con = connectionSet2.getConnection();
      //Calendar date = new GregorianCalendar(2010,3,1);
      Calendar date = new GregorianCalendar();
        date.setTime( new Date() );
        date.add( Calendar.DATE, -1 );
        Date from = date.getTime();
        Date until = null;
        int type = 3;
        //номер системы
        int service = 3;
        long gr = 0L;
        int mid = 5;
      print("find payment for mid="+mid+"; service="+service+"; date="+date.getTime());
        MPSPaymentManager manager = MPSPaymentManager.getInstance( service, setup1, mid );
        DecimalFormatSymbols dfs = new DecimalFormatSymbols();
        dfs.setDecimalSeparator( '.' );
        DecimalFormat df = new DecimalFormat( "########0.00##", dfs );
        Page page = new Page( 0, 0 );
        MPSPaymentList paymentList = manager.getPaymentList( con, mid, service, from, until, type, gr, page );
        String separator = ";";
           
        final ByteArrayOutputStream bos = new ByteArrayOutputStream( 1000000 );
        ZipOutputStream zos = new ZipOutputStream( bos );
        zos.setLevel( -1 );
        zos.putNextEntry( new ZipEntry( "payment_"+TimeUtils.format( date.getTime(), "dd_MM_yyyy" ) +".csv" ) );
        //
        PrintStream csvReport = new PrintStream( zos, false, "cp1251" );
         int count = 0;
            for( MPSPayment payment : paymentList.paymentList )
            {
                //номер в система провайдера
                csvReport.append( String.valueOf( payment.getId()) );
                csvReport.append( separator );
                //номер  в платежной системе
                csvReport.append( payment.getTransId() );
                csvReport.append( separator );
                //лицевой счет
                csvReport.append( payment.getContract() );
                csvReport.append( separator );
                //сумма
                csvReport.append( df.format( payment.getSumm() ) );
                csvReport.append( separator );
                //дата
                csvReport.append( TimeUtils.format( payment.getTime(), "dd.MM.yyyy HH:mm:ss" ) );
                csvReport.append( separator );
                //статус
             String status = payment.getStatus() == 1 ? "0" : "1" ;
                csvReport.append( status );
                csvReport.append( separator );
                //комментарий
                csvReport.append( payment.getComment()==null?"":payment.getComment() );
                csvReport.append( separator );
            csvReport.append( '\n' );
            count++;
            }
            csvReport.flush();
            zos.closeEntry();
            zos.flush();
            zos.close();
         print("find "+count+" payment");
           
            final String fileName = "payment_"+TimeUtils.format( date.getTime(), "dd_MM_yyyy" ) +".zip";
            //
           
            MimeBodyPart attach = new MimeBodyPart();
           
            DataSource ds = new DataSource()
            {
                public String getContentType()
                {
                    return "application/zip";
                }

                public InputStream getInputStream() throws IOException
                {
                    return new ByteArrayInputStream( bos.toByteArray() );
                }

                public String getName()
                {
                    return fileName;
                }

                public OutputStream getOutputStream() throws IOException
                {
                    return null;
                }
            };
            //
            attach.setDataHandler( new DataHandler( ds ) );
            attach.setFileName( fileName );
            //
            String fullSubject ="prov "+TimeUtils.format( date.getTime(), "yyyyMMdd" );
            //
            StringBuilder messageBody = new StringBuilder();
            messageBody.append( "Отчет по платежам c "+TimeUtils.format( date.getTime(), "dd.MM.yyyy" ) );
            sendDetailMail( setup1, fullSubject, messageBody, attach );
       
    }
   
    protected void sendDetailMail( DefaultServerSetup setup, String subject,
                                   StringBuilder messageBody, MimeBodyPart attach )
        throws MessagingException
    {
        Multipart m = new MimeMultipart();
        if( attach != null )
        {
            m.addBodyPart( attach );
        }
        //
        String encoding = setup.getStringValue( "mail.encoding", "koi8-r" );
        //
        MimeBodyPart text = new MimeBodyPart();
        text.setText( messageBody.toString(), encoding );
        m.addBodyPart( text );
     
        MailMsg msg = new MailMsg( setup );
        msg.sendMessage( "mail@mail.ru", subject, m );

    }

}

Проблема в том что даже до первого
Код:
print("find payment for mid="+mid+"; service="+service+"; date="+date.getTime());
не доходит, ошибок не выдает

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 19 сен 2011, 13:17 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
А компилируется класс без ошибок?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 19 сен 2011, 14:43 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Администратор писал(а):
А компилируется класс без ошибок?

угу :(

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 20 сен 2011, 15:25 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
skyb писал(а):
Код:
75   if ( changed )
76   {
77      BillingEventBus.publish( new TariffChangedEvent( cid ) );
78   }


а в импортах TariffChangedEvent есть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 21 сен 2011, 06:26 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark писал(а):
skyb писал(а):
Код:
75   if ( changed )
76   {
77      BillingEventBus.publish( new TariffChangedEvent( cid ) );
78   }


а в импортах TariffChangedEvent есть?

Не нашел что именно нужно объявить в javadoc. :(
Есть библиотека скриптов
http://wiki.bgbilling.ru/index.php/%D0% ... 0%B3%D0%B0
Не ругается что метод getID дебрикет, а просто сыпит эрор. Поправить на getId, все работает (в качестве информации, мож кому понадобится). Продублировал в вики

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 21 сен 2011, 06:43 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Код:
09-21/10:38:53 DEBUG ["http-bio-/0.0.0.0-8080"-exec-4] CommonExecuter - executing bitel.billing.server.contract.action.ActionContractCard2; time => 183 ms.
09-21/10:38:57 ERROR ["http-bio-/0.0.0.0-8080"-exec-4] XSLManager - Error XSLT file card_telenettv_request.xsl
java.lang.NullPointerException
        at ru.bitel.bgbilling.kernel.container.web.action.XSLManager.newTransformer(XSLManager.java:86)
        at ru.bitel.bgbilling.kernel.container.web.action.XSLManager.getTransformer(XSLManager.java:108)
        at ru.bitel.bgbilling.kernel.container.web.action.XSLManager.getTransformer(XSLManager.java:170)
        at ru.bitel.bgbilling.kernel.container.web.action.XSLManager.transform(XSLManager.java:235)
        at bitel.billing.server.contract.action.ActionContractCard2.doAction(ActionContractCard2.java:126)
        at bitel.billing.server.Executer.doModule(Unknown Source)
        at bitel.billing.server.Executer$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:396)
        at bitel.billing.server.Executer.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)

Пытаюсь открыть карточку.

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 21 сен 2011, 13:03 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
stark Спасибо, заработало. Вот скрипт переделанный

Код:
import bitel.billing.server.contract.bean.*;   
import bitel.billing.server.tariff.bean.*;
import bitel.billing.server.script.event.*;
import java.util.*;
import bitel.billing.common.*;
import bitel.billing.server.npay.bean.*;
import bitel.billing.server.admin.eventbus.event.*;
import bitel.billing.server.admin.eventbus.*;
import ru.bitel.bgbilling.kernel.tariff.server.event.ContractTariffChangedEvent;
 
private getPrevDate( date )
{
   Calendar result = new GregorianCalendar();   
   result.setTime( date );
   result.add( Calendar.DAY_OF_YEAR, -1 );
   return result;      
}
 
private void setTariff( cid, tariffId, date )
{
   ctm =  new ContractTariffManager(  con );
   cm = new ContractManager( con );
 
   t = null;
 
   //пытаемся найти на текущий момент тариф
   list = ctm.getContractTariffList(cid, date);
   if ( list.size() > 0)
   {
      t = list.get(0);
   }
 
 
   //Если нашли , то закрываем предыдушим днем
   createNew = true;
   changed = false;
     if ( t != null)
   {
      if ( t.getDate1() == null || t.getDate1().getTime().compareTo( date ) < 0 )
      {
         print ("close tariff..");
         changed = true;
         Calendar stopDate = getPrevDate( date) ;
         t.setDate2(  stopDate );
         ctm.updateContractTariff(  t );      
      }
      //если открыт сегодняшним числом  - ничего не делаем
      else if ( t.getDate1().getTime().compareTo( date ) == 0 )
      {
         print ("update tariff ");
         createNew = false;                  
         changed = true;
         t.setTariffPlanId( tariffId );
         t.setComment( "создан автоматически" );
         ctm.updateContractTariff( t );      
 
      }
   }
 
 
   // создаем новый
   if ( createNew )
   {
      print ("add new tariff..");
      changed = true;   
      t = new ContractTariff();
      t.setContractId( cid );
      t.setTariffPlanId( tariffId );
      t.setPos( 0 );
      t.setDate1(  TimeUtils.convertDateToCalendar( date ) );
      t.setDate2(  null );
      t.setComment( "создан автоматически" );               
      ctm.updateContractTariff(  t );      
   }
 
   if ( changed )
   {
   ru.bitel.bgbilling.kernel.event.EventProcessor.getInstance().publish( new ContractTariffChangedEvent( cid) );;
   }
}
 
private addNpayModule()
{
   ContractModuleManager manager = new ContractModuleManager( con );
   modules = manager.getContractModuleSet( cid );
   if ( !modules.contains( NPAY_MID ) )
   {
      ContractModule module = new ContractModule();
      module.setContractId( cid );
      module.setModuleId(    NPAY_MID );
      manager.addContractModule( module );
   }
}
 
private addNPayService( date )
{
   addNpayModule();
 
   ServiceObjectManager som = new ServiceObjectManager( con, NPAY_MID ) ;
 
 
   services = som.getServiceObjectList( cid, 0, 0, 0 );
   object = null;
 
   //TODO - переделать так чтобы искал в нужно врменном отрезке, а не последнюю незакрытую
   if ( services.size() > 0)
   {
      //ищем последнюю не закрытую .. 
      Date maxdate = new Date (0 );
      for ( ServiceObject  o : services )
      {
         if ( o.getDate2() == null && o.getDate1().compareTo( maxdate) >= 0   )
         {
            maxdate = o.getDate1();
            object = o;
         }
      }
 
   }   
 
 
   createNew = true;
   //Если нашли , то закрываем предыдушим днем
   if ( object != null)
   {
 
      if ( object.getDate1().compareTo( date ) < 0 )
      {
         print ("close pay service...");
         Calendar stopDate = getPrevDate( date) ;
 
         object.setDate2( stopDate.getTime() );
         print ("object.Date2=" + object.getDate2() );
 
         som.updateServiceObject( object );
      }
      //если открыт сегодняшним числом  - ничего не делаем
      else  if ( object.getDate1().compareTo( date ) == 0 )
      {
         print ("update pay service...");
         createNew = false;                  
         object.setComment( "Установлена скриптом" );
         som.updateServiceObject( object );
 
      }
   }
 
 
   if ( createNew )
   {
      // установка абонплаты
      print ("add pay service...");   
      object = new ServiceObject();
      object.setContractId( cid );
      object.setServiceId( PAY_SERVICE );
      object.setDate1( date );
      object.setComment( "Установлена скриптом" );
      som.updateServiceObject( object );
   }
 
}
 
private void setStatus( cid, date, statusId )
{
   status = new ContractStatus();
   status.setContractId( cid );
   status.setStatus( statusId );
   status.setDate1( TimeUtils.convertDateToCalendar( date ) );
   status.setComment( "установлен скриптом " );   
   sm = new ContractStatusManager( con );
   sm.changeStatus( status.clone(), USER_ID );   
}
 
//id услуги абонплат
PAY_SERVICE = 23;
NPAY_MID = 4;
 
 
TARIFF_BASE_ID = 57;
 
//id пользователя от имени которого будет изменяться статус договора
USER_ID = 0;
 
 
service = event.getContractService();
serviceId = service.getServiceId();
cid = event.getContractId();
print ("serviceId=" + serviceId);
date = service.getDate().getTime();
 
switch(serviceId)
 
{
//Установка тарифа приостановленный.
case 24: setTariff(cid, TARIFF_BASE_ID, date); addNPayService( date );  break;
}

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 23 май 2012, 13:46 
Прошу помощи.

есть скрипт... работал в версиях от 4.5 до 5.1... в 5.2 выдает ошибку.

Скрипт:

import bitel.billing.server.contract.bean.*;
import bitel.billing.server.util.*;
import java.util.*;
import java.math.*;

VPN_MID = 1;
CHARGE_TYPE = 2;

bu = new BalanceUtils( con ) ;
cm = new ContractManager( con );
chm = new ChargeManager( con );
ctm = new ContractTariffManager( con );

event.setProcessed( true );
if( event.getRequestDate() == null ) {
error( "event.requestDate() == null" );
return;
}
cid = event.getContractID();
contract = cm.getContractByID( cid );
if( contract == null ) {
error( "Contract with ID " + cid + " was not found!" );
return;
}
date_clndr = (Calendar)event.getRequestDate();
date = date_clndr.getTime();
currentTariff = ctm.getContractTariff( cid, date_clndr );
if( currentTariff == null ) {
error( "Current tariff was not found!" );
return;
}
PAY = 0;
tpid = currentTariff.getTariffPlanID();
if( tpid == 1 ) {
PAY = 350;
}
else if ( tpid == 2 ) {
PAY = 400;
}
else {
error( "Incorrect current tariff!" );
return;
}
balance = bu.getBalance( date, cid );
if( balance.intValue() < PAY ) {
error( "Not enough money to open a period!!" );
return;
}
charge = new Charge();
charge.setContractID( cid );
charge.setChargeDate( date );
charge.setChargeTypeID( CHARGE_TYPE );
charge.setComment( "абонплата по тарифу за текущий месяц." );
charge.setSumma( new BigDecimal( PAY ) );
chm.updateCharge( "new", charge );
bu.updateBalance( date, cid );
date_start = new GregorianCalendar();
date_start.setTime( date );
date_end = (Calendar)date_start.clone();
date_end.set(Calendar.DATE, date_end.getActualMaximum(Calendar.DATE) );
event.setPeriodStart( date_start );
event.setPeriodEnd( date_end );
print( "PAY = " + PAY );


ошибка:


GENERATE_TIME: 23.05.12 09:52:02
EXECUTION_STOP_TIME: 23.05.12 09:52:02
PROCESS_TIME: 32

OUT:


EXCEPTIONS:
Sourced file: Function [id:1; title:?????????? ?????????] : Error in method invocation: Method updateCharge( java.lang.String, bitel.billing.server.contract.bean.Charge ) not found in class'bitel.billing.server.contract.bean.ChargeManager' : at Line: 157 : in file: Function [id:1; title:?????????? ?????????] : chm .updateCharge ( "new" , charge )

java.util.concurrent.ExecutionException: Sourced file: Function [id:1; title:?????????? ?????????] : Error in method invocation: Method updateCharge( java.lang.String, bitel.billing.server.contract.bean.Charge ) not found in class'bitel.billing.server.contract.bean.ChargeManager' : at Line: 157 : in file: Function [id:1; title:?????????? ?????????] : chm .updateCharge ( "new" , charge )

at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
at java.util.concurrent.FutureTask.get(FutureTask.java:91)
at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener.runScript(ScriptEventListener.java:458)
at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.runScript(ScriptEventListener.java:302)
at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.notify(ScriptEventListener.java:271)
at ru.bitel.bgbilling.kernel.event.LocalEventProcessor.request(LocalEventProcessor.java:240)
at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:850)
at ru.bitel.bgbilling.kernel.event.EventProcessor.request(EventProcessor.java:819)
at bitel.billing.server.processor.dialup.DialUpSessionRealtime.setCalculatePeriod(DialUpSessionRealtime.java:2049)
at ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor.authorization(DialUpRadiusProcessor.java:741)
at ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor.authorization(DialUpRadiusProcessor.java:1)
at ru.bitel.bgbilling.kernel.network.radius.AbstractRadiusProcessor.authenticationImpl(AbstractRadiusProcessor.java:434)
at ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor.authenticationImpl(DialUpRadiusProcessor.java:590)
at ru.bitel.bgbilling.modules.dialup.radius.DialUpRadiusProcessor.authenticationImpl(DialUpRadiusProcessor.java:1)
at ru.bitel.bgbilling.kernel.network.radius.AbstractRadiusProcessor.authentication(AbstractRadiusProcessor.java:207)
at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.authentication(RadiusSession.java:115)
at ru.bitel.bgbilling.kernel.network.radius.RadiusSession.accessRequest(RadiusSession.java:92)
at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequestImpl(RadiusProcessor.java:374)
at ru.bitel.bgbilling.kernel.network.radius.AbstractRadiusProcessor.accessRequestImpl(AbstractRadiusProcessor.java:182)
at ru.bitel.bgbilling.kernel.network.radius.RadiusProcessor.accessRequest(RadiusProcessor.java:361)
at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.accessRequest(RadiusListenerWorker.java:309)
at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.processPacket(RadiusListenerWorker.java:189)
at ru.bitel.bgbilling.kernel.network.radius.RadiusListenerWorker.runImpl(RadiusListenerWorker.java:111)
at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:86)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:40)
Caused by: Sourced file: Function [id:1; title:?????????? ?????????] : Error in method invocation: Method updateCharge( java.lang.String, bitel.billing.server.contract.bean.Charge ) not found in class'bitel.billing.server.contract.bean.ChargeManager' : at Line: 157 : in file: Function [id:1; title:?????????? ?????????] : chm .updateCharge ( "new" , charge )

at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:77)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:102)
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)
at bsh.Interpreter.eval(Interpreter.java:653)
at ru.bitel.bgbilling.kernel.script.server.bean.ScriptInstance.eval(ScriptInstance.java:322)
at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$Worker.runScriptImpl(ScriptEventListener.java:99)
at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener.runScript(ScriptEventListener.java:345)
at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener.access$0(ScriptEventListener.java:1)
at ru.bitel.bgbilling.kernel.script.server.ScriptEventListener$ThreadedScriptEventListener$1.call(ScriptEventListener.java:446)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
... 4 more


Вернуться к началу
  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 23 май 2012, 14:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
Код:
chm.updateCharge( "new", charge );

Кажись new убрать полностью нада, или ноль поставить, и да, используйте тег CODE

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 23 май 2012, 14:58 
неа, непомогает


Вернуться к началу
  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 23 май 2012, 15:32 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
вообще первый параметр убрать надо. читайте явадоку, там же всё русским по белому:
http://bgbilling.ru/v5.2/javadoc/bitel/billing/server/contract/bean/ChargeManager.html#updateCharge(bitel.billing.server.contract.bean.Charge)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 23 май 2012, 16:02 
Спасибо за ссыль на доку. Все заработало.


Вернуться к началу
  
 
 Заголовок сообщения: Re: Скрипты и 5.2
СообщениеДобавлено: 24 май 2012, 00:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 03 авг 2009, 18:42
Сообщения: 7166
Откуда: Благовещенск
Карма: 241
supp писал(а):
Спасибо за ссыль на доку. Все заработало.

эээ, а я разве не это сказал?

_________________
Код:
  Клиент: вер. 6.2.714 / 25.05.2015 17:27:15
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
  Сервер: вер. 6.2.881 / 22.05.2015 17:56:55
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_45
Помощь по администрированию bgbilling в jabber конференции или Группа в telegram
Стиль программирования - пьяный мастерстер
Разработка мобильных приложений


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

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


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

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


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

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