forum.bitel.ru http://forum.bitel.ru/ |
|
Подскажите с реализацией http://forum.bitel.ru/viewtopic.php?f=19&t=1700 |
Страница 1 из 1 |
Автор: | kompot [ 10 дек 2008, 13:14 ] |
Заголовок сообщения: | Подскажите с реализацией |
В силу объективных причин мы не можем самостоятельно тарифицировать услуги телефонии по МГ и МН. Счета вставляем абонентам сами от имени Операторов МГ и МН по данным, предоставляемым этими операторами. Данные представляют собой текстовые файлы, содержащие построчно: наименование абонента, направление, стоимость, префикс и длительность звонка. Существует необходимость, пользуясь средствами биллинга, генерировать счета для абонентов, в которых помимо прочего отражалась бы эта детальная информация. Т.е., услуга МГ и МН: направление, префикс, длительность, сумма. Возможно создание какой-нибудь дополнительной таблицы или нескольких таблиц в базе, куда вносить данные из описанных реестров операторов, но я не совсем представляю, каким образом можно внести изменения в XML, генерирующийся при высталении счетов. Такой вот вопрос. Интересуют любые варианты. |
Автор: | Администратор [ 10 дек 2008, 17:27 ] |
Заголовок сообщения: | |
http://wiki.bgbilling.ru/index.php/%D0% ... 0%B0%D0%BC Там есть пример обращения в базу из XSLT. |
Автор: | kompot [ 15 дек 2008, 17:24 ] |
Заголовок сообщения: | |
Посмотрел пример, спасибо, но не совсем понятно, например, где в этом примере определяется URL, имя БД и xmlns? Тут http://xml.apache.org/xalan-j/extensionslib.html#sql как-то совсем иначе всё описывается. Запутался. |
Автор: | Amir [ 17 дек 2008, 16:32 ] |
Заголовок сообщения: | |
В примере вызывается функция API биллинга, а не используется расширение xalan. |
Автор: | kompot [ 23 дек 2008, 12:10 ] |
Заголовок сообщения: | |
А де-нибудь можно почитать про этот API? |
Автор: | Amir [ 24 дек 2008, 17:30 ] |
Заголовок сообщения: | |
В заголовке есть такое описание Код: 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 ] |
Заголовок сообщения: | |
Что-то накидал про расширения в биллинге http://wiki.bgbilling.ru/index.php/XSLT. Про расширения вообще в бижайшее время допишем. Пробуйте. |
Автор: | kompot [ 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 ] |
Заголовок сообщения: | |
Код: <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 версии. |
Автор: | kompot [ 21 янв 2009, 10:55 ] |
Заголовок сообщения: | |
То есть, на 4.4 обращение к базе из шаблона вообще не возможно, правильно я понимаю? |
Автор: | kompot [ 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.
и в документе ничего нет. Шаблон я не менял, всё осталось как описано выше. Как искать ошибку в шаблоне, если она там есть? |
Автор: | kompot [ 22 янв 2009, 02:19 ] |
Заголовок сообщения: | |
Всё, разобрался ![]() Большое спасибо. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |