Импорт структурированных данных

15    

Введение#

NetUP UTM5 поддерживает импорт XML-файлов, содержащих следующие сущности: пользователей, телефонные направления и телефонные зоны.

Импорт подклассов трафика в виде CSV-файлов описан в разделе Классы трафика.

Импорт первичной информации о трафике и звонках из текстовых файлов описан в разделе Импорт текстовых файлов.

Интерфейс операции#

Для импорта данных:

1.В меню центра управления выберите Система: Импорт.

Import.png

2.Нажмите Обзор и выберите XML-файл.

3.Отметьте галочками сущности, которые предполагается импортировать. (Прочие сущности, если они встретятся в файле, будут игнорированы.)

4.Нажмите Импорт.

Импортируемый файл XML проверяется на соответствие схеме (см. ниже). Также проверяется отсутствие дублирования существующих объектов и валидность перекрестных ссылок (т. е. существование объектов, на которые имеются ссылки в импортируемых данных). При успешной проверке файл импортируется в базу. В противном случае выдаётся сообщение об ошибке и импорт не производится.

Схема XML-файла#

Полная схема XML-файла находится по адресу www.netup.ru/xsd/import.xsd. Пример приведён в разделе Пример XML-файла.

XML-дерево файла начинается с элемента верхнего уровня import, содержащего элементы users, zones и directions (см. схемы ниже), каждый из которых может включать произвольное количество дочерних элементов user, zone и direction, соответственно.

Import_users.png

 

Рис. 1. Схема XML-файла (элемент users ).

Элемент user#

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

Элемент

Тип

Значение по умолчанию

Описание

id

число

не задано

Идентификатор (зарезервирован для использования в будущем). При записи в базу элементу присваивается другой идентификатор.

login

строка

Обязательный элемент

Логин

accounts

Набор элементов account (см. account)
Обязательно наличие хотя бы одного элемента.

password

строка

не задано

Пароль

full_name

строка

не задано

Наименование

is_juridical

0, 1

0

1 – юридическое лицо,
0 – физическое

jur_address

строка

не задано

Юридический адрес

act_address

строка

не задано

Фактический адрес

district

строка

не задано

Район

building

строка

не задано

Строение

entrance

строка

не задано

Подъезд

floor

строка

не задано

Этаж

flat_number

строка

не задано

Квартира

passport

строка

не задано

Паспортные данные

house_id

число

не задано

ID дома в списке домов в UTM

work_tel

строка

не задано

Рабочий телефон

home_tel

строка

не задано

Домашний телефон

mod_tel

строка

не задано

Мобильный телефон

icq_number

строка

не задано

Номер ICQ

tax_number

строка

не задано

ИНН

kpp_number

строка

не задано

КПП

email

строка

не задано

Е-mail

bank_id

число

не задано

Идентификатор банка

bank_account

строка

не задано

Номер расчётного счёта

comments

строка

не задано

Комментарий

personal_manager

строка

не задано

Персональный менеджер

connect_date

число

не задано

Дата подключения в формате Unix timestamp

is_send_invoice

0, 1

0

Параметр Высылать счет по email (1 – да, 0 – нет).

advance_payment

0, 1

0

Параметр Работать по предоплате (1 – да, 0 – нет).

switch_id

число

не задано

ID коммутатора

port_number

число

не задано

Номер порта коммутатора

binded_currency_id

число

не задано

ID закреплённой валюты пользователя

parameters

Набор элементов parameter (см. parameter)

groups

Набор элементов group (см. group)

account#

Элемент account может содержать:

Элемент

Тип

Значение по умолчанию

Описание

id

число

не задано

Идентификатор (зарезервирован для использования в будущем). При записи в базу элементу присваивается другой идентификатор.

is_blocked

число

0

см. Тип блокировки

balance

вещественное число

0

Баланс счёта

credit

вещественное число

0

Кредит

vat_rate

вещественное число

0

Ставка НДС

sale_tax_rate

вещественное число

0

Ставка НСП

int_status

0, 1

1

Статус доступа в Интернет
(0 – заблокирован, 1 – включён).

Тип блокировки#

0 – не заблокировано;

256 – присутствует системная блокировка;

768 – присутствует системная блокировка, пересчитывать абонентскую плату;

1280 – присутствует системная блокировка, пересчитывать трафик;

1792 – присутствует системная блокировка, пересчитывать абон. плату и трафик;

parameter#

Элемент parameter должен содержать:

Элемент

Тип

Значение по умолчанию

Описание

parameter_id

число

Обязательный параметр

Идентификатор дополнительного параметра

parameter_value

строка

Обязательный параметр

Значение параметра

group#

Элемент group должен содержать:

Элемент

Тип

Значение по умолчанию

Описание

group_id

число

Обязательный параметр

Идентификатор группы, в которую входит пользователь.

 

Элемент zone #

Import_zones.png

Содержит информацию о телефонной зоне. Может включать следующие элементы:

Элемент

Тип1

Значение по умолчанию

Описание

id

число

не задано

Идентификатор (зарезервирован для использования в будущем). При записи в базу элементу присваивается другой идентификатор.

name

строка

Обязательный элемент

Наименование

zone_type

число

0

Тип звонков:
0 – местный,
1 – внутризоновый,
2 – междугородный,
3 – международный

Элемент direction #

Import_directions.png

Содержит информацию о телефонном направлении. Может включать:

Элемент

Тип

Значение по умолчанию

Описание

id

число

не задано

Идентификатор. Используется только для перекрестных ссылок из элементов zone, находящихся в этом же файле. При записи в базу элементу присваивается другой идентификатор.

name

строка

Обязательный элемент

Наименование

prefix

строка

не задано

То же, что и called_prefix (оставлено для совместимости со старой версией; при одновременном указании обоих приоритетным является called_prefix).

called_prefix

строка

не задано

Префикс или регулярное выражение для проверки входящего номера.

calling_prefix

строка

не задано

Префикс или регулярное выражение для проверки исходящего номера.

zone_id

число

не задано

Идентификатор зоны, в которую входит направление.

incoming_trunk

строка

не задано

Наименование входящего транка

outgoing_trunk

строка

не задано

Наименование исходящего транка

pbx_id

строка

не задано

Идентификатор АТС

calling_prefix_regexp

число

1

Интерпретация calling_prefix:
0 – префикс,
1 – регулярное выражение.

called_prefix_regexp

число

1

Интерпретация called_prefix:
0 – префикс,
1 – регулярное выражение.

skip

число

0

1 – отменить учёт данного направления (не относить к нему никакие звонки).

dir_type

число

То же, что в содержащей зоне; если зона не задана – 0

Тип звонков:
0 – местный,
1 – внутризоновый,
2 – междугородный,
3 – международный.

Обязательным является указание хотя бы одного элемента из следующих пяти: called_prefix, calling_prefix, incoming_trunk, outgoing_trunk или pbx_id.

Пример XML-файла#

При импорте файла, приведённого ниже, создаются следующие сущности:

Телефонное направление “Москва”, включающее звонки, входящие номера которых определяются регулярным выражением ^749(5|9)[0-9]{7}$.

Телефонная зона “Россия” типа 2 (для междугородных звонков), включающая направление “Москва”.

Пользователь Иванов (физическое лицо), входящий в группу 2, с определёнными логином и паролем, с одним счётом и остатком 650 р. на счёте.

 

<?xml version="1.0" encoding="utf-8"?>

<import>

   <users>

      <user>

         <accounts>

            <account>

               <id>1</id>

               <balance>650</balance>

               <vat_rate>0.18</vat_rate>

               <int_status>1</int_status>

            </account>

         </accounts>

         <id>11</id>

         <login>ivanov</login>

         <password>aipsw123</password>

         <full_name>Иванов</full_name>

         <is_juridical>0</is_juridical>

         <groups>

            <group>

               <group_id>2</group_id>

            </group>

         </groups>

      </user>

   </users>

   <zones>

      <zone>

         <id>1</id>

         <name>Россия</name>

         <zone_type>2</zone_type>

      </zone>

   </zones>

   <directions>

      <direction>

         <id>1</id>

         <name>Москва</name>

         <called_prefix>^749(5|9)[0-9]{7}$</called_prefix>

         <zone_id>1</zone_id>

         <called_prefix_regexp>1</called_prefix_regexp>

      </direction>

   </directions>

</import>