BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 24 ] 
Автор Сообщение
СообщениеДобавлено: 20 июл 2012, 17:07 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
Использовали скрипт для добавления списка тарифных планов и платежей за них в xslt договора

Код:
import org.w3c.dom.*;
import bitel.billing.server.tariff.voice.calc.*;
import bitel.billing.server.task.bean.*;
import java.math.*;
import ru.bitel.bgbilling.kernel.network.radius.*;
import bitel.billing.server.npay.bean.*;
import bitel.billing.server.npay.*;
import bitel.billing.server.tariff.TariffTreeSet.TariffSetEntry;
import ru.bitel.bgbilling.modules.npay.server.*;
import java.util.ArrayList;
import java.util.Collections;
import java.math.BigDecimal;
import java.sql.*;
import java.util.*;
import java.lang.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.tariff.*;
import bitel.billing.server.util.*;
import bitel.common.Utils.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

public Node getVoipPrice( String cid )
{   
        //Список тиарифных планов
        String[] alltariffs = new String[]{
      "Симферополь (специальный) 2 Мбит/с"
        };


        //Стоимость всего
        String[] alltacosts= new String[]{
      "120,00 грн."
        };

         //Стоимость NDS
        String[] alltacostsnds= new String[]{
        "20.00 грн."
        };


         //Стоимость
        String[] alltacostsbeznds= new String[]{
        "100.00 грн."
        };

       //Инсталяция
       String[] instal= new String[]{
      "100",
       };

       String[] instalnds= new String[]{
      "16,67",
       };

       String[] instalbeznds= new String[]{
      "83,33",
       };
       //Инсталяция

        Connection conn = null;
      int st3r = Utils.parseIntString(cid);
        String[] al = new String[10];
      String userName = "bill";
      String password = "bgbilling";
      String url = "jdbc:mysql://localhost/bgbilling";
      Class.forName ("com.mysql.jdbc.Driver").newInstance ();
      conn = DriverManager.getConnection (url, userName, password);
      Statement s = conn.createStatement();
      ResultSet rs = s.executeQuery("SELECT tpid FROM contract_tariff WHERE cid='" +cid+ "' AND date2 is NULL;");
        int i = 0;       
 
      while (rs.next()) {
            al[i]=rs.getString(1);
            i++;
        }   

     doc = Utils.createDocument();
     result = doc.createElement( "price" );
      Element section = null;
      Element section2 = null;
      section2 = Utils.createElement( result, "section2" );
         
       for(int x = 0; x < al.length ; x++)
        {
        if(al[x] == "" || al[x] == null)
        {
           
          }
          else
        {
          Statement s2 = conn.createStatement();
        ResultSet rs2 = s2.executeQuery("SELECT title FROM tariff_plan WHERE id='" +al[x]+ "';");
               while (rs2.next())
                 {
                     String xz = rs2.getString(1);
                     section = Utils.createElement( result, "section" );
                     section.setAttribute( "title", xz);   
                     for(int z = 0; z < alltariffs.length; z++)
                     {
                       
                        if(xz.equals(alltariffs[z]))
                        {
                            section.setAttribute( "cost", alltacosts[z]);
                       section.setAttribute( "costnds", alltacostsnds[z]);
                       section.setAttribute( "costbeznds", alltacostsbeznds[z]);
                        }
                     }
                      
                    }
          }
        }

      Statement s3 = conn.createStatement();
     ResultSet rs3 = s3.executeQuery(" SELECT val FROM contract_parameter_type_1 WHERE pid=36 AND cid="+cid+";");
         while (rs3.next())       
            {
                      String mz = rs3.getString(1);
                       for(int e = 0; e < instal.length; e++)
                       {
                          if(mz.equals(instal[e]))
                     {
                        section2.setAttribute( "instalnds", instalnds[e] + " грн." );
                        section2.setAttribute( "instalbeznds", instalbeznds[e] + " грн.");
                        section2.setAttribute( "instal", instal[e] + ".00 грн.");
                     }
                       }
                }

      conn.close ();
      Utils.serializeXML( result, System.out, "windows-1251" );
      return result;
}


Вызывали так;

