Отправляет email-рассылки с помощью сервиса Sendsay

Navision - советы и секреты

  Все выпуски  

В студии - репликация 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. Скоростные и суперскоростные оптимизации, системная интеграция.

www: http://naviart.ru
e-mail: mailbox@naviart.ru.

-------
Что такое главное?


В избранное