18.02.2005, 12:20 | #1 |
Участник
|
Репликация баз в Navision
Добрый день всем!
Существует две отдельные базы Необходимо чтобы В первой создавались заказы - продажа, и они реплицировались во вторую базу. Во второй базе эти заказы обрабатываются и учитываются. Если какие то изменения произошли в заказах второй базы то эти изменения надо среплицировать обратно в первую базу. Плюс необходимо учтеные операции во второй базе реплицировать в первую базу. Как все это осуществить оптимальным образом и сохраняя целостность баз? Navision на MS SQL Возможно ли воспользоватся репликацией самого MS SQL, она работает надежней и проще? Кто сталкивался с подобным поделитесь опытом. |
|
18.02.2005, 12:27 | #2 |
NavAx
|
Про средства MSSQL не скажу.
А средствами Навыжн все вполне делается. С помощью волшебной функции CHANGECOMPANY пишется механизм, копирующий заказы из одной фиромы в другую. Потом пишется что-нибудь вроде периодического задания, которое иногда запускается и копирует заказы из первой фирмы во вторую. Во второй фирме можно по-разному сделать. Наверное, проще будет нарисовать в у заказов некую галочку, которая будет выставляться в случае, если заказ был изменен во второй фирме, после чего опять же каким-нибудь периодическим заданием можно изменять все соответствующий заказы в первой фирме. Если периодическое задание не устраивает, то можно на OnModify повесит некий код (в случае, если запись изменилась во второй фирме - лезть в первую фирму и делать соответствующие изменения). |
|
18.02.2005, 12:33 | #3 |
Участник
|
TO Yoil
Mich обрисовал ситуацию, где ДВЕ РАЗНЫХ базы, а не одна с несколькими фирмами. Здесь ситуация посложнее будет. |
|
18.02.2005, 12:34 | #4 |
Участник
|
Базы территориально разделены, находятся на разных серверах, какнал только через интернет.
Фактически задача стоит перетекания данных с одного сервера на другой в обоих направлениях как для учтеных операций, так и не для учтеных. Фирмы в рамках одного сервера это не подходит. Если с такой стороны подойти то как решит проблему? |
|
18.02.2005, 12:43 | #5 |
NavAx
|
Извиняюсь, невнимательно прочитал.
Ну, например можно сваливать данные на фтп-сервер. Запустить NAS, повесить на него репликационную механизьму. С первой базы, скажем, ровно в 10, 14 и 18 часов некие датапорты выгружают заказы, у которых не стоит галка "выгружено во вторую базу" в текстовые файлы, кидают их на фтп-сервер. Или по почте отправляют. Или еще чего недоброе с ними творят. На второй базе ровно в 12, 16 и 20 часов другие датапорты хавают пришедшие файлы (с фтп, из почты или еще как-нибудь) и создают на их основе заказы. Система подтверждения может быть разной - можно сразу по отправке заказов из первой базы ставить им галку "выгружено во вторую базу", можно после создания во второй базе высылать обратно на первую базу какую-то информацию, можно еще чего учудить. При изменении заказа во второй базе, опять же, ставить в заказ галку "изменен во второй базе", опять же по расписанию выгружать измененные заказы датапортами, отправлять в первую базу и т.п. З.Ы. насчет перетекания учтенных операций - а каких именно учтенных операций? Если, например, в первой базе заказ учли, получилась тонна проводок, да еще накладная, да еще счет-фактура, то проще, наверное, воссоздать неучтенный заказ (а то и просто заставить Навыжн не удалять заказы при учете), отправить во вторую базу и еще раз учесть уже там, чем переправлять во вторую базу кучу инфы, которая получается после учета заказа. |
|
18.02.2005, 12:55 | #6 |
Участник
|
А все сопустсвующие справочники? Например, номенклатура, клиенты.
|
|
18.02.2005, 13:08 | #7 |
NavAx
|
ну если очень хочется - можно и справочники реплицировать.
Завести и туда галки "выгружено во вторую базу", "изменено во второй базе" и вперед. С другой стороны, можно и "административно" это решать. Т.е., например, завелся новый клиент - завели его в первой базе, товарищам, работающим со второй базой манагер, отвечающий за нового клиента, послал письмо, мол, завелся такой-то клиент. З.Ы. Просьба больно не пинать, я ничего не продаю, я просто пытаюсь помочь, в связи с чем пытаюсь двинуть возникшую мысль |
|
18.02.2005, 13:09 | #8 |
Участник
|
Я думаю можно настроить прямой канал между SQL серверами это не проблема.
Вывод Заказы катаются между двумя серверами, и их учитывают на обоих серверах, это учет меньшей кровью, иначе после учета необходимо реплицировать все таблицы которые зацепил учет, от расходной накладной и до счет фактур и заканчивая бухгалтерскими проводками проводками и списание себестоимости. |
|
18.02.2005, 13:16 | #9 |
Участник
|
Репликацию между двумя SQL серверами поверял для Заказов, работает нормально,
но вот для учтеных заказов реплицировать все затронутые таблицы наступает конфликт индексов и т.п. как с этим боротся , пока не знаю? |
|
18.02.2005, 13:17 | #10 |
NavAx
|
Да не надо их после учета реплицировать
Что мешает восстановить неучтенный заказ и отправить во вторую базу или вообще не удалять заказы при учете? Например, для заказов продажи нужно просто найти в 80-м кодъюните комментарий // Modify/delete sales header and sales lines и аккуратненько порыться в коде, который после комментария идет. |
|
18.02.2005, 13:37 | #11 |
Участник
|
Спапсибо за все советы,
буду думать дальше. |
|
18.02.2005, 15:59 | #12 |
Аксакал в отставке
|
Господа, думаю прежде всего надо разобраться какие процессы управления автоматизированы и функционируют в обеих инсталляциях Navision на этих серверах.
Обмен - это скорее методологическая задача. Смысл просто переливания из пустого в порожнее?
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|
18.02.2005, 17:46 | #13 |
NavAx
|
О! Консультант пришел
|
|
18.02.2005, 19:54 | #14 |
Аксакал в отставке
|
Цитата:
Изначально опубликовано Yoil
О! Консультант пришел Сначала ТЗ, написанное консультантом, а уж потом кодирование.
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес"). |
|