Код:
<xsl:for-each select="script:invoke('payment','getVoipPrice', $cid)/section2">
          <fo:table-row>
            <fo:table-cell border="0.2pt solid black" height="0.4cm">
              <fo:block xsl:use-attribute-sets="text_table" space-before="0.1cm" text-align="left">
                Инсталляция порта Интернет
              </fo:block>
            </fo:table-cell>
            <fo:table-cell border="0.2pt solid black" height="0.4cm">
              <fo:block xsl:use-attribute-sets="text_table" space-before="0.1cm" text-align="center">
                <xsl:value-of select="@instalbeznds"/>
              </fo:block>
            </fo:table-cell>
            <fo:table-cell border="0.2pt solid black" height="0.4cm">
              <fo:block xsl:use-attribute-sets="text_table" space-before="0.1cm" text-align="center">
                <xsl:value-of select="@instalnds"/>
              </fo:block>
            </fo:table-cell>
            <fo:table-cell border="0.2pt solid black" height="0.4cm">
              <fo:block xsl:use-attribute-sets="text_table" space-before="0.1cm" text-align="center">
                <xsl:value-of select="@instal"/>
              </fo:block>
            </fo:table-cell>
          </fo:table-row>
        </xsl:for-each>


Перестал выводить данные, кто может дать подсказку по этому поводу?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 июл 2012, 17:08 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
В 5.1. работает


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 июл 2012, 17:14 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
И при всем при этом никаких ошибок в логах?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 июл 2012, 17:39 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
Код:
     Приложение № 1 к Договору
                                   </fo:block><fo:block end-indent="0.1cm" font-family="arial" font-size="10pt" font-weight="bold" padding-bottom="0cm" padding-top="-0.4cm" space-before="0.4cm" start-indent="0.1cm" text-align="center">
      Терминология:
    </fo:block><fo:block end-indent="0.1cm" font-family="arial" font-size="9pt" font-weight="normal" padding-bottom="0cm" padding-top="-0.3cm" space-before="0.4cm" start-indent="0.1cm" text-align="left" text-decoration="none" white-space-collapse="false">
      IP-А...
http://172.28.200.25:8080/bgbilling/executer?module=admin&command=get&action=Command&
[ length = 64 ] xml = <?xml version="1.0" encoding="windows-1251"?><data status="ok"/>
http://172.28.200.25:8080/bgbilling/executer?module=admin&command=get&action=Command&
[ length = 64 ] xml = <?xml version="1.0" encoding="windows-1251"?><data status="ok"/>

Вот что дает лог при выборе типа карточки


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 июл 2012, 18:09 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
Код:
http://172.28.200.25:8080/bgbilling/executer?module=contract&action=ContractCard2&type=test.xsl&BGBillingSecret=uMCqLgIfchSebknb3hygNKbE&cid=457&
[ length = 1016 ] xml = <?xml version="1.0" encoding="windows-1251"?><data secret="932FA2AC641C71548E5406D867351955" status="ok"><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:script="bitel.billing.server.util.exslt.Scripting" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xalan="http://xml.apache.org/xalan"><fo:layout-master-set><fo:simple-page-master margin-bottom="0.7cm" margin-left="1.5cm" margin-right="1cm" margin-top="0.2cm" master-name="first" page-height="29.7cm" page-width="21cm"><fo:region-body margin-bottom="0.0cm" margin-top="0.5cm"/><fo:region-before extent="0.0cm"/><fo:region-after extent="0.0cm"/></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="first"><fo:flow flow-name="xsl-region-body"><fo:table space-after="0.6cm" table-layout="fixed"><fo:table-column column-width="9.0cm"/><fo:table-column column-width="3.17cm"/><fo:table-column column-width="3.17cm"/><fo:table-column column-width="3.17cm"/><fo:table-body/></fo:table></fo:flow></fo:page-sequence></fo:root></data>
ru.bitel.bgbilling.common.BGException: Ошибка трансформации FO-шаблона
   at bitel.billing.module.common.AWTViewer.setData(AWTViewer.java:117)
   at bitel.billing.module.contract.ContractPanel_Card2.showCard(ContractPanel_Card2.java:327)
   at bitel.billing.module.contract.ContractPanel_Card2.setData(ContractPanel_Card2.java:298)
   at bitel.billing.module.contract.ContractPanel_Card.setData(ContractPanel_Card.java:56)
   at bitel.billing.module.common.BGPanel.actionPerformed(BGPanel.java:288)
   at bitel.billing.module.contract.ContractEditor.actionPerformed(ContractEditor.java:161)
   at bitel.billing.module.common.UniToolBar$ContractAction.actionPerformed(UniToolBar.java:341)
   at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
   at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
   at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
   at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
   at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
   at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
   at java.awt.Component.processMouseEvent(Component.java:6288)
   at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
   at java.awt.Component.processEvent(Component.java:6053)
   at java.awt.Container.processEvent(Container.java:2041)
   at java.awt.Component.dispatchEventImpl(Component.java:4651)
   at java.awt.Container.dispatchEventImpl(Container.java:2099)
   at java.awt.Component.dispatchEvent(Component.java:4481)
   at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
   at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
   at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
   at java.awt.Container.dispatchEventImpl(Container.java:2085)
   at java.awt.Window.dispatchEventImpl(Window.java:2478)
   at java.awt.Component.dispatchEvent(Component.java:4481)
   at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
   at java.awt.EventQueue.access$000(EventQueue.java:84)
   at java.awt.EventQueue$1.run(EventQueue.java:602)
   at java.awt.EventQueue$1.run(EventQueue.java:600)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
   at java.awt.EventQueue$2.run(EventQueue.java:616)
   at java.awt.EventQueue$2.run(EventQueue.java:614)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
   at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: javax.xml.transform.TransformerException: org.apache.fop.fo.ValidationException: "fo:table-body" is missing child elements. Required content model: marker* (table-row+|table-cell+) (See position 0:0)
   at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:401)
   at ru.bitel.common.FOUtils.render(FOUtils.java:206)
   at ru.bitel.common.FOUtils.render(FOUtils.java:212)
   at bitel.billing.module.common.AWTViewer.setData(AWTViewer.java:107)
   ... 43 more
