Сегодня в выпуске читатель нашей рассылки, а по совместительству ведущий специалист отдела автоматизации бизнес-процессов
крупного международного холдинга Дмитрий Катсон (Dmitry_Katson@mail.ru)
рассказывает о своем опыте репликации в Navision.
Итак, ему слово:
Репликация в Navision средствами MS SQL Server
Хочу поделиться опытом настройки репликации на основе MS SQL Server ,
который я в свое время нигде не нашел и вымучивал по шагам, спотыкаясь буквально на каждом =)
Описывать буду основные моменты, чтобы быть хоть как-то лаконичным...
Сразу опишу ту задачу, которую необходимо было решить.
Постановка задачи
Задача: Существует много филиалов компании в разных странах, с индивидуальными планами счетов в каждой.
Также существует единый международный план счетов, принятый в головной компании.
Задача стоит в создании базы данных, куда бы сливалась финансовая информация со всех филиалов компании
в формате международного плана счетов.
Предлагаемое решение
С технической точки зрения задача решается следующим образом.
В каждой стране, где существуют филиалы компании, ставится база Navision формата SQL.
В этой базе создается столько фирм, сколько юридических лиц зарегистрировано в конкретной стране + 1.
Одна дополнительная фирма создается для сливания в нее финансовых операций в международном формате из фирм,
в рамках текущей БД.
Пишется процедура, которая посредством NAS раз в определенный промежуток времени
собирает данные и делает мэппинг плана счетов на международный.
Принадлежность конкретной операции к конкретной компании ведется в разрезе измерений. Эти действия нужно проделать для каждой страны.
В головной организации создается база Navision формата SQL, предназначенная исключительно для целей сбора в себе финансовых данных
из баз отдельных стран.
Внимание! В этой базе нужно создать компании, названия которых в точности повторяют названия дополнительных компаний
из БД отдельных стран + 1 дополнительная компания, которая служит для сливания данных из фирм,
в рамках текущей БД.
Запускается процедура, которая посредством NAS раз в определенный промежуток времени собирает данные.
Схема решения
Всю сложность организации опишем схематично:
В красных квадратах – базы данных.
В красных овалах – фирмы.
Связь между фирмами с одинаковыми названиями – репликация на основе SQL.
Связь между фирмами в рамках одной БД – процедура, которая посредством NAS раз в определенный промежуток времени собирает данные.
Теперь о самом интересном.
Настройка SQL репликации
1) Таблица в которую переливаем данные должна:
минимальное требование, не иметь полей, которых нет в таблице, из которой переливаем данные;
максимальное требование, иметь все поля, которые есть в таблице, из которой переливаем данные;
2) Существует три понятия, о которых нужно иметь представление.
Подробно про них можно почитать в справке по SQL
(«SQL Server Books Online»), а в двух словах:
дистрибуция: отвечает за отслеживание всех изменений в базе данных;
публикация: отвечает за выкладывание баз данных для скачивания данных;
подписка (субскрипция): отвечает за скачивание данных.
3) Для начала на SQL Server'е, на котором стоит международная единая база, настраиваем дистрибуцию.
Replication -> Distribution. В этой настройке нужно обозначить все сервера в каждой конкретной стране.
4) Настраиваем Публикацию на серверах отдельных стран.
Replication -> New Publication.
Тип – Transactional. Почему именно такой? На самом деле методом как раз собственных проб и ошибок.
Для сливания данных он подходит идеально.
выбираем те таблицы, которые будем реплицировать;
выбираем те поля, которые будем реплицировать.
Напоминаю требования к таблицам: обязательно нужно выбрать все поля, которые есть в итоговой таблице,
и нельзя выбирать поля, которых нет в итоговой таблице.
5) Настраиваем Subscription на SQL Server'е, на котором стоит международная единая база:
запускаем с Дистрибутора этого сервера (чтобы все подписки запускались с одного места);
настраиваем по времени, допустим, раз в час.
Вот, пожалуй, все, что вспомнилось. Если вдруг возникли какие-то вопросы, постараюсь помочь.
На сегодня все. До свидания :-)
Обещанные материалы по клиент-банкам будут чуть позднее :-)
P.P.S. На нашем сайте «Navision: технологии как Искусство»
стартовал новый раздел – «Job & Outsourcing».
В нем вы найдете свежие вакансии по Navision,
а также сможете разместить объявления о своих услугах в качестве аутсорсеров NAV (разработка, консалтинг и проч.).
Раздел только начинает заполняться, но обещает стать очень популярным.
Свои объявления присылайте нам на mailbox@naviart.ru :-)
P.P.P.S. Вам нравится наша рассылка? Тогда порекомендуйте ее своим коллегам, знакомым и друзьям, занятым в сфере NAV :-)
Признание – самая лучшая благодарность :-)
С наилучшими пожеланиями,
Андрей Стрельников.
Группа «Технологии как Искусство».
Разработки в сфере Navision. Скоростные оптимизации, системная интеграция.