AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.10.2020, 23:36   #1  
rootx is offline
rootx
Участник
 
28 / 18 (1) ++
Регистрация: 17.02.2008
Репликация таблиц двух приложений AX 2009
Здравствуйте! Вопрос к знатокам!

Имеется система в организации AX 2009, в ней все основные модули, плюс расчеты с персоналом, которые включают себя, кадровый учет, учет рабочего времени, штатное расписание и сама зарплата.

Руководство решило, вынести зарплату в отдельное приложение с отдельной базой. А все остальное: кадры, табеля, ШР, оставить в основной системе.

Теперь встает вопрос, для расчета ЗП нужны, данные по табелям, приказам, отпускам, больничным.

Какими средствами можно реплицировать данные из основной системы в в другую где только будут работать расчетчицы.
Есть таблицы которые должны будут синхронизироваться в обе стороны, это только видимо средствами самой аксапты нужно делать, разрабатывать импорт, и запуск его через пакетник..
А по таблицам, которые только в одну сторону, можно ли как то настроить синхронизацию, средствами самого SQL сервера?

Последний раз редактировалось rootx; 31.10.2020 в 00:37.
Старый 31.10.2020, 09:43   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,305 / 3538 (124) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Добрый день!
Короткий ответ: Простых средств реплицирования данных нет.
Средствами репликации SQL Server добиться чего-то можно, но 2 разных независимых канала передачи данных гарантированно дадут рассинхронизацию и возможную несогласованность в данных. Скажется ли она на системе или нет - это уже другой вопрос, но дополнительных проблем добавит.

Если более подробно - то при неограниченном времени и бюджете возможно сделать всё.
Здесь придётся описывать и продумывать. Думаю, что задача где-то не меньше, чем на 3-4 человеко-месяца (был аналогичный опыт. Пока всё описал - руководство приняло решение свернуть задачу, т.к. из долгого описания следует долгая разработка и не менее долгое тестирование. Плюс чем сложнее задача - тем сложнее последующая поддержка. После того, как это сложили и перевели в деньги - руководство сказало "ну нах").
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: mazzy (2), rootx (1).
Старый 31.10.2020, 11:33   #3  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
886 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Цитата:
Сообщение от rootx Посмотреть сообщение
Руководство решило вынести зарплату в отдельное приложение с отдельной базой.
Смысл?
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Старый 31.10.2020, 12:13   #4  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Когда-то у нас на одном из проектов тоже было две Аксапты, во второую из которых был вынесенен один относительно независимый модуль. Связь между системами была односторонняя, на уровне десятка справочников. Реализованное решение - во втором приложении в АОТе эти справочники являются обычными таблицами, а на уровне SQL вместо этого они подменены вьюшами, "смотрящими" на первое приложение. Справочники на втором приложении read only, селектам все равно откуда селектить, все работает уже больше десятка лет. Есть, разумеется, небольшие нюансы с синхронизацией БД на этом приложении, но и все.
За это сообщение автора поблагодарили: mazzy (2), AlGol (2).
Старый 31.10.2020, 13:20   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от rootx Посмотреть сообщение
Какими средствами можно реплицировать данные из основной системы в в другую где только будут работать расчетчицы.
Есть таблицы которые должны будут синхронизироваться в обе стороны
репликация - это слишком требовательный термин.

можно ли свести к загрузке данных из другой Аксапты?
можно ли двухстороннюю репликацию свести к загрузке некоторых таблиц в одну сторону, а некоторых - в другую?

если да, то загружайте из другой базы при помощи штатного Statement+ResultSet
(или расширенного https://github.com/mazzy-ax/SysResultSet)

или (если сильны в администрировании SQL) попробуйте:
Цитата:
Сообщение от oip Посмотреть сообщение
Реализованное решение - во втором приложении в АОТе эти справочники являются обычными таблицами, а на уровне SQL вместо этого они подменены вьюшами, "смотрящими" на первое приложение. Справочники на втором приложении read only, селектам все равно откуда селектить, все работает уже больше десятка лет. Есть, разумеется, небольшие нюансы с синхронизацией БД на этом приложении, но и все.
если жеж нужна именно репликация,
то учтите, что разные аксапты могут иметь разные уникальные индексы, разные constraints, разные настройки каскадного удаления, разные компании, разные виртуальные компании. и даже если вы волевым решением скажате "у нас все одинаково", у вас все равно будут разные recId и разные настройки в период обновления функционала.

в условиях разного окружения репликация очень и очень непростая задача.
попробуйте свести к импорту из внешней базы
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: rootx (1).
Старый 31.10.2020, 13:52   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Здесь придётся описывать и продумывать. Думаю, что задача где-то не меньше, чем на 3-4 человеко-месяца (был аналогичный опыт. Пока всё описал - руководство приняло решение свернуть задачу, т.к. из долгого описания следует долгая разработка и не менее долгое тестирование. Плюс чем сложнее задача - тем сложнее последующая поддержка. После того, как это сложили и перевели в деньги - руководство сказало "ну нах").
Кстати тут еще стоит учесть изменение стоимости лицензий(если все делать правильно ). Т.е. на фоне стоимости лицензий для АХ, SQL 3-4 месяца работы это довольно маленький процент
За это сообщение автора поблагодарили: sukhanchik (2).
Старый 31.10.2020, 14:26   #7  
rootx is offline
rootx
Участник
 
28 / 18 (1) ++
Регистрация: 17.02.2008
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Смысл?
Смысл сего действия понятен только руководству видимо.
Старый 31.10.2020, 14:36   #8  
rootx is offline
rootx
Участник
 
28 / 18 (1) ++
Регистрация: 17.02.2008
Спасибо, за мысли, идеи. Стало примерно понятно, что нужно делать.
Старый 31.10.2020, 15:25   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,305 / 3538 (124) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от rootx Посмотреть сообщение
Смысл сего действия понятен только руководству видимо.
Из моей практики такие мысли руководства рождались из идеи безопасности, т.е. желания в час Х отключить одну базу так, чтобы это не повиляло бы на работу другой базы, но при этом были бы видны только "разрешённые" данные, которые должны формироваться во второй базе. В данном примере прослеживается желание вынести из базы "зарплатные" данные
Цитата:
Сообщение от trud Посмотреть сообщение
Т.е. на фоне стоимости лицензий для АХ, SQL 3-4 месяца работы это довольно маленький процент
Обычно об этом не задумываются, когда мысли рождаются из идеи безопасности ("мягкое место" жжёт в другом месте)

Просто когда до руководства доходит цена такого решения - то приходит понимание, что "овчинка" не стоит "выделки"
__________________
Возможно сделать все. Вопрос времени
Старый 31.10.2020, 16:06   #10  
rootx is offline
rootx
Участник
 
28 / 18 (1) ++
Регистрация: 17.02.2008
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Из моей практики такие мысли руководства рождались из идеи безопасности, т.е. желания в час Х отключить одну базу так, чтобы это не повиляло бы на работу другой базы, но при этом были бы видны только "разрешённые" данные, которые должны формироваться во второй базе. В данном примере прослеживается желание вынести из базы "зарплатные" данные

Обычно об этом не задумываются, когда мысли рождаются из идеи безопасности ("мягкое место" жжёт в другом месте)

Просто когда до руководства доходит цена такого решения - то приходит понимание, что "овчинка" не стоит "выделки"
Да я тоже понимаю что хотят безопасного доступа к таким данным, мне не видна логика разделения кадров, шр и самих расчетов.
Если бы все что касается персонала было в другой аксапте то тут, проблем было бы намного меньше, импортировать в основное приложение только карточку сотрудников для модулей ос и уз, подотчетных лиц. Да и сформированные проводки при закрытие ЗП. А тут другое..
За это сообщение автора поблагодарили: sukhanchik (2).
Старый 13.11.2020, 12:12   #11  
rootx is offline
rootx
Участник
 
28 / 18 (1) ++
Регистрация: 17.02.2008
Такой еще вопрос возник при репликации средствами самого MS SQL сервера, на таблицах обаятельно должен быть первичный ключ.

Если поставить первичным ключем recid например через сервер, то после синхронизации таблицы в аоте он слетает.

Можно ли как-то поставить его через саму аксапту?
Старый 13.11.2020, 12:21   #12  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от mazzy Посмотреть сообщение
если жеж нужна именно репликация,
Если нужна репликация, то гуглите Change Data Capture.

Так получилось, что сейчас в частности, я и CDC занимают. Но это - очень дорогие решения. Да, есть и 2х сторонняя репликация.
Вопрос, имеет ли смысл из пушки по SQL?

С Уважением,
Георгий
За это сообщение автора поблагодарили: rootx (1).
Старый 13.11.2020, 14:31   #13  
rootx is offline
rootx
Участник
 
28 / 18 (1) ++
Регистрация: 17.02.2008
Цитата:
Сообщение от rootx Посмотреть сообщение
Такой еще вопрос возник при репликации средствами самого MS SQL сервера, на таблицах обаятельно должен быть первичный ключ.

Если поставить первичным ключем recid например через сервер, то после синхронизации таблицы в аоте он слетает.

Можно ли как-то поставить его через саму аксапту?

Нашел все делается через свойство таблицы, такие как ClusterIndex, PrimaryIndex, CreateRecIdIndex
Старый 23.11.2020, 12:23   #14  
vmoskalenko is offline
vmoskalenko
Участник
Аватар для vmoskalenko
 
145 / 334 (12) ++++++
Регистрация: 25.01.2007
Адрес: Toronto
Не делайте РЕПЛИКАЦИЮ таблиц. Делайте ИНТЕГРАЦИЮ двух систем!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axforum blogs: Квест: Подружим Dynamics Ax 2009 Sp1 RU7 c SharePoint Foundation 2010 Blog bot DAX Blogs 4 16.10.2017 17:50
emeadaxsupport: AX Performance - Analyzing key SQL Server configuration and database settings Blog bot DAX Blogs 0 28.09.2015 14:11
axinthefield: Compatibility Testing for Microsoft Dynamics AX Blog bot DAX Blogs 0 23.06.2012 02:26
emeadaxsupport: Overview of AX build numbers Blog bot DAX Blogs 3 24.05.2012 19:44
gl00mie: Dynamics AX 2009 Guides and White Papers Blog bot DAX Blogs 0 13.08.2008 20:09

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:51.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.