Версия формата миграции: 2.4.1
Миграция из других АСР делается через промежуточный набор таблиц в формате CSV.
- Кодировка UTF-8,
- Разделитель полей — точка с запятой
- Значения полей обрамляются кавычками (в том числе пустые значения представляются пустыми кавчками (;"";)
- В первой строке указываются названия полей таблицы.
Пример:
"ID";"STATUS_ID";"LOGIN";"JUR";"NAME";"ADDR";"PASSPORT";"W_PHONE";"H_PHONE";"M_PHONE";"EMAIL"
"12";"1";"example";"0";"Шварценгольд Виктор Робертович";"Москва г, Большой Сергиевский пер.,8,1,2,53,";"";"";"9101234567";"9031234567";""
Далее с помощью специального инструмента CSV-файлы загружаются в АСР «Гидра» , где происходит сопоставление справочников и выполняется собственно миграция данных.
Упрощения и допущения
- Юр. лица и физ. лица находятся в одной таблице и отличаются только по специальному признаку.
- Из реквизитов юр. лица выгружается только его название, остальное требует ручного ввода (таблицу при необходимости можно дополнить полями с реквизитами).
- Текущий объём потреблённых услуг (трафик, минуты) никак не мигрирует, но дата окончания текущего периода мигрирует.
- Подробности тарифов (периодичность, пороги, единицы измерения, стоимость и т.д.) не мигрируют, а переносятся вручную и затем сопоставляются.
Выгрузка из старой АСР
Звёздочкой для наглядности помечены идентификаторы, являющиеся внешними ключами. Первичный ключ в каждой таблице всегда называется ID. Если необходимо, то к каждой таблице можно добавить поле для комментария (с названием REM), в которое будут выгружаться полезные текстовые данные.
Для полей с типом «Дата и время» используется следующий формат: 26.04.2009 13:04:55 (Oracle: DD.MM.YYYY HH24:MI:SS). Для полей только с датой или только с временем нужно использовать 26.04.2009 и 13:04:55 соответственно.
Справочник состояний абонента
Таблица STATUS
Поле |
Описание |
---|---|
ID |
ID состояния |
NAME |
Наименование состояния |
В простейшем случае в справочнике всего два состояния (включен, отключен).
Примечание: значения данного справочника не мигрируют, а служат для сопоставления значений в приложении «Миграция» в мигрируемой системе с состояниями абонентов в Гидре.
Справочник сетевых служб
Таблица NS_LIST
ID |
ID сетевой службы |
NAME |
Название сетевой службы |
Примечание: этот справочник формируется вручную и состоит из перечня сетевых служб, для доступа к которым абоненту нужен логин и пароль: RADIUS, личный кабинет, телефония, почта и т.п. Значения данного справочника не мигрируют, а сопоставляются.
Справочник единиц измерения
Таблица UNITS_LIST
ID |
ID единицы измерения |
NAME |
Название единицы измерения |
Примечание: значения данного справочника не мигрируют, а сопоставляются со справочником единиц измерения в Гидре.
Справочник типов оборудования
Таблица EQUIP_TYPE
ID |
ID типа |
NAME |
Название оборудования |
Например: Dlink 3526
Примечание: значения данного справочника не мигрируют, а сопоставляются с позициями номенклатуры, как правило из раздела Активное оборудование.
Справочник групп
Таблица GROUPS
ID |
ID группы |
NAME |
Название группы |
Примечание: значения данного справочника не мигрируют, а сопоставляются со справочником групп. Если в вашей системе нет групп, то имеет смысл всё равно добавить значения в этот справочник и привязать всех абонентов к группам в зависимости от их категории, например, Физические лица, Юридические лица, Сотрудники и т.п.
Справочник банков
Таблица BANKS
ID |
ID банка |
NAME |
Название банка |
Примечание: значения данного справочника не мигрируют, а сопоставляются со справочником банков. Соответственно банки, которые встречаются в выгрузке нужно ввести в Гидру вручную.
Справочник типов счетов
Таблица ACCT_TYPES
ID |
ID типа счета |
NAME |
Тип счета |
Примечание: значения данного справочника не мигрируют, а сопоставляются со справочником типов счетов
Справочник услуг и тарифных планов
Таблица SERVICES
ID |
ID услуги (тарифного плана) |
NAME |
Наименование услуги (ТП) |
TYPE |
Признак тарифного плана (если Y, то ТП; если N, то услуга) |
UNIT_ID |
ID единицы измерения* |
Примечание: в этот справочник выгружаются все тарифные планы, и услуги. Значения данного справочника не мигрируют, а сопоставляются с Номенклатурой.
Справочник лицевых счетов
Таблица ACCOUNTS
ID |
ID лицевого счёта |
USER_ID |
ID абонента* |
ACCT_NUM |
Номер счёта |
ACCT_TYPE_ID |
ID типа счета* |
CUR_ID |
ID валюты* (если в системе только российский рубль, можно не указывать) |
BANK_ID |
ID банка (для лицевых счетов - оставлять пустым) |
BALANCE |
Баланс счёта |
CREDIT |
Кредитный лимит |
CREDIT_END_DATE |
Дата окончания кредитного лимита |
BALANCE_DATE |
Дата, на которую рассчитан баланс, как правило дата выгрузки |
Привязки абонента к сетевым службам
Таблица NETSERV
ID |
ID привязки |
USER_ID |
ID абонента* |
NS_ID |
ID сетевой службы* |
EQUIP_ID |
ID абонентского оборудования* |
LOGIN |
Логин |
PASSWORD |
Пароль |
PASS_TYPE |
Тип шифрования пароля (md5 итд). Оставлять пустым для plaintext |
Примечание: в эту таблицу выгружаются логины и пароли на VPN, на личный кабинет, SIP-аккаунт и на другие ресурсы, которые контролирует биллинг. При этом в целях безопасности пароли при тестовых выгрузках нужно заменять на звёздочки или случайные строки. Настоящие пароли будут выгружаться всего один раз, при окончательной миграции.
Участие абонентов в группах
Таблица GROUPLINK
ID |
ID записи об участии |
USER_ID |
ID абонента* |
GROUP_ID |
ID группы* |
MAIN |
Признак основной группы - 'Y' (Только при привязке абонента к нескольким группам. Иначе - оставлять пустым) |
Примечание: если в системе, откуда производится выгрузка, нет понятия групп, то желательно хотя бы разделить всех выгружаемых абонентов на три группы: юридические лица, физические лица и сотрудники. То есть добавьте эти три группы в таблицу GROUPS и укажите к ним привязку (определите кому какую группу добавлять по своим критериям во время выгрузки).
Подписка абонентов на услуги
Таблица SUBSCR
ID |
ID подписки |
ACCT_ID |
ID лицевого счёта* |
CONTRACT_ID |
ID договора* |
TARIFF_ID |
ID услуги (тарифного плана)* |
EQUIP_ID |
ID абонентского оборудования* |
D_BEGIN |
Дата начала подписки, когда абонент выбрал новый тарифный план/услугу для смены |
D_END |
Дата окончания подписки, оставлять пусто, если это последний выбранный тариф |
QUANT |
Заказанное количество, умноженное на 100. Для тарифных планов - оставлять пустым. |
PAY_DAY |
Расчетный день (оставлять пустым для плавающего расчетного дня) |
Примечание: выгружаются услуги и тарифный план на следующий период. Если у вас фиксированный расчётный день, привязанный к 1 числу месяца, то выгружайте PAY_DAY = 1 (обычно для юридических лиц).
Операторское оборудование
Таблица OP_EQUIP
ID |
ID оборудования |
EQUIP_TYPE_ID |
ID типа оборудования* |
GROUP_ID |
ID группы* |
CODE |
Код оборудования |
IP |
IP-адрес для управления |
LOGIN |
Логин для управления |
PASSWORD |
Пароль |
FIRM_ID |
ID филиала* |
Примечание: ID группы можно использовать для привязки оборудования к определённому региону или филиалу. Список атрибутов для оборудования может быть расширен по необходимости (адрес, количество портов и т. д.).
Оконечное оборудование абонентов
Таблица EQUIP
ID |
ID оборудования |
USER_ID |
ID абонента* |
EQUIP_TYPE_ID |
ID типа абонентского оборудования. При пустом значении используется |
OP_EQUIP_ID |
ID операторского оборудования* |
OP_EQUIP_PORT |
Порт операторского оборудования |
CODE |
Код оборудования |
MAC |
Физический адрес (MAC) |
IP |
IP-адрес |
MASK |
Маска IP-адреса |
PHONE |
Абонентский телефонный номер в формате E.164 |
ADDR |
Адрес обслуживания |
Примечание: поля OP_EQUIP_ID и OP_EQUIP_PORT необходимы для указания привязки абонентского оборудования к операторскому.
Справочник абонентских договоров
Таблица CONTRACTS
ID |
ID договора |
USER_ID |
ID абонента |
NUM |
Номер договора |
D_DOC |
Дата заключения договора |
D_BEGIN |
Дата начала действия договора |
D_END |
Дата окончания действия договора |
Справочник абонентов
Таблица USERS
ID |
ID абонента |
STATUS_ID |
ID состояния абонента* |
LOGIN |
Код абонента |
JUR |
Физическое или юридическое лицо (0 — физ. лицо, 1 — юр. лицо) |
NAME |
ФИО (физ. лица) / Наименование (юр. лица) |
ADDR |
Домашний адрес. Формат адреса абонента: |
PASSPORT |
Номер паспорта |
INN |
ИНН |
OPF |
Организационно-правовая форма, например ИП, ООО |
W_PHONE |
Рабочий телефон в формате E.164 |
H_PHONE |
Контактный домашний телефон в формате E.164 |
M_PHONE |
Контактный мобильный телефон в формате E.164 |
Контактный email |
|
FIRM_ID |
ID филиала* |
Примечание: список атрибутов для личных данных абонента может быть расширен по необходимости.
Платежи
Таблица PAYMENTS
ID |
ID операции |
ACCT_ID |
ID лицевого счёта* |
BANK_ID |
ID банка* |
D_OPER |
Дата и время операции |
PAYMENT_SUM |
Сумма платежа, умноженная на 100 (целое число) |
PAYMENT_TYPE_ID |
Тип платежа* (необязательное поле) |
Типы платежей
Таблица PAYMENT_TYPE
ID |
ID типа платежа |
NAME |
Наименование типа платежа |
VIRTUAL |
Флаг. 'Y' если корректировка |
Примечание: справочник служит для разделения платежей по разным видам (исправление ошибки, наличные, безналичные банк, ОСМП, Visa, Webmoney и тп), тип используется для удобства построения отчётов.
Списания
Таблица WRITEOFFS
ID |
ID операции |
ACCT_ID |
ID лицевого счёта* |
CONTRACT_ID |
ID договора* |
D_OPER |
Дата и время операции |
TARIFF_ID |
ID услуги (тарифного плана)* |
EQUIP_ID |
ID абонентского оборудования |
SUM |
Сумма списания, умноженная на 100 |
D_BEGIN |
Дата и время начала периода списания |
D_END |
Дата и время окончания периода списания |
USED |
Количество, умноженное на 100. (В единицах измерения UNIT_ID из SERVICES) |
Многофилиальная структура
При наличии многофилиальной структуры используется справочник филиалов, на который ссылаются поля FIRM_ID в таблицах USERS и OP_EQUIP
Таблица FIRMS
ID |
ID филиала |
NAME |
Наименование филиала |
Сопоставляется с организационной структурой предприятия.
Дополнительные таблицы
В процессе миграции некоторые поля разбираются, и данные из них записываются в дополнительные таблицы.
В частности, адрес из USERS.ADDR подвергается парсингу и записывается в таблицу PARSED_USER_ADDRESSES. Таким образом, если в биллинге, из которого выгружаются данные, информация об адресе хранится в разобранном виде, то нет нужды писать его в одну строку — можно сразу заполнить таблицу.
Таблица PARSED_USER_ADDRESSES
USER_ID |
Соответствующий ID из таблицы USERS* |
VC_ORIGINAL |
Строка с адресом из USERS.ADDR. При ручном заполнении необязательно. |
VC_CITY |
Название населенного пункта |
VC_CITY_TYPE |
Тип населенного пункта (г, пгт и прочие) |
VC_STREET |
Название улицы |
VC_STREET_TYPE |
Тип улицы (ул, пр, пер, бульв. и прочие) |
VC_HOUSE |
Номер дома |
VC_BUILDING |
Корпус |
VC_ENTRANCE_NO |
Подъезд |
VC_FLOOR |
Этаж |
VC_FLAT |
Квартира |
VC_DIS_CODE |
Код домофона |
Также, парсингу подвергаются другие данные из USERS и записываются в PARSED_USER_INFO. Таким образом, если в биллинге, из которого выгружаются данные, эта информация хранится в разобранном виде, то можно сразу заполнить таблицу.
Таблица PARSED_USER_INFO
USER_ID |
Соответствующий ID из таблицы USERS* |
NAME |
Имя |
SURNAME |
Фамилия |
SECOND NAME |
Отчество |
SEX |
Пол (M - male, F - female) |
AUTH_DOC_TYPE |
Тип документа, удостоверяющего личность |
DOC_NO |
Серия |
DOC_SERIES |
Номер |
DOC_GIVEN |
Кем выдан |
DOC_ADD_CODE |
Дополнительный код |
REG_ADDRESS |
Адрес регистрации |
CITIZENSHIP |
Гражданство |