Caused by: org.apache.fop.fo.ValidationException: "fo:table-body" is missing child elements. Required content model: marker* (table-row+|table-cell+) (See position 0:0)
   at org.apache.fop.events.ValidationExceptionFactory.createException(ValidationExceptionFactory.java:38)
   at org.apache.fop.events.EventExceptionManager.throwException(EventExceptionManager.java:54)
   at org.apache.fop.events.DefaultEventBroadcaster$1.invoke(DefaultEventBroadcaster.java:175)
   at $Proxy27.missingChildElement(Unknown Source)
   at org.apache.fop.fo.FONode.missingChildElementError(FONode.java:563)
   at org.apache.fop.fo.flow.table.TablePart.finalizeNode(TablePart.java:114)
   at org.apache.fop.fo.FONode.endOfNode(FONode.java:326)
   at org.apache.fop.fo.flow.table.TableBody.endOfNode(TableBody.java:48)
   at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:349)
   at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:177)
   at org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1102)
   at org.apache.xml.serializer.TreeWalker.endNode(TreeWalker.java:460)
   at org.apache.xml.serializer.TreeWalker.traverse(TreeWalker.java:151)
   at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:390)
   ... 46 more


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 10:30 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Цитата:
"fo:table-body" is missing child elements. Required content model: marker* (table-row+|table-cell+) (See position 0:0)

Вам помочь перевести? :lupa:

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 10:33 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Так как fo:table-body нет в приведённом куске, озаглавненном "Вызывали так;", то делаем вывод, что дело не в нём. Просто в каком-то другом месте шаблона невалидная вёрстка. В 5.1 работало, потому что в 5.1 был другой FO-процессор, который относился к валидации спустя рукава.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 10:35 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Вот же у вас ниже как раз вся приходящяя FO как на ладони:

Цитата:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:script="bitel.billing.server.util.exslt.Scripting" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xalan="http://xml.apache.org/xalan"><fo:layout-master-set><fo:simple-page-master margin-bottom="0.7cm" margin-left="1.5cm" margin-right="1cm" margin-top="0.2cm" master-name="first" page-height="29.7cm" page-width="21cm"><fo:region-body margin-bottom="0.0cm" margin-top="0.5cm"/><fo:region-before extent="0.0cm"/><fo:region-after extent="0.0cm"/></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="first"><fo:flow flow-name="xsl-region-body"><fo:table space-after="0.6cm" table-layout="fixed"><fo:table-column column-width="9.0cm"/><fo:table-column column-width="3.17cm"/><fo:table-column column-width="3.17cm"/><fo:table-column column-width="3.17cm"/><fo:table-body/></fo:table></fo:flow></fo:page-sequence></fo:root>

