Urfa. Output входных данных

Технические вопросы по UTM 5.0
Ответить
badimka
Сообщения: 3
Зарегистрирован: Вт июн 21, 2011 15:28

Urfa. Output входных данных

Сообщение badimka »

Здравствуйте!

Обычный запрос урфе:

Код: Выделить всё

<urfa>
<call function="rpcf_get_userinfo">
    <parameter name="user_id" comment="Usert ID"/>
</call>

<set dst="account_id" value="account_id_array"/>

<call function="rpcf_get_user_tariffs">
    <parameter name="user_id" comment="User ID"/>
    <parameter name="account_id" comment="Accaunt ID"/>
</call>

</urfa>
выдаст примерно такое

Код: Выделить всё

...
<call function="rpcf_get_userinfo"> 
...
<call function="rpcf_get_user_tariffs">
    <output>
      <integer name="user_tariffs_size" value="2"/>
      <array name="i">
        <item>
          <integer name="tariff_current_array" value="262"/>
          <integer name="tariff_next_array" value="340"/>
          <integer name="discount_period_id_array" value="4699"/>
          <integer name="tariff_link_id_array" value="4516"/>
        </item>
      </array>
    </output>
  </call>
...
 
При нескольких аккаунтах не понятно к какому из них принадлежит rpcf_get_user_tariffs. Приходится "определять" по очередности вывода (ну или разбивать запрос)

А если бы была возможность выдавать в output некоторые входящие данные (в этом примере account_id) то всё бы отлично распарсилось.

Форумчане, подскажите есть ли такая возможность в urfe? Документацию просмотрел не нашёл ничего кроме.

Чую должен быть способ.

Аватара пользователя
MaxDM
Сообщения: 313
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Сообщение MaxDM »

Распарсивать вывод надо чем-нибудь.

littlesavage
Сообщения: 120
Зарегистрирован: Вс ноя 22, 2009 02:41
Откуда: Чебоксары

Re: Urfa. Output входных данных

Сообщение littlesavage »

Код: Выделить всё

  <function name="rpcf_get_user_tariffs" id="0x3017">
    <input>
      <integer name="user_id"/>
      <integer name="account_id" default="0"/>
    </input>
Т.е. можно выполнить несколько rpcf_get_user_tariffs со всеми account_id юзера.

По сути да, в выводе rpcf_get_user_tariffs не хватает поля account_id

badimka
Сообщения: 3
Зарегистрирован: Вт июн 21, 2011 15:28

Re: Urfa. Output входных данных

Сообщение badimka »

Да, я парсю вывод. xpath рулит.
littlesavage писал(а):По сути да, в выводе rpcf_get_user_tariffs не хватает поля account_id
littlesavage меня понял.
Вот такие "неопреленности" мэйкмикрейзи.

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Re: Urfa. Output входных данных

Сообщение Magnum72 »

badimka писал(а):Здравствуйте!

Обычный запрос урфе:

Код: Выделить всё

<urfa>
<call function="rpcf_get_userinfo">
    <parameter name="user_id" comment="Usert ID"/>
</call>

<set dst="account_id" value="account_id_array"/>

<call function="rpcf_get_user_tariffs">
    <parameter name="user_id" comment="User ID"/>
    <parameter name="account_id" comment="Accaunt ID"/>
</call>

</urfa>
выдаст примерно такое

Код: Выделить всё

...
<call function="rpcf_get_userinfo"> 
...
<call function="rpcf_get_user_tariffs">
    <output>
      <integer name="user_tariffs_size" value="2"/>
      <array name="i">
        <item>
          <integer name="tariff_current_array" value="262"/>
          <integer name="tariff_next_array" value="340"/>
          <integer name="discount_period_id_array" value="4699"/>
          <integer name="tariff_link_id_array" value="4516"/>
        </item>
      </array>
    </output>
  </call>
...
 
При нескольких аккаунтах не понятно к какому из них принадлежит rpcf_get_user_tariffs. Приходится "определять" по очередности вывода (ну или разбивать запрос)

А если бы была возможность выдавать в output некоторые входящие данные (в этом примере account_id) то всё бы отлично распарсилось.

Форумчане, подскажите есть ли такая возможность в urfe? Документацию просмотрел не нашёл ничего кроме.

Чую должен быть способ.
Можно так:

Код: Выделить всё

<urfa>
<parameter name="test"/>
<out var="test"/>
</urfa>
И из недокументированного еще такое есть:

Код: Выделить всё

<urfa>
<set dst="a" value="2"/>
<set dst="b" value="1"/>
<add dst="c" arg1="a" arg2="b"/> <!--c=a+b-->
<div dst="c" arg1="c" arg2="2"/> <!--c=c/2-->
<mul dst="c" arg1="c" arg2="b"/> <!--c=b*c-->
<sub dst="c" arg1="0" arg2="c"/> <!--c=0-c-->
<out var="c"/>
</urfa>

badimka
Сообщения: 3
Зарегистрирован: Вт июн 21, 2011 15:28

Сообщение badimka »

Magnum72 - Отец.
Спасибо.

У Магнума свои мануалы какие-то....

А скажите пожалуйста, чем вы парсите XML от urfa?

Аватара пользователя
ds
Сообщения: 380
Зарегистрирован: Пн сен 18, 2006 14:06

Сообщение ds »

А скажите пожалуйста, чем вы парсите XML от urfa?
Для php нормальный парсер только DOMDocument

VeroLom
Сообщения: 6
Зарегистрирован: Ср июн 15, 2011 15:30
Откуда: Санкт-Петербург
Контактная информация:

Сообщение VeroLom »

badimka писал(а):А скажите пожалуйста, чем вы парсите XML от urfa?
XML::Twig для Perl

Ответить