BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Подскажите с реализацией
СообщениеДобавлено: 10 дек 2008, 13:14 
В силу объективных причин мы не можем самостоятельно тарифицировать услуги телефонии по МГ и МН.
Счета вставляем абонентам сами от имени Операторов МГ и МН по данным, предоставляемым этими операторами. Данные представляют собой текстовые файлы, содержащие построчно: наименование абонента, направление, стоимость, префикс и длительность звонка.

Существует необходимость, пользуясь средствами биллинга, генерировать счета для абонентов, в которых помимо прочего отражалась бы эта детальная информация. Т.е., услуга МГ и МН: направление, префикс, длительность, сумма.

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

Такой вот вопрос. Интересуют любые варианты.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 дек 2008, 17:27 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
http://wiki.bgbilling.ru/index.php/%D0% ... 0%B0%D0%BC
Там есть пример обращения в базу из XSLT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 дек 2008, 17:24 
Посмотрел пример, спасибо, но не совсем понятно, например, где в этом примере определяется URL, имя БД и xmlns?
Тут http://xml.apache.org/xalan-j/extensionslib.html#sql как-то совсем иначе всё описывается. Запутался.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 дек 2008, 16:32 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
В примере вызывается функция API биллинга, а не используется расширение xalan.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 дек 2008, 12:10 
А де-нибудь можно почитать про этот API?


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 24 дек 2008, 17:30 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
В заголовке есть такое описание
Код:
xmlns:sql="bitel.billing.server.util.exslt.SQLQuery"   
   xmlns:utils="bitel.billing.server.util.Utils"
   xmlns:counter="bitel.billing.server.util.exslt.Counter">
   
   <xalan:component prefix="sql" functions="select">
             <xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.SQLQuery"/>
     </xalan:component>


далее использование, например, так:
Код:
<xsl:variable
         name="tariff_plan"
         select="sql:select( concat('SELECT tpid FROM contract_tariff WHERE cid=', $cid, ' AND emid=', $phone_mid, ' AND eid=', $id, $date_filter, ' LIMIT 1' ) )/row/@tpid"/>


вызов sql:select возврощает ветку xml вида
<data><row/><row/>...</data>
в row содержится результат выборки по именам полей.

есть также такой вариант:
http://wiki.bgbilling.ru/index.php/Расширенные_счета_модуля_бухгалтерии


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Что-то накидал про расширения в биллинге http://wiki.bgbilling.ru/index.php/XSLT.
Про расширения вообще в бижайшее время допишем. Пробуйте.


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

Код:
file:///usr/local/BGBillingServer43/dummy.xsl; Номер строки0; Номер столбца0; java.lang.NoSuchMethodException: For extension function, could not find method java.lang.String.select([ExpressionContext,] ).
file:///usr/local/BGBillingServer43/dummy.xsl; Номер строки0; Номер столбца0; java.lang.NullPointerException

вот куски шаблона:

Код:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xalan="http://xml.apache.org/xalan"
xmlns:sql="bitel.billing.server.util.exslt.SQLQuery"
xmlns:utils="bitel.billing.server.util.Utils"
xmlns:counter="bitel.billing.server.util.exslt.Counter"
xmlns:st="bitel.billing.server.bill.bean.SummaToString"
version="1.0">

<xalan:component prefix="utils" functions="maskBlank, replace">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.Utils"/>
</xalan:component>
<xalan:component prefix="sql" functions="select">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.SQLQuery"/>
</xalan:component>
<xalan:component prefix="st" functions="summaToString">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.bill.bean.SummaToString"/>
</xalan:component>
<xalan:component prefix="counter" functions="add set get">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.Counter"/>
</xalan:component>
<xsl:output encoding="windows-1251" method='xml' indent='yes' />

Код:
<xsl:variable   name="table"  select="sql:select('select title from contract limit 1')"/>


<fo:block xsl:use-attribute-sets="text" space-before="0.2cm">
          <xsl:for-each select="$table/data/row">
                      <xsl:value-of select="@title"/>
         </xsl:for-each>
                               
</fo:block>



Причём, если я комментирую в заголовке вот эту часть:
Код:
<xalan:component prefix="sql" functions="select">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.SQLQuery"/>
</xalan:component>

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

xalan.jar брал самый свежий в комплекте с сервером для v.4.4


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

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Код:
<xalan:component prefix="utils" functions="maskBlank, replace">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.Utils"/>
</xalan:component>
<xalan:component prefix="sql" functions="select">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.SQLQuery"/>
</xalan:component>
<xalan:component prefix="st" functions="summaToString">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.bill.bean.SummaToString"/>
</xalan:component>
<xalan:component prefix="counter" functions="add set get">
<xalan:script lang="javaclass" src="xalan://bitel.billing.server.util.exslt.Counter"/>
</xalan:component>

Вот это можно вообще не писать. Расширение появилось только в 4.5 версии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 янв 2009, 10:55 
То есть, на 4.4 обращение к базе из шаблона вообще не возможно, правильно я понимаю?


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 янв 2009, 15:45 
Обновился до 4.5.
Теперь в server.log кроме этого ничего нет:

Код:
DEBUG  21.01.2009 14:43:41  executing bitel.billing.server.bill.action.ActionViewDocs; time => 115 ms.


и в документе ничего нет. Шаблон я не менял, всё осталось как описано выше.
Как искать ошибку в шаблоне, если она там есть?


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 22 янв 2009, 02:19 
Всё, разобрался :)
Большое спасибо.


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

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


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

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


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

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