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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.04.2021, 16:18   #1  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от mazzy Посмотреть сообщение
но обрати внимание, что в вопросе было "передавать", а ты постоянно отвечаешь "запрашивать"
ты считаешь, что это одинаковые действия?
Нет, не считаю, действия действительно разные. Я считаю что это не царское (издателя) дело пихать (передавать) данные во всех подписчиков число которых в общем случае может превышать единицу. Иногда может быть оправдано, но в общем предпочел бы чтобы этим сам подписчик или брокер занимался. Можешь считать это вкусовщиной, настаивать не буду
Цитата:
А как ты представляешь себе синхронизацию таблиц?
Я наверное не понял вопрос. Упрощенно - издатель публикует данные (все или инкремент), подписчик читает и овновляет свою локальную копию (в том виде, в котором он может с ней эффективно работать)
Цитата:
Что с RecId делать?
Снова не понял вопрос, потому ответ будет дурацкий - по классику, чаще мыть
Цитата:
Если чуть экстраполировать вопрос до как "правильно регулярно передавать много элементов коллекции", то ответ только один - change data capture. Добро пожаловать во взрослый мир
Я всегда немного смущаюсь когда начинают сыпать названиями продуктов и аббревиатурами. Поэтому просто напомню что AIF в 2012 (за 2009 не скажу, не уверен) вполне себе умеет change tracking "из коробки" и отойду в сторонку, послушаю остальных
__________________
-ТСЯ или -ТЬСЯ ?
Старый 06.04.2021, 16:46   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Сообщение от Vadik Посмотреть сообщение
Снова не понял вопрос, потому ответ будет дурацкий
Дело в том, что сторонние решения реплицируют таблицу или частично (часть полей), но тогда с системе B поле RecId будет пустое, или целиком, но тогда в системе B поле RecId будет такое же, как и в системе А, что некорректно.

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

С Уважеинием,
Георгий
Старый 06.04.2021, 17:44   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vadik Посмотреть сообщение
Нет, не считаю, действия действительно разные. Я считаю что это не царское (издателя) дело пихать (передавать) данные во всех подписчиков число которых в общем случае может превышать единицу. Иногда может быть оправдано, но в общем предпочел бы чтобы этим сам подписчик или брокер занимался.
А ты в этом смысле понимаешь слово передать.
Нет, я не имел в виду транспортный уровень.

Да, надо было использовать глагол "отправить"
вопрос звучал бы "как правильно отправить".

Я имел в виду, что Аксапта (как endpoint) инициирует процесс подготовки и отправки данных в другую Аксапту (другой endpoint). В WCF это означает Аксапта должна заполнить коллекцию с элементами и вызвать какой-нибудь осмысленный метод для этой коллекции.

для какого-нибудь другого брокера это будет нечто похожее.
Аксапта готовит данные в специальном формате и вызывает что-нибудь осмысленное для этих данных.

И WCF, и другие брокеры, насколько я знаю, все имеют ограничение на размер сообщения. Размер сообщения меньше, чем размер всех элементов.

вопрос - как правильно готовить, чтобы отправить (передать) свои данные другому endpoint.

современный правильный ответ - использовать потоки.
но в Аксапте нет потоков.

какой способ отправить много элементов коллекции является правильным для Аксапты?
__________________
полезное на axForum, github, vk, coub.
Старый 21.04.2021, 22:47   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от mazzy Посмотреть сообщение
Я имел в виду, что Аксапта (как endpoint) инициирует процесс подготовки и отправки данных в другую Аксапту (другой endpoint). В WCF это означает Аксапта должна заполнить коллекцию с элементами и вызвать какой-нибудь осмысленный метод для этой коллекции.

для какого-нибудь другого брокера это будет нечто похожее.
Аксапта готовит данные в специальном формате и вызывает что-нибудь осмысленное для этих данных.

И WCF, и другие брокеры, насколько я знаю, все имеют ограничение на размер сообщения. Размер сообщения меньше, чем размер всех элементов.

вопрос - как правильно готовить, чтобы отправить (передать) свои данные другому endpoint.

современный правильный ответ - использовать потоки.
но в Аксапте нет потоков.

какой способ отправить много элементов коллекции является правильным для Аксапты?
Я может чего-то не понимаю, но если в самой Аксапте нет потоков, а все остальное устраивает, то нужно решить только два технических вопроса:
- Как из первой аксапты писать сообщения в исходящий поток WCF?
- Как во второй аксапте читать сообщения из входящего потока WCF?

Как эта задача решается на .net: https://weblogs.asp.net/cibrax/strea...rred-execution

Если непосредственно из аксапты нельзя это повторить, то наверняка можно сделать сборку-адаптер, который будет удобно использвать из аксапты.
Нет?
Старый 21.04.2021, 23:08   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
...то нужно решить только два технических вопроса:
именно поэтому в вопросе нет слова поток (stream).
нет слова поток, чтобы не ограничивать возможные ответы.

есть ли еще какой-нибудь другой способ?

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Если непосредственно из аксапты нельзя это повторить, то наверняка можно сделать сборку-адаптер, который будет удобно использвать из аксапты.
Нет?
наверняка можно.
почему вы считаете этот способ правильным?

===========
давайте я повторю вопрос в безнадежной попытке:

как правильно передать 100500 элементов коллекции через WCF или любой другой брокер в ax2012,ax2009?
__________________
полезное на axForum, github, vk, coub.
Старый 21.04.2021, 23:36   #6  
Skvorcal is offline
Skvorcal
Участник
 
36 / 10 (1) +
Регистрация: 16.08.2010
Цитата:
Сообщение от mazzy Посмотреть сообщение
давайте я повторю вопрос в безнадежной попытке:

как правильно передать 100500 элементов коллекции через WCF или любой другой брокер в ax2012,ax2009?
Напомнило анекдот...

Цитата:
Удар головой — штанга!
Еще удар головой — штанга!
Опять удар головой — снова штанга!!!....
Дайте ему наконец мяч или как-нибудь прекратите эту истерику!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Denis Trunin's Blogs: Examples of AX2012/ AX2009 performance problems Blog bot DAX Blogs 0 12.01.2020 05:02
Перенос и адаптация кода с Ax2009 на Ax2012 R3 matew DAX: Прочие вопросы 10 23.01.2015 19:52
как передать значение из диалога в форму, вызываемую через menuItem? алька DAX: Программирование 9 25.06.2007 16:46
Передать контейнер в job через COM sao DAX: Программирование 5 21.02.2006 19:34
Как в параметрах подпрограммы передать массив элементов. Yuri Safronov DAX: Программирование 3 14.10.2002 16:35

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

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

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