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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.06.2023, 20:33   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,964 / 3250 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Вот это вот утверждение сильно зависит от компании. Потому что идентификаторы объектов могут храниться в большом количестве таблиц и в большом количестве записей.
Ну вот я и исхожу из того, что время на обработку идентификаторов в базе модели будет меньше чем перебивка в бизнес базе. Плюс если делать инкрементную обработку (только по объектам созданным с прошлого переноса) то еще быстрее.

Насчет Query не понял вашу мысль. Вы имеет в виду что бинарные объекты могут в себе содержать ссылки по идентификаторам и их тоже надо обрабатывать ? Если они хранятся в бинарном виде в базе с бизнесданными (SysLastValue, Batch.Parameters, etc) то тем лучше для нас - нам не придется их трогать. А если в модели, то это может быть проблемой. Придется пересоздать / обновить. Но с таким примером я пока не сталкивался.

Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Перебить все данные в условном SysDataBaseLog - это явно небыстро.
Да! Так мы и не будем этого делать при предлагаемом подходе. Profit !
Старый 15.06.2023, 21:25   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,333 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
Насчет Query не понял вашу мысль. Вы имеет в виду что бинарные объекты могут в себе содержать ссылки по идентификаторам и их тоже надо обрабатывать ? Если они хранятся в бинарном виде в базе с бизнесданными (SysLastValue, Batch.Parameters, etc) то тем лучше для нас - нам не придется их трогать.
Да, я имел в виду, что Query.pack() хранится в бинарном виде с бизнес-данными и содержит в себе ID таблиц и полей.
Да, их можно не трогать, но тогда мы не сможем (условно на DEV) увидеть распакованные эти бинарные данные. Безусловно, конкретно для Batch / SysLastValue / SysDataBaseLog эта информация может быть и не нужна, но теоретически могут быть ситуации, когда для целей разработки эта информация может понадобиться. Собственно именно поэтому я ратую за полную копию данных и приложения - в этом случае гарантированно получается полная копия рабочей среды и любые какие-бы ни были задачи для разработчиков - они всегда заведомо могут быть реализованы на данных DEV-системы в условиях, максимально приближённых к реальности
__________________
Возможно сделать все. Вопрос времени
Старый 15.06.2023, 22:21   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,964 / 3250 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Да, их можно не трогать, но тогда мы не сможем (условно на DEV) увидеть распакованные эти бинарные данные.
Мне кажется здесь какое то недопонимание.
Мы не сможем их увидеть распакованными на DEV если идентификаторы в DEV модели отличаются от идентификаторов Prod-модели.
Так я с этого и начал обсуждение - чтобы выравнивать идентификаторы DEV и PROD моделей. Если их выровнять как я предложил то и проблем с распаковкой не будет.
Старый 15.06.2023, 23:03   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,333 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
Мне кажется здесь какое то недопонимание.
Мы не сможем их увидеть распакованными на DEV если идентификаторы в DEV модели отличаются от идентификаторов Prod-модели.
Так я с этого и начал обсуждение - чтобы выравнивать идентификаторы DEV и PROD моделей. Если их выровнять как я предложил то и проблем с распаковкой не будет.
А... я понял... Т.е. мы обновляем БД PROD-> DEV, а ID-шники меняем в DEV_model на "продовские"

Если так - то всё ок. Действительно у меня было недопонимание.

Единственное что в таком случае интересно... так это ситуация типа внешних кодов ExtCode*-таблицы, когда в релейшне прописывается код таблицы. Я то в таких случаях как делал.... Писал код на DEV, затем переносил на STAGE и там менял ID-шники таблицы в Relation. Затем STAGE "уезжал" на PROD, а когда DEV (приложение + БД) заменялось полностью с PROD-а - то само собой - эта проблема меня уже не беспокоила.

В Вашем скрипте - эта ситуация точно не учтена и изменение IDшников объектов не поменяет значения в релейшнах. Ну... насколько я понял. Верно?
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 15.06.2023 в 23:07.
Старый 16.06.2023, 14:40   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,964 / 3250 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Т.е. мы обновляем БД PROD-> DEV, а ID-шники меняем в DEV_model на "продовские"
Да, именно так.

Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Единственное что в таком случае интересно... так это ситуация типа внешних кодов ExtCode*-таблицы, когда в релейшне прописывается код таблицы. Я то в таких случаях как делал.... Писал код на DEV, затем переносил на STAGE и там менял ID-шники таблицы в Relation. Затем STAGE "уезжал" на PROD, а когда DEV (приложение + БД) заменялось полностью с PROD-а - то само собой - эта проблема меня уже не беспокоила.
...
В Вашем скрипте - эта ситуация точно не учтена и изменение IDшников объектов не поменяет значения в релейшнах. Ну... насколько я понял. Верно?
Если там использован тип связи "Field fixed" или "Related field fixed" то, конечно, ничего не поменяется и будет проблема. Тут вы правы.

Но, если связь сделана как ExtCode* табличках (а там использован Normal relation, просто связь идет на фиктивное поле TableId связанной таблички) то думаю, что все будет хорошо. Надо будет протестировать конечно. Но должно быть норм.
А зачем вы явно константу ставили вместо ссылки на поле TableId ? Какой-то баг обходили ?

Скрипт на самом деле не совсем мой. Я просто взял стандартный код и исправил в нем ошибки. Но конечно сильно все перепахал. Так что как бы и мой теперь.
Старый 16.06.2023, 16:07   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,333 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
Но, если связь сделана как ExtCode* табличках (а там использован Normal relation, просто связь идет на фиктивное поле TableId связанной таблички) то думаю, что все будет хорошо. Надо будет протестировать конечно. Но должно быть норм.
Да, это я затупил - там нет констант. Почему-то был уверен, что там константы.

Константы я использовал в Relation-ах тогда, когда хотел вывести в параметры модуля внешний код для такой-то таблички. Ну, к примеру, "Внешний код спецификаций". Т.е. нужен лукап, который бы фильтровал по коду таблицы.

Но по факту - такие лукапы наверное удобнее делать через код и tablenum(), нежели прописывать в явном виде код таблицы в Relation. Хотя для стандартных таблиц - ID таблицы-то единый - поэтому в принципе критического ничего нет.

Вот, к примеру - таблица из стандартного функционала
Название: Снимок.PNG
Просмотров: 279

Размер: 19.8 Кб

А если открыть стандартную табличку AifEndpointActionValueMap - то там вообще страсти...
Нажмите на изображение для увеличения
Название: SNAG_Program-0164.png
Просмотров: 40
Размер:	86.7 Кб
ID:	13582
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 16.06.2023 в 16:14.
Теги
ax2012, ax2012r3, axutil, idkeep, sysupgradeexportids

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxse: Dynamics AX 2012 R3 cumulative updates Blog bot DAX Blogs 0 15.03.2017 18:11
emeadaxsupport: BOM Journal postings in AX 2012 R3 vs. earlier versions of AX 2012 Blog bot DAX Blogs 0 03.10.2015 02:35
emeadaxsupport: How to slip-stream AX 2012 R3 Cu 8 Blog bot DAX Blogs 0 21.04.2015 11:11
DAX: A Shift to Effective Demand Forecasting With Microsoft Dynamics AX 2012 R3 Blog bot DAX Blogs 0 16.11.2013 02:13
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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