Жирным выделена вёрстка таблицы, она и невалидная. См. выше.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 10:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
viewtopic.php?f=1&t=4942&hilit=fop
и так в тему сразу же.
Где то в той теме сказано про валидатор

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 10:43 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Валидатор не отловит вроде такого в интеллектуальном режиме. Кажется, я такого не предусматривал. Вернее, когда окончательно будет валидировать, то покажет такую же ошибку, как уже выше приведена.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 12:27 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
В куске "вызывали так" приведен фрагмент кода вызова. Что-бы убрать подозрения с валидности вставил в шаблон такой код

Цитата:
<fo:block xsl:use-attribute-sets="text">
<xsl:for-each select="script:invoke('payment','getVoipPrice', $cid)/section">
<xsl:value-of select="@title"/>
<xsl:value-of select="@costbeznds"/>
<xsl:value-of select="@costnds"/>
<xsl:value-of select="@cost"/>
</xsl:for-each>
</fo:block>

В шаблоне ничего не отображается и все что выводит дебаг это:
Код:
[ length = 909 ] xml = <?xml version="1.0" encoding="windows-1251"?><data secret="56B188AA296A99C3A547CC3AC36E4594" status="ok"><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:script="bitel.billing.server.util.exslt.Scripting" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xalan="http://xml.apache.org/xalan"><fo:layout-master-set><fo:simple-page-master margin-bottom="0.7cm" margin-left="1.5cm" margin-right="1cm" margin-top="0.2cm" master-name="first" page-height="29.7cm" page-width="21cm"><fo:region-body margin-bottom="0.0cm" margin-top="0.0cm"/><fo:region-before extent="0.0cm"/><fo:region-after extent="0.0cm"/></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="first"><fo:flow flow-name="xsl-region-body"><fo:block end-indent="0.1cm" font-family="arial" font-size="9.5pt" start-indent="0.1cm" text-align="left" text-decoration="none"/></fo:flow></fo:page-sequence></fo:root></data>
http://172.28.200.25:8080/bgbilling/executer?module=contract&action=ContractCard2&type=test.xsl&BGBillingSecret=RCA3xwGz1kOtJqgX7Pr9zQc3&cid=461&
[ length = 909 ] xml = <?xml version="1.0" encoding="windows-1251"?><data secret="9FC0389580BB72F8001215585178E5DC" status="ok"><fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:script="bitel.billing.server.util.exslt.Scripting" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xalan="http://xml.apache.org/xalan"><fo:layout-master-set><fo:simple-page-master margin-bottom="0.7cm" margin-left="1.5cm" margin-right="1cm" margin-top="0.2cm" master-name="first" page-height="29.7cm" page-width="21cm"><fo:region-body margin-bottom="0.0cm" margin-top="0.0cm"/><fo:region-before extent="0.0cm"/><fo:region-after extent="0.0cm"/></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="first"><fo:flow flow-name="xsl-region-body"><fo:block end-indent="0.1cm" font-family="arial" font-size="9.5pt" start-indent="0.1cm" text-align="left" text-decoration="none"/></fo:flow></fo:page-sequence></fo:root></data>
http://172.28.200.25:8080/bgbilling/executer?module=admin&command=get&action=Command&
[ length = 64 ] xml = <?xml version="1.0" encoding="windows-1251"?><data status="ok"/>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 13:57 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
А что у вас должно отобразиться, если приходит совершенно пустой FO-документ? Описаны page-sequence и всё, конец, тела нету.

Цитата:
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:script="bitel.billing.server.util.exslt.Scripting" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xalan="http://xml.apache.org/xalan"><fo:layout-master-set><fo:simple-page-master margin-bottom="0.7cm" margin-left="1.5cm" margin-right="1cm" margin-top="0.2cm" master-name="first" page-height="29.7cm" page-width="21cm"><fo:region-body margin-bottom="0.0cm" margin-top="0.0cm"/><fo:region-before extent="0.0cm"/><fo:region-after extent="0.0cm"/></fo:simple-page-master></fo:layout-master-set><fo:page-sequence master-reference="first"><fo:flow flow-name="xsl-region-body"><fo:block end-indent="0.1cm" font-family="arial" font-size="9.5pt" start-indent="0.1cm" text-align="left" text-decoration="none"/></fo:flow></fo:page-sequence></fo:root>

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 14:09 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
Об этом и написано в 1-м посте, скрипт который работал в 5.1, в 5.2 ничего не выводит.
Цикл foreach ничего не выводит т.к получает пустой элемент.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 15:53 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Так вы разделите уж понятия. То, что вы написали вначале - ошибка форматирования, невалидный FO, оно так и ругается. То, что вы сейчас говорите — совершенно о другом - у вас ваш скрипт ( script:invoke('payment','getVoipPrice', $cid)/section ) не возвращает ничего, потому и получившийся документ пустой выходит (из этого частично и получалась первая ошибка).
с этим надо разбираться. то ли скрипт падает, то ли xml не такая выходит. скрипт вообще вызывается? его надо смотреть внимательно, трассировать при необходимости итд.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2012, 16:20 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
А как я могу это проверить?

Вот к примеру взять простой код

Код:
import org.w3c.dom.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.util.*;
import bitel.billing.server.tariff.*;
import bitel.billing.server.tariff.voice.calc.*;
import java.sql.*;

public Node getVoipPrice( String cid )
{
   result = doc.createElement( "price" );
   Element section = null;

   section = Utils.createElement( result, "section" );
   section.setAttribute( "title", "Территория России" );
   Utils.serializeXML( result, System.out, "UTF-8" );

   return result;
}


И вызов

Код:
<fo:block xsl:use-attribute-sets="text">
<xsl:for-each select="script:invoke('some','getVoipPrice', $cid)/section">
<xsl:value-of select="@title"/>
</xsl:for-each>   
</fo:block>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2012, 11:22 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
И?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2012, 12:03 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
Ваш ответ достоин премии.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2012, 12:28 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Претендую лишь на второе место (после вопроса).
Вот вы взяли простой код и дальше что? Как проверить — в этом вопрос? Я тогда его не понимаю… запустите, проверьте. Или вы его уже запустили? Тогда в чём вопрос? И он не работает, не выводится ничего?
Сам скрипт вообще вызывается? Поставьте там print, например, выведется в лог что-нибудь? Покажите что происходит в логах после попытки рендера этого куска и как следствие работы этого скрипта.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 13:32 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
Если кому будет полезно вот рабочий вариант

Код:
import org.w3c.dom.*;
import ru.bitel.common.*;

public Node getXML( String cid ) {
         doc = XMLUtils.newDocument();
         result = doc.createElement( "price" );
      Element section = null;
      section = XMLUtils.newElement( result, "section" );
        section.setAttribute( "title", "ЗАГОЛОВОК");
   return result;
}


и его вызов

Код:
<xsl:for-each select="script:invoke('some','getXML', $cid)/section">
   <fo:block xsl:use-attribute-sets="text"><xsl:value-of select="@title"/></fo:block>
</xsl:for-each>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 14:42 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 19 дек 2006, 21:04
Сообщения: 5970
Карма: 256
Не уверен, влияет ли на результат, но создание элемента не добавляет его автоматически в документ
Код:
result = doc.createElement( "price" );
>>
Код:
result = XMLUtils.newElement( doc, "price" );
или
Код:
result = doc.createElement( "price" );
doc.appendChild( result );


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 15:21 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Честно говоря я так и не понял работает ли приведённый код или вопрос в том, что он не работает. Если оно работает, то чем отличается от исходного кода?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 июл 2012, 20:24 
Не в сети

Зарегистрирован: 18 июл 2012, 17:22
Сообщения: 48
Карма: 0
dimOn писал(а):
Честно говоря я так и не понял работает ли приведённый код или вопрос в том, что он не работает. Если оно работает, то чем отличается от исходного кода?


Исходя из темы "Перестал работать скрипт после перехода на 5.2", можно сделать логическое заключение, что скрипт не работал.
О том чем оно отличается от исходного кода, сравните свое API версии 5.1 и API версии 5.2 и попробуйте найти в новом public class Utils.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 июл 2012, 12:25 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Я про код, который вы потом даёте
Цитата:
Если кому будет полезно вот рабочий вариант

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 июл 2012, 12:31 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Цитата:
О том чем оно отличается от исходного кода, сравните свое API версии 5.1 и API версии 5.2 и попробуйте найти в новом public class Utils.

там есть Utils точно такой же. У вас просто использовался уже очень давно deprecated bitel.billing.server.util.Utils, за этим надо следить как бы.

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


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

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


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

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


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

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