Версия формата миграции: 2.7.3
Миграция из других АСР делается через промежуточный набор таблиц в формате CSV.
- Кодировка UTF-8 без BOM
- Разделитель полей — точка с запятой
- Значения полей обрамляются кавычками (в том числе пустые значения представляются пустыми кавычками (;"";)
- В первой строке указываются названия полей таблицы
- Первичные ключи (поля ID) и внешние ключи (поля *_ID) должны быть числовыми
Пример:
"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 | Наименование состояния |
В простейшем случае в справочнике всего два состояния (включен, отключен).
Справочник услуг и тарифных планов
Таблица SERVICES
ID | ID услуги (тарифного плана) |
NAME | Наименование услуги (ТП) |
TYPE | Признак тарифного плана (если Y, то ТП; если N, то услуга) |
UNIT_ID | ID единицы измерения* |
Примечание: значения данного справочника не мигрируют, а сопоставляются с Номенклатурой.
Справочник сетевых служб
Таблица NS_LIST
ID | ID сетевой службы |
NAME | Название сетевой службы |
Примечание: этот справочник формируется вручную и состоит из перечня сетевых служб, для доступа к которым абоненту нужен логин и пароль: RADIUS, личный кабинет, телефония, почта и т.п.
Справочник единиц измерения
Таблица UNITS_LIST
ID | ID единицы измерения |
NAME | Название единицы измерения |
Примечание: значения сопоставляются со справочником единиц измерения в Гидре.
Справочник валют
Таблица CURRENCY
ID | ID валюты |
NAME | Наименование валюты |
Примечание: значения сопоставляются со справочником единиц измерения в Гидре.
Справочник типов оборудования
Таблица EQUIP_TYPE
ID | ID типа |
NAME | Название оборудования |
Примечание: значения сопоставляются с позициями номенклатуры, как правило из раздела Активное оборудование.
Справочник абонентских групп
Таблица GROUPS
ID | ID группы |
NAME | Название группы |
Примечание: значения сопоставляются со справочником групп. Если в вашей системе нет групп, то имеет смысл всё равно добавить значения в этот справочник и привязать всех абонентов к группам в зависимости от их категории, например, Физические лица, Юридические лица, Сотрудники и т.п.
Справочник банков
Таблица BANKS
ID | ID банка |
NAME | Название банка |
Примечание: значения сопоставляются со справочником банков. Соответственно банки, которые встречаются в выгрузке нужно ввести в Гидру вручную.
Справочник типов счетов
Таблица ACC_TYPES
ID | ID типа счета |
NAME | Тип счета |
Примечание: значения сопоставляются со справочником типов счетов
Справочник типов удостоверений личности
Таблица AUTH_DOC_TYPES
ID | ID типа документа |
NAME | Тип документа |
Примечание: значения сопоставляются со справочником типов документов - удостоверений личности
Необязательные таблицы сопоставлений
При выставлении корректных управляющих значений по умолчанию, таблицы из этого раздела выгружать не обязательно.
Справочник видов телефонов
Таблица PHONE_TYPES
ID | ID вида привязки телефона |
NAME | Вид привязки (Мобильный, Домашний, Рабочий итд) |
Примечание: значения сопоставляются со справочником видов адресов
Справочник видов привязки фактических адресов
Таблица FACT_ADDR_BIND_TYPES
ID | ID вида привязки фактического адреса |
NAME | Вид привязки (Фактический, Адрес обслуживания итд) |
Примечание: значения сопоставляются со справочником видов адресов
Типы платежей
Таблица PAYMENT_TYPE
ID | ID типа платежа |
NAME | Наименование типа платежа |
VIRTUAL | Флаг. 'Y' если корректировка |
Примечание: справочник служит для разделения платежей по разным видам (исправление ошибки, наличные, безналичные банк, ОСМП, Visa, Webmoney и тп), тип используется для удобства построения отчётов.
Таблицы с данными для миграции
Данные из следующих таблиц используются при миграции для создания сущностей соответствующего вида.
Справочник абонентов
Таблица USERS
Поле | Описание | Примечание |
ID | ID абонента | |
STATUS_ID | ID состояния абонента | Ссылка на STATUS.ID |
BASE_ID | ID базового СУ | Ссылка на USERS.ID базового СУ. Обычно выгружается пустым для автоматического формирования привязок |
LOGIN | Код абонента | Уникальное краткое наименование, идентифицирующее абонента |
JUR | Физическое или юридическое лицо (0 — физ. лицо, 1 — юр. лицо) | |
NAME | ФИО (физ. лица) / Наименование (юр. лица) | |
ADDR | Домашний адрес. Формат адреса абонента: | Если каких-то данных нет, то оставляйте пустые запятые, например, Самара г., Пролетарская ул.,5,,,78,5к234 Номер дома может быть дополнен номером корпуса: Самара г., Пролетарская ул.,5 корп. 7,,,78,5к234 |
ADDR_REM | Примечание к адресу субъекта | |
AUTH_DOC_TYPE_ID | Тип документа - удостоверения личности | Ссылка на AUTH_DOC_TYPES.ID |
AUTH_DOC_SERIAL | Серия документа | |
AUTH_DOC_NO | Номер документа | |
AUTH_DOC_DATE | Дата выдачи документа | Формат DD.MM.YYYY |
AUTH_DOC_ISSUE | Кем/где выдан | |
D_BIRTH | Дата рождения | Формат DD.MM.YYYY |
BIRTH_PLACE | Место рождения | |
INN | ИНН | |
OPF | Организационно-правовая форма, например ИП, ООО | ОПФ не сопоставляются. Значение из справочника ОПФ подбирается по совпадению наименования |
W_PHONE | Рабочий телефон в формате E.164 | |
H_PHONE | Контактный домашний телефон в формате E.164 | |
M_PHONE | Контактный мобильный телефон в формате E.164 | |
Контактный email | ||
FIRM_ID | ID филиала | Ссылка на FIRMS.ID . Используется только при миграции с учетом многофилиальности |
Примечание: список атрибутов для личных данных абонента может быть расширен по необходимости.
Справочник лицевых счетов
Таблица ACCOUNTS
Поле | Описание | Примечание |
ID | ID лицевого счёта | |
USER_ID | ID абонента | Ссылка на USERS.ID |
ACC_NUM | Номер счёта | |
ACC_TYPE_ID | ID типа счета (ЛС, РС итд) | Ссылка на ACC_TYPES.ID |
CUR_ID | ID валюты | Ссылка на CURRENCY.ID (если в системе только российский рубль, можно не указывать) |
BANK_ID | ID банка | Ссылка на BANKS.ID (для лицевых счетов - оставлять пустым) |
BALANCE | Баланс счёта | |
CREDIT | Текущий кредит абонента | Заполняется, только если кредит нужен. Если нет — оставлять пустым. |
CREDIT_END_DATE | Дата окончания кредитного лимита | Если поле пустое, но в CREDIT указана величина кредита, то кредит будет постоянным |
BALANCE_DATE | Дата, на которую рассчитан баланс | DD.MM.YYYY HH24:MI:SS Нужно учитывать, что все платежи из PAYMENTS, которые пришли позже, чем дата указанная здесь, будут добавляться к балансу указанному в ACCOUNTS.BALANCE. |
Привязки абонента к сетевым службам
Таблица NETSERV
Поле | Описание | Примечание |
ID | ID привязки | |
USER_ID | ID абонента | Ссылка на USERS.ID |
NS_ID | ID сетевой службы | Ссылка на NS_LIST.ID |
EQUIP_ID | ID абонентского оборудования | Ссылка на EQUIP.ID |
LOGIN | Логин | |
PASSWORD | Пароль | |
PASS_TYPE | Тип шифрования пароля (md5 итд). Оставлять пустым для plaintext | Типы шифрования не сопоставляются. Значение из справочника подбирается исходя из совпадения наименования |
Примечание: в эту таблицу выгружаются логины и пароли на VPN, на личный кабинет, SIP-аккаунт и на другие ресурсы, которые контролирует биллинг. При этом в целях безопасности пароли при тестовых выгрузках нужно заменять на звёздочки или случайные строки. Настоящие пароли будут выгружаться всего один раз, при окончательной миграции.
Участие абонентов в группах
Таблица GROUPLINK
Поле | Описание | Примечание |
ID | ID записи об участии | |
USER_ID | ID абонента | Ссылка на USERS.ID |
GROUP_ID | ID группы | Ссылка на GROUPS.ID |
MAIN | Признак основной группы - 'Y' | Используется для выделения основной группы при привязке абонента к нескольким группам. Основная группа должна быть одна. |
Примечание: если в системе, откуда производится выгрузка, нет понятия групп, то желательно хотя бы разделить всех выгружаемых абонентов на три группы: юридические лица, физические лица и сотрудники. То есть добавьте эти три группы в таблицу GROUPS и укажите к ним привязку (определите кому какую группу добавлять по своим критериям во время выгрузки).
Подписка абонентов на услуги
Таблица SUBSCR
Поле | Описание | Примечание |
ID | ID подписки | |
ACC_ID | ID лицевого счёта | Ссылка на ACCOUNTS.ID |
CONTRACT_ID | ID договора | Ссылка на CONTRACTS.ID |
TARIFF_ID | ID услуги (тарифного плана) | Ссылка на SERVICES.ID |
EQUIP_ID | ID абонентского оборудования | Ссылка на EQUIP.ID |
D_BEGIN | Дата начала подписки | Дата, когда абонент выбрал новый тарифный план/услугу для смены |
D_END | Дата окончания подписки | Оставлять пустым, если это последний выбранный тариф |
QUANT | Заказанное количество услуги | Для тарифных планов - оставлять пустым |
PAY_DAY | Расчетный день | Для плавающего расчетного дня оставлять пустым |
Примечание: выгружаются услуги и тарифный план на следующий период. Если у вас фиксированный расчётный день, привязанный к 1 числу месяца, то выгружайте PAY_DAY = 1 (обычно для юридических лиц).
Операторское оборудование
Таблица OP_EQUIP
Поле | Описание | Примечание |
ID | ID оборудования | |
EQUIP_TYPE_ID | ID типа оборудования | Ссылка на EQUIP_TYPE.ID |
CODE | Код оборудования | |
IP | IP-адрес для управления | |
FIRM_ID | ID филиала | Ссылка на FIRMS.ID . Используется только при миграции с учетом многофилиальности |
Примечание: Таблица используется для корректных привязок к уже загруженному в систему операторскому оборудованию. При запуске секции миграции операторского оборудования будут проставлены сопоставления исходя из выгруженных данных.
Оконечное оборудование абонентов
Таблица EQUIP
Поле | Описание | Примечание |
ID | ID оборудования | |
USER_ID | ID абонента | Ссылка на USERS.ID |
EQUIP_TYPE_ID | ID типа абонентского оборудования | Ссылка на Оставлять пустым для компонентов служб с единственным типом спецификации В случае пустого значения для самостоятельного активного оборудования используется тип, задаваемый на форме значений по умолчанию |
OP_EQUIP_ID | ID операторского оборудования | Ссылка на OP_EQUIP.ID |
OP_EQUIP_PORT | Порт операторского оборудования | |
OP_EQUIP_PORT_TYPE | Код типа порта операторского оборудования | Значение сопоставляется по коду, поскольку архитектурно в системе одинаковые типы портов различного оборудования являются различными сущностями |
NS_ID | ID сетевой службы для управления оборудованием | Ссылка на NS_LIST.ID . Обычно не используется - оставлять пустым |
CODE | Код оборудования | Краткое наименование, идентифицирующее оборудование |
MAC | Физический адрес (MAC) | |
IP | IP-адрес | |
MASK | Маска IP-адреса | |
PHONE | Абонентский телефонный номер в формате E.164 | |
ADDR | Адрес обслуживания | Адрес выгружается в таком же формате, как USERS.ADDR |
ADDR_REM | Примечание к адресу обслуживания |
Примечание: поля OP_EQUIP_ID, OP_EQUIP_PORT, OP_EQUIP_PORT_TYPE используются для указания привязки абонентского оборудования к операторскому и не являются необходимыми.
Справочник абонентских договоров
Таблица CONTRACTS
Поле | Описание | Примечание |
ID | ID договора | |
USER_ID | ID абонента | Ссылка на USERS.ID |
NUM | Номер договора | |
D_DOC | Дата заключения договора | |
D_BEGIN | Дата начала действия договора | |
D_END | Дата окончания действия договора |
Платежи
Таблица PAYMENTS
Поле | Описание | Примечание |
ID | ID операции | |
ACC_ID | ID лицевого счёта | Ссылка на ACCOUNTS.ID |
BANK_ID | ID банка | Ссылка на BANKS.ID . Оператор связи должен иметь счет в этом банке |
D_OPER | Дата и время операции | |
PAYMENT_SUM | Сумма платежа, умноженная на 100 (целое число) | |
PAYMENT_TYPE_ID | Тип платежа | Ссылка на PAYMENT_TYPES.ID . Можно оставлять пустым - будут использоваться типы платежей по умолчанию |
Списания
Таблица WRITEOFFS
Поле | Описание | Примечание |
ID | ID операции | |
ACC_ID | ID лицевого счёта | Ссылка на ACCOUNTS.ID |
CONTRACT_ID | ID договора | Ссылка на CONTRACTS.ID |
D_OPER | Дата и время операции | |
TARIFF_ID | ID услуги (тарифного плана) | Ссылка на SERVICES.ID |
EQUIP_ID | ID абонентского оборудования | Ссылка на EQUIP.ID |
SUM | Сумма списания, умноженная на 100 | Полная сумма списания, не цена услуги. |
D_BEGIN | Дата и время начала периода списания | |
D_END | Дата и время окончания периода списания | |
USED | Количество, умноженное на 100 | В единицах измерения, указанных для услуги в TARIFF_ID , введенной в Гидре |
Суммы в таблице WRITEOFFS не должны быть отрицательными - только положительные значения и 0.
Многофилиальная структура
При наличии многофилиальной структуры используется справочник филиалов, на который ссылаются поля FIRM_ID в таблицах USERS и OP_EQUIP
Таблица FIRMS
ID | ID филиала |
NAME | Наименование филиала |
Сопоставляется с организационной структурой предприятия.
Множественные комментарии
Поддерживается загрузка множественных комментариев к абонентам и абонентскому оборудованию
Таблица COMMENT_TYPES
ID | ID типа комментария |
NAME | Наименование комментария |
Сопоставляется со справочником "Типы комментариев"
Таблица USER_COMMENTS
ID | Идентификатор |
USER_ID | Ссылка на USERS.ID |
COMMENT_TYPE_ID | Ссылка на COMMENT_TYPES.ID |
CL_COMMENT | Текст комментария |
D_OPER | Дата создания |
D_SIGNAL | Дата напоминания |
D_EXEC | Дата выполнения |
Таблица EQUIP_COMMENTS
ID | Идентификатор |
EQUIP_ID | Ссылка на EQUIP.ID |
COMMENT_TYPE_ID | Ссылка на COMMENT_TYPES.ID |
CL_COMMENT | Текст комментария |
D_OPER | Дата создания |
D_SIGNAL | Дата напоминания |
D_EXEC | Дата выполнения |
Дополнительные таблицы
В процессе миграции некоторые поля разбираются, и данные из них записываются в дополнительные таблицы.
В частности, адрес из USERS.ADDR подвергается парсингу и записывается в таблицу PARSED_USER_ADDRESSES. Таким образом, если в биллинге, из которого выгружаются данные, информация об адресе хранится в разобранном виде, то нет нужды писать его в одну строку — можно сразу заполнить таблицу.
Таблица PARSED_USER_ADDRESSES
Поле | Описание | Примечание |
USER_ID | Соответствующий ID из таблицы USERS | Ссылка на USERS.ID |
ADDR_BIND_TYPE_ID | Вид адреса | Ссылка на FACT_ADDR_BIND_TYPES .ID . Необязательное поле. По умолчанию - фактический адрес |
VC_ORIGINAL | Строка с адресом из USERS.ADDR. При ручном заполнении необязательно | |
VC_DISTRICT | Район | |
VC_CITY | Название населенного пункта | |
VC_CITY_TYPE | Тип населенного пункта | Краткое наименование типа региона: «г.», «пгт.»... |
VC_STREET | Название улицы | |
VC_STREET_TYPE | Тип улицы | Краткое наименование типа региона: «ул.», «п-т», «пер.»... |
VC_HOUSE | Номер дома | |
VC_BUILDING | Корпус | |
VC_CONSTRUCT | Строение | |
VC_OWNERSHIP | Владение | |
VC_ENTRANCE_NO | Подъезд | |
VC_FLOOR | Этаж | |
VC_FLAT | Квартира | |
VC_DIS_CODE | Код домофона | |
VC_CUSTOM_ADDRESS | Нестандартный адресс | |
VC_REM | Комментарий |
Таблица PARSED_EQUIP_ADDRESSES
Поле | Описание | Примечание |
EQUIP_ID | Соответствующий ID из таблицы EQUIP* | Ссылка на EQUIP.ID |
ADDR_BIND_TYPE_ID | Вид адреса | Ссылка на FACT_ADDR_BIND_TYPES .ID . Необязательное поле. По умолчанию - адрес обслуживания |
VC_ORIGINAL | Строка с адресом из EQUIP.ADDR. При ручном заполнении необязательно. | |
VC_DISTRICT | Район | |
VC_CITY | Название населенного пункта | |
VC_CITY_TYPE | Тип населенного пункта | Краткое наименование типа региона: «г.», «пгт.»... |
VC_STREET | Название улицы | |
VC_STREET_TYPE | Тип улицы | Краткое наименование типа региона: «ул.», «п-т», «пер.»... |
VC_HOUSE | Номер дома | |
VC_BUILDING | Корпус | |
VC_CONSTRUCT | Строение | |
VC_OWNERSHIP | Владение | |
VC_ENTRANCE_NO | Подъезд | |
VC_FLOOR | Этаж | |
VC_FLAT | Квартира | |
VC_DIS_CODE | Код домофона | |
VC_CUSTOM_ADDRESS | Нестандартный адресс | |
VC_REM | Комментарий |
Таблица USER_PHONES
USER_ID | Соответствующий ID из таблицы USERS* |
PHONE_TYPE_ID | Соответствующий ID вида привязки телефона к СУ из таблицы PHONE_TYPES* |
PHONE | Телефон |
REM | Примечание |
Во время повторной миграции может оказаться полезным загрузить состав абонента из выгрузки в состав уже существующего абонента в Гидре. Для этого необходимо заполнить таблицу USER_MAPPINGS
Таблица USER_MAPPINGS
USER_ID | Соответсвующий ID из таблицы USERS* |
USER_DST_CODE | Соответствующий код абонента из Гидры |
Сотрудники компании
Часто число сотрудников достаточно велико, и вводить их вручную нецелесообразно. Для этого необходимо добавить сотрудников как абонентов в таблицу USERS
, выдать доступ к приложениям с помощью NETSERV
(по аналогии с доступом в ЛК) и заполнить следующие таблицы.
Таблица DEPARTMENTS (Отделы)
Поле | Описание | |
1 | ID | Идентификатор отдела |
2 | FIRM_ID | Ссылка на фирму из FIRMS.ID |
3 | NAME | Наименование отдела |
Таблица EMPLOYEE_TYPES (типы сотрудников)
Поле | Описание | |
1 | ID | Идентификатор |
2 | NAME | Наименование |
Таблица EMPLOYEES (сотрудники)
Поле | Описание | Примечание | |
1 | ID | Идентификатор | |
2 | USER_ID | Абонент | Ссылка на USERS.ID |
3 | FIRM_ID | Фирма, сотрудником которой является абонент | Ссылка на FIRMS.ID |
4 | DEPARTMENT_ID | Отдел (может быть использован в Гидре для разграничения прав) | Ссылка на DEPARTMENTS.ID |
5 | EMPLOYEE_TYPE_ID | Тип сотрудника (может быть использован в Гидре для разграничения прав) | Ссылка на EMPLOYEE_TYPES.ID |
6 | NAME_GENITIVE | ФИО в родительном падеже | |
7 | APPOINTMENT | Должность | |
8 | APPOINTMENT_GENITIVE | Должность в родительном падеже | |
9 | ACT_AUTHORITY | Действует на основании | |
10 | TAB_NO | Табельный номер | |
11 | D_BEGIN | Дата принятия на работу | |
12 | D_FIRE | Дата увольнения | |
13 | REM | Комментарий |