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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.01.2021, 23:45   #1  
axm2017 is offline
axm2017
Участник
 
1,764 / 293 (13) ++++++
Регистрация: 15.05.2017
Цитата:
Сообщение от trud Посмотреть сообщение
Могу ошибаться, но припоминаю проблемы типа что при изменении LOGISTICSELECTRONICADDRESS (именно в момент вставки), связи с клиентом там еще не будет, т.е. DIRPARTYLOCATION создастся позже, т.е. надо именно искать место в классах где это меняется, что трудоемко.
В транзакции?
Если да то можно сделать пакетник который бегает по измененным с прошлого прохода записям LOGISTICSELECTRONICADDRESS скидывая изменения в соответствующую табличку.
Старый 13.01.2021, 00:33   #2  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от axm2017 Посмотреть сообщение
В транзакции?
Если да то можно сделать пакетник который бегает по измененным с прошлого прохода записям LOGISTICSELECTRONICADDRESS скидывая изменения в соответствующую табличку.
Да, в транзакции. А как получить измененные с прошлого прохода записи? Причем таблиц будет 8
Цитата:
Гонять запросы "а что там поменялось в 6М клиентов" между двумя системами чуть ли не ежесекундно - не понимаю кому и зачем это нужно
Ну вроде требование логичное, я так понимаю вторая система - это система в конкретном офисе(локальный веб сайт), когда тебе меняют что-то в АХ, изменения должны как можно скорее отобразиться в этой системе
для этого каждая из них днем когда работают люди дергает хранимую процедуру(дай мне измененные данные за последнюю минуту), как правило они возвращают пусто или 1-2 записи
Цитата:
Да, понимаю что звучит как черная магия но - будет.
скорее всего outer join заменится на inner join. Только опять же проблема что таблиц 8, получается если использовать changetracking будет 8 различных union, есть некоторая вероятность что это перейдет в полный скан на каком -то этапе
Старый 13.01.2021, 08:24   #3  
axm2017 is offline
axm2017
Участник
 
1,764 / 293 (13) ++++++
Регистрация: 15.05.2017
Цитата:
Сообщение от trud Посмотреть сообщение
Да, в транзакции. А как получить измененные с прошлого прохода записи? Причем таблиц будет 8
Типичное ( во всяком случае видел реализации подобной идеи на пакете)

Параметр - время запуска

При запуске процесса выбираем все измененные записи от параметра до текущего момента (ессно при включенном modified time).

Далее после обработки сохраняем в параметре текущее время.

Обработку табличек можно распараллелить: не думаю что в таблицах идет какой то вал массовых изменений.

Последний раз редактировалось axm2017; 13.01.2021 в 08:28.
Старый 13.01.2021, 15:19   #4  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от axm2017 Посмотреть сообщение
Типичное ( во всяком случае видел реализации подобной идеи на пакете)

Параметр - время запуска

При запуске процесса выбираем все измененные записи от параметра до текущего момента (ессно при включенном modified time).

Далее после обработки сохраняем в параметре текущее время.
Так же не будет работать. Ну т.е. у вас началась транзакция, клиент обновился, далее она к примеру идет час, и только после этого вы увидите вашего клиента(у него будет время обновления час назад). Если ваш пакетник будет запускаться чаще - вы его просто не увидите, так как время в пакете уйдет вперед
Старый 13.01.2021, 15:37   #5  
axm2017 is offline
axm2017
Участник
 
1,764 / 293 (13) ++++++
Регистрация: 15.05.2017
Цитата:
Сообщение от trud Посмотреть сообщение
Так же не будет работать.
Задайте период x -1 час или -1 день раз такие длинные по времени транзакции из общих соображений количество изменений для данных таблиц все одно невелико.
Можно и в лог измененных записей поиграть конечно.
.

Последний раз редактировалось axm2017; 13.01.2021 в 15:40.
Старый 13.01.2021, 12:49   #6  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от trud Посмотреть сообщение
Ну вроде требование логичное, я так понимаю вторая система - это система в конкретном офисе(локальный веб сайт), когда тебе меняют что-то в АХ, изменения должны как можно скорее отобразиться в этой системе. Для этого каждая из них днем когда работают люди дергает хранимую процедуру(дай мне измененные данные за последнюю минуту), как правило они возвращают пусто или 1-2 записи
Найти изменения в данных 6М клиентов - это недешевая операция с точки зрения затраченных ресурсов. Делать это раз в минуту - это достаточно дорого. Делать это 10 раз в минуту для 10 групп клиентов - примерно раз в 10 дороже, так как сам по себе наложеный фильтр запрос сильно дешевле не делает, а количество запросов растет

Не думаю что непрерывно вхолостую дрючить источник (AX) запросами с сайта десятки раз в минуту это оптимальное решение. Как мне кажется, логичнее было бы перехватывать изменения в самом источнике и выталкивать сообщения в очередь (AIF outbound queue, MQ, Service Bus, еще что-то)

Из спортивного интереса, я бы позадавал вопросы о том сколько клиентов обновляется в час / сутки (средние и пиковые значения), и что ужасного может произойти если изменения опубликуются скажем в среднем в течение получаса (опрашиваем CT раз в час)
__________________
-ТСЯ или -ТЬСЯ ?

Последний раз редактировалось Vadik; 14.01.2021 в 10:53.
Теги
aif, ax2012, change tracking, интеграция, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX2012 Общие справочники поставщиков и клиентов PTG DAX: Функционал 2 11.06.2015 15:39
Импорт адресов для существующих клиентов и поставщиков IKA DAX: Программирование 0 10.12.2013 21:04
ax 3.0 Экспорт справочников во внешнюю систему, по какому ключу связаться? Shakr DAX: Программирование 2 11.11.2008 11:34
Сергей Герасимов: О технической поддержке клиентов по продуктам Microsoft Dynamics Blog bot DAX Blogs 4 13.02.2007 14:58
Коды клиентов в CRM - проблема Zabr DAX: Функционал 5 01.12.2003 12:41

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

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

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