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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2006, 13:53   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sparur Посмотреть сообщение
Реализовываю синхронизацию различных таблиц м/у компаниями. Все это делаю путем модификации табличных методов insert, update, delete в компании источнике.
Как только вы это делаете, то методы групповой обработки перестают работать.
Читайте про recordset_insert, recordset_update, delete_from

Как только вы это делаете, то управление транзакциями сильно усложняется.

И кроме того, самое главное: вы все равно не гарантированы от различий в разных компаниях. Во-первых, есть методы doInset, doUpdate, doDelete. Во-вторых, теоретически можно изменить что-нибудь напрямую в SQL.

Поэтому, пересмотрите подход к синхронизации.
Ваш подход увеличивает количество гемора и не дает никаких гарантий.

Прямой и штатный способ "синхронизации" - отказаться от синхронизации и перейти к виртуальным компаниям (читайте доку про виртуальные компании).

Цитата:
Сообщение от sparur Посмотреть сообщение
dictField = new dictField(_tableRec.TableId,dt.fieldCnt2Id(i));
Есть метод Global::buf2buf(from,to)
Юзайте его.

Вы не обрабатываете array-поля. Это значит, что такие поля (например, dimension) будут копироваться целиком.

Цитата:
Сообщение от sparur Посмотреть сообщение
а вот "проблемка" с update. Не охота также тупо перебирать ВСЕ поля таблицы, переприсваивать и потом апдейтить.
А смысл? SQL все равно будет тупо апдейтить все поля.
Впрочем, попробуйте поработать с orig(), если очень хочется.

Цитата:
Сообщение от sparur Посмотреть сообщение
код как то криво вставился уж простите меня грешного.
Есть тег [xpp]...код на X++...[/xpp]
В панели инструментов самая правая иконка позволяет вводить этот тег.
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 14:06   #2  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от mazzy Посмотреть сообщение
Как только вы это делаете, то методы групповой обработки перестают работать.
Читайте про recordset_insert, recordset_update, delete_from

Как только вы это делаете, то управление транзакциями сильно усложняется.

И кроме того, самое главное: вы все равно не гарантированы от различий в разных компаниях. Во-первых, есть методы doInset, doUpdate, doDelete. Во-вторых, теоретически можно изменить что-нибудь напрямую в SQL.

Поэтому, пересмотрите подход к синхронизации.
Ваш подход увеличивает количество гемора и не дает никаких гарантий.
ммм... вери бэд... спасибо за наводку будем поднимать вопрос...

Цитата:
Сообщение от mazzy Посмотреть сообщение
Прямой и штатный способ "синхронизации" - отказаться от синхронизации и перейти к виртуальным компаниям (читайте доку про виртуальные компании).
вряд ли получится перейти к виртуализации, есть определенные нюансы
Цитата:
Сообщение от mazzy Посмотреть сообщение
Есть метод Global::buf2buf(from,to)
Юзайте его.
чем он лучше моего метода?
Цитата:
Сообщение от mazzy Посмотреть сообщение
Вы не обрабатываете array-поля. Это значит, что такие поля (например, dimension) будут копироваться целиком.
ага, так оно и есть как говорится что хотели, то и получат (нужна точная копия записи в др компании)

Цитата:
Сообщение от mazzy Посмотреть сообщение
Есть тег [xpp]...код на X++...[/xpp]
В панели инструментов самая правая иконка позволяет вводить этот тег.
и еще раз респект - буду знать
Старый 11.12.2006, 14:11   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sparur Посмотреть сообщение
чем он лучше моего метода?
вызывая buf2buf() вы пишете меньше кода.
ваш код будет проще понять и отлаживать.
в вашем коде будет меньше ошибок.

Либо я не понял вопроса, либо одно из двух.
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 14:26   #4  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от mazzy Посмотреть сообщение
вызывая buf2buf() вы пишете меньше кода.
ваш код будет проще понять и отлаживать.
в вашем коде будет меньше ошибок.

Либо я не понял вопроса, либо одно из двух.
Вопрос Вы поняли... Будем юзать поиск по форуму, дабы найти примеры использования а то что то я как то слабо представляю как он мне в моей конкретной ситуации сможет помочь...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ре-синхронизация системных таблиц на основании AOT kashperuk DAX: Администрирование 7 28.05.2010 16:36
Владельцы таблиц в БД аксапты AxaptaUser DAX: Администрирование 11 23.05.2007 18:33
Синхронизация таблиц при изменении EDT z_av DAX: Программирование 1 16.12.2004 11:55
синхронизация таблиц andreynikolai DAX: Программирование 3 11.12.2003 16:22
Синхронизация таблиц Андре DAX: Программирование 6 12.04.2002 10:29
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 17:22.