Не могу обработать результаты функции rpcf_get_users_list

Технические вопросы по UTM 5.0
Ответить
Аватара пользователя
Voronok
Сообщения: 116
Зарегистрирован: Пт мар 14, 2008 19:21

Не могу обработать результаты функции rpcf_get_users_list

Сообщение Voronok »

Со всеми функциями, которые возвращают массивы все нормально, только эта не идет. Обрабатывается только первый результат. Может я что-то не так делаю?

Файл get_users_list.xml

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

<?xml version="1.0"?>
<urfa>
    <parameter name="from"/>
    <parameter name="to"/>
    <call function="rpcf_get_users_list"/>
    <for name="t" from="0" count="size&#40;cnt&#41;">
        <set dst="user_id" src="user_id_array" src_index="t"/>
        <call function="rpcf_get_userinfo"/>
    </for>
</urfa>
Запускаю

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

billing# /netup/utm5/bin/utm5_urfaclient -a get_users_list -from 0 -to 3
 Notice&#58; Apr 01 16&#58;42&#58;36 UTM5 Config&#58; Processing config file&#58; /netup/utm5/utm5_urfaclient.cfg
Processing action&#58; get_users_list
<?xml version="1.0"?>
<urfa>
  <session key="bc94b44b6ca3b25667e640457c80cd02"/>
  <call function="rpcf_get_users_list">
    <output>
      <integer name="cnt" value="3"/>
      <array name="i">
        <item>
          <integer name="user_id_array" value="8"/>
          <string name="login_array" value="gag27_7"/>
          <integer name="basic_account" value="8"/>
          <string name="full_name" value="&#x413;&#x43E;&#x43D;&#x447;&#x443;&#x433;"/>
          <integer name="is_blocked" value="16"/>
          <double name="balance" value="-596.685"/>
          <integer name="ip_adr_size" value="1"/>
          <array name="j">
            <item>
              <integer name="group_size" value="1"/>
              <array name="x">
                <item>
                  <ip_address name="ip_address" value="172.16.0.16"/>
                  <ip_address name="mask" value="255.255.255.255"/>
                  <integer name="group_type" value="1"/>
                </item>
              </array>
            </item>
          </array>
          <integer name="user_int_status" value="0"/>
        </item>
        <item>
          <integer name="user_id_array" value="9"/>
          <string name="login_array" value="sev8_2"/>
          <integer name="basic_account" value="9"/>
          <string name="full_name" value="&#x421;&#x430;&#x440;&#x434;&#x430;&#x440;&#x44C;"/>
          <integer name="is_blocked" value="0"/>
          <double name="balance" value="167.59"/>
          <integer name="ip_adr_size" value="1"/>
          <array name="j">
            <item>
              <integer name="group_size" value="1"/>
              <array name="x">
                <item>
                  <ip_address name="ip_address" value="172.16.219.2"/>
                  <ip_address name="mask" value="255.255.255.255"/>
                  <integer name="group_type" value="1"/>
                </item>
              </array>
            </item>
          </array>
          <integer name="user_int_status" value="0"/>
        </item>
        <item>
          <integer name="user_id_array" value="10"/>
          <string name="login_array" value="vod362-3_65"/>
          <integer name="basic_account" value="10"/>
          <string name="full_name" value="&#x418;&#x432;&#x430;&#x43D;&#x43E;&#x432; &#x412;"/>
          <integer name="is_blocked" value="0"/>
          <double name="balance" value="134.428"/>
          <integer name="ip_adr_size" value="1"/>
          <array name="j">
            <item>
              <integer name="group_size" value="1"/>
              <array name="x">
                <item>
                  <ip_address name="ip_address" value="172.16.137.2"/>
                  <ip_address name="mask" value="255.255.255.255"/>
                  <integer name="group_type" value="1"/>
                </item>
              </array>
            </item>
          </array>
          <integer name="user_int_status" value="0"/>
        </item>
      </array>
    </output>
  </call>
  <call function="rpcf_get_userinfo">
    <output>
      <integer name="user_id" value="8"/>
      <integer name="accounts_count" value="1"/>
      <array name="i">
        <item>
          <integer name="account_id_array" value="8"/>
          <string name="account_name_array" value="auto create account"/>
        </item>
      </array>
      <string name="login" value="gag27_7"/>
      <string name="password" value="ramzes"/>
      <integer name="basic_account" value="8"/>
      <string name="full_name" value="&#x413;&#x43E;&#x43D;&#x447;&#x443;&#x433;&#x43E;"/>
      <integer name="create_date" value="1177668984"/>
      <integer name="last_change_date" value="1245648787"/>
      <integer name="who_create" value="-1"/>
      <integer name="who_change" value="-17"/>
      <integer name="is_juridical" value="0"/>
      <string name="jur_address" value=""/>
      <string name="act_address" value="&#x413;&#x430;&#x433;&#x430;&#x440;&#x438;&#x43D;&#x430; &#x434;27"/>
      <string name="work_tel" value="71667"/>
      <string name="home_tel" value=""/>
      <string name="mob_tel" value="89064998339"/>
      <string name="web_page" value=""/>
      <string name="icq_number" value=""/>
      <string name="tax_number" value=""/>
      <string name="kpp_number" value=""/>
      <integer name="bank_id" value="0"/>
      <string name="bank_account" value=""/>
      <string name="comments" value=""/>
      <string name="personal_manager" value=""/>
      <integer name="connect_date" value="-10800"/>
      <string name="email" value="8@sity.tlt"/>
      <integer name="is_send_invoice" value="1"/>
      <integer name="advance_payment" value="0"/>
      <integer name="house_id" value="0"/>
      <string name="flat_number" value="7"/>
      <string name="entrance" value="1"/>
      <string name="floor" value="2"/>
      <string name="district" value=""/>
      <string name="building" value=""/>
      <string name="passport" value="07-01-461684 &#x423;&#x412;&#x414; &#x41D;&#x435;"/>
      <integer name="parameters_size" value="0"/>
      <array name="i"/>
    </output>
  </call>
</urfa>

serjk
NetUP Team
Сообщения: 719
Зарегистрирован: Пн авг 14, 2006 08:56

Сообщение serjk »

В цикле в качестве count надо поставить size(user_id_array)

size(cnt) == 1 всегда.

Аватара пользователя
Voronok
Сообщения: 116
Зарегистрирован: Пт мар 14, 2008 19:21

Сообщение Voronok »

Спасибо, большое, так работает. :)

А в выводе -

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

...
    <output>
      <integer name="cnt" value="3"/>
...
- глюк?

P.S. Хотел спросить, как Вы узнали, но увидел, откуда Вы и передумал. ;)

serjk
NetUP Team
Сообщения: 719
Зарегистрирован: Пн авг 14, 2006 08:56

Сообщение serjk »

Переменная cnt имеет значение 3, но ее размерность равна 1, т.к. это простая переменная (не массив).

Можно было написать так:

<for name="t" from="0" count="cnt">

Либо так:

<for name="t" from="0" count="size(user_id_array)">

Ответить