В студии - репликация Navision с помощью средств MS SQL Server.
Добрый день!
Рассылка ненадолго уходила в астрал по «техническим» причинам, сейчас самое время возобновить это полезное начинание.
Последнее время многих (в т.ч. меня самого) волнует тема репликации – а именно ее реализация средствами SQL Server. И тут
как раз кстати пришло письмо Максима Репина (repinm@list.ru) на эту тему. Его и привожу :)
Решение задачи репликации и обмена данными средствами SQL сервера
Будем использовать сиквельную репликацию merge по топологогии звезда.
Структуру таблиц расписывать не буду – описываю идею.
Итак репликация:
Необходимые условия – все серии номеров разделены по всем базам, все книги операций разделены по базам.
В Навижне заводим табличку со списком таблиц, которые будем реплицировать, и список баз холдинга.
Создаем скрипт по генерации паблишера в рабочих базах и подписчика в центральной базе. Это сделать достаточно просто, изучив BOL.
Вуаля – репликация работает.
Обмен данными
Здесь все гораздо интереснее (отсылка документов и их прием).
В качестве транспорта будем использовать также сиквельную репликацию описанным выше способом.
Механизм:
1. Добавляем во все таблицы которые участвуют в обмене поле – Идентификатор Обмена
2. Создаем простую табличку лога обмена:
Ид Обмена
Ид базы Отправителя
Ид базы Получателя
...
Другие Поля
3. Для обмена будем использовать специальную фирму-обменник.
При нажатии на "Отправить документ" в фирме-обменнике формируются автоматически
(на основе заранее настроенных связей – как это сделать – отдельная тема)
или кодом записи документа – заголовок, строки, возможно справочники.
4. Создаем скрипт по генерации паблишера и подписчика. Здесь тонкости – каждая база будет является паблишером и
подписчиком, рабочие базы реплицируют в центральную базу обменник все записи, но подписаны только на то, что отправлено им
(для этого и нужно поле ид обмена – на них строим where-условие).
5. В результате имеем – в Базе А нажали отправить документ, выбрали базу, куда отправляем – базу Б, записи кинулись
в фирму-обменник и отреплицировались в центральную базу-обменник, далее ушли в базу Б.
6. В коде Нава (или автоматически – как это сделать – отдельная тема) прописываем процедуру приема документа.
Тут уже все зависит от конкретного проекта (расход в базе А идет в приход базы Б и т. д.
Вуаля.
Тема очень интересная, и практически готовое решение. Детали мы обдумаем, и выложим на сайте уже рабочий вариант,
который можно предложить для использования и доработки всем желающим. Присоединяйтесь!
На сегодня все. До свидания :-)
P.S. Объявление! На крупный (и не побоюсь этого слова, масштабный), долгосрочный и интересный проект (логистика) ищутся разработчики. Требования – опыт в NAV,
модификации учета. Дополнительным плюсом является знание MS SQL (T-SQL), ADO, XML, PHP.
Полная занятость, оформление по ТК. Условия обсуждаются с каждым - индивидуально. Отклики шлите на likeart@mail.ru.
P.P.S. Вам нравится наша рассылка? Тогда порекомендуйте ее своим коллегам, знакомым и друзьям, занятым в сфере NAV :-) Признание – самая лучшая благодарность :-)
С наилучшими пожеланиями,
Андрей Стрельников.
Группа «Технологии как Искусство».
Разработки в сфере Navision. Скоростные и суперскоростные оптимизации, системная интеграция.