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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.02.2009, 14:33   #1  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Вообще в данной ситуации ничего плохого нет. Переносить нужно модификации без сохранения ИД объектов. Ни в коем случае не подкладывать приложение (слой) целиком.

Если накатите на разработческую базу рабочее приложение целиком, то в разработческой базе может слететь часть данных (но это не должно быть критичным, и то проблема решается).
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: Evgeniy2020 (1).
Старый 10.02.2009, 18:01   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2161 (81) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от glibs Посмотреть сообщение
Если накатите на разработческую базу рабочее приложение целиком, то в разработческой базе может слететь часть данных (но это не должно быть критичным, и то проблема решается).
Можно по-подробнее, как проблема решается?

Цитата:
Сообщение от oip Посмотреть сообщение
Единственная возможная проблема может возникнуть только если вы захотите восстановить рабочую базу на девелоперском приложении (или наоборот). Тут могут быть проблемы с синхронизацией и слететь некоторые данные.
Обоим: Почему потеря данных не будет критичной? Мне кажется очень удобно иметь возможность в любой момент восстановить рабочую БД на тест или дев для анализа ошибок и проч.
__________________
Ivanhoe as is..
Старый 10.02.2009, 23:04   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
Если программировать правильно.
Сергей, а приведи какой-нибудь более-менее реальный пример, когда отличие в айдишниках хоть как-то повлияет на функционал и работоспособность системы? Мне в голову приходят только совсем уж клинические вещи.

Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Обоим: Почему потеря данных не будет критичной? Мне кажется очень удобно иметь возможность в любой момент восстановить рабочую БД на тест или дев для анализа ошибок и проч.
Например, у нас для "иметь возможность в любой момент восстановить рабочую БД на тест или дев для анализа ошибок" используется полностью отдельное приложение (в него периодически копируется рабочее). Практически "песочница". Там и мы что-то проверить-проанализировать можем, и пользователи могут поиграть немного.
Старый 11.02.2009, 20:13   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от oip Посмотреть сообщение
Сергей, а приведи какой-нибудь более-менее реальный пример, когда отличие в айдишниках хоть как-то повлияет на функционал и работоспособность системы? Мне в голову приходят только совсем уж клинические вещи.
1. Добавление складской аналитики.
В девелоперской базе проводили тестовые добавления, в результате финальный вариант складской аналитики один FieldID. Аналитику настраивают, проверяют. Все работает.

Затем проект переносят (без сохранения ID) в рабочую базу. FieldID у новой складской аналитики другой. Но этого не замечают и Без тени сомнения переносят настройки. Настройка складской аналитики основана на том, что в базе хранятся FieldID, поэтому все настройки сьезжают и не работают.
===================

2. Изменение складской аналитики
В девелоперской добавили складскую аналитику и руками добавили складскую аналитику в рабочую (FieldID разные). В рабочей настроили, работают. InventDim заполняется значениями для новой аналитики.

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

====================
3. Полный список проблемных мест (с точки зрения ID) в стандартном функционале ax4.0 (всего потенциально опасных 1122 места, из них 139 в таблицах)

См. таблицу в аттаче.

Технология обнаружения проблемных мест в любой базе:
берете системные типы FieldID и TableID, смотрите по перекрестным ссылкам где они используются. Оставляете только те записи тип которых = Write. Убираете методы \modifiedField, \validateField, \Unpack, \Lookup
Вложения
Тип файла: xls Проблемные объекты с идентификаторами в ax4.xls (179.5 Кб, 147 просмотров)
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: sukhanchik (2), oip (1).
Старый 11.02.2009, 20:14   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
См. также рекомендации здесь
palleagermark: Dealing with changed table or field id's
__________________
полезное на axForum, github, vk, coub.
Старый 11.02.2009, 21:52   #6  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от mazzy Посмотреть сообщение
и Без тени сомнения переносят настройки. Настройка складской аналитики основана на том, что в базе хранятся FieldID, поэтому все настройки сьезжают и не работают.
Не, ну то, что нельзя переносить данные с одной базы на другую, не убедившись, что либо в них нет айдишников объектов, либо айдишники в этих базах одинаковые, это понятно. Выше мы же писали, и что базу восстанавливать нельзя, и что права слетят, и что настройки пользователя поедут. Это же все из одной оперы.

Цитата:
Сообщение от mazzy Посмотреть сообщение
Потом какой-нибудь "негодяй" решает перенести InventDim проектом (с сохранением ID)
Опять-таки, это понятно и выше написано, что если айдишники разные, то с сохранением айдишников переносить проекты нельзя. Глеб это написал в первом же сообщении.

Эти все примеры не о "правильности" программирования говорят, а о правильности процедуры настройки приложения (в первом случае) и правильности процедуры его обновления (во втором).
Старый 11.02.2009, 22:43   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от oip Посмотреть сообщение
Эти все примеры не о "правильности" программирования говорят, а о правильности процедуры настройки приложения (в первом случае) и правильности процедуры его обновления (во втором).
А неправильность программирования проявляется:
1. в наличии констант-идентификаторов в коде.
2. в предположении, что идентификаторы никогда не изменяются (даже системные)
3. в наличии вызовов объектов по идентификатору объекта (сколько раз видел)
4. в наличии создания объектов по идентификатору объекта (сколько раз видел)
5. в неграмотном юзании Dict-классов
6. в неправильной обработке ошибок в паттерне pack/unpack
7. в очень неграмотном юзании кэша (в него зачастую записывают идентификаторы)
8. в неграмотном юзании параметров пакетных заданий
9. и т.п.
__________________
полезное на axForum, github, vk, coub.
Старый 10.02.2009, 23:53   #8  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от Ivanhoe
...
Мне кажется очень удобно иметь возможность в любой момент восстановить рабочую БД на тест или дев для анализа ошибок и проч.
...
Если размер БД больше 5-10 ГБ, то мне такой процесс удобным уже не кажется. Долговато.

Когда речь идет о работе одного-двух разработчиков, то можно договориться о том, чтобы регулярно тереть разработческое приложение продуктивным. Я обычно так стараюсь делать. Хотя все еще сильно зависит от культуры разработки и характера модификаций (если строится что-то огромное и фундаментальное, то оно может долго зависнуть в процессе разработки). А если разработки по моим меркам большие, то бью их на как можно более мелкие и несложно тестируемые атомарные куски. ИД объектов расходятся незначительно при таком подходе, обычно. И совсем ненадолго.

Когда речь идет о большом коллективе разработчиков и серьезном подковыривании стандартного кода (или своего, но у всех популярного), а еще хуже если и о параллельных процессах аналогичного рода, то такой вариант реализовать трудно. В таких случаях даже переносить тяжело, т.к. вполне возможно, что в том объекте, в котором ты что-то дописал, кто-то другой сейчас ковыряется, и этот объект даже не компилируется. Мне кажется, что описанная вами проблема может серьезно стоять только в такого рода случаях.
__________________
С уважением,
glibs®
Старый 10.02.2009, 23:54   #9  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от glibs Посмотреть сообщение
Переносить нужно модификации без сохранения ИД объектов. Ни в коем случае не подкладывать приложение (слой) целиком.
"Ни в коем случае" - это почти как «квантор общности» "никогда"; обоснуйте
Цитата:
Сообщение от glibs Посмотреть сообщение
Если накатите на разработческую базу рабочее приложение целиком, то в разработческой базе может слететь часть данных.
Если переносить с сохранением идентификаторов, то ничто никуда не слетит. Впрочем, это все фигня, поскольку ценность данных в разработческой базе на фоне ценности данных рабочей асимптотически стремится к нулю.
Старый 11.02.2009, 00:28   #10  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от gl00mie
...
обоснуйте
...
Просто опыт.
Цитата:
Сообщение от gl00mie
...
Если переносить с сохранением идентификаторов
...
Как можно приложение целиком переносить с сохранением идентификаторов или без такового?
__________________
С уважением,
glibs®
Старый 11.02.2009, 12:51   #11  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от glibs Посмотреть сообщение
Цитата:
Сообщение от glibs Посмотреть сообщение
Переносить нужно модификации без сохранения ИД объектов. Ни в коем случае не подкладывать приложение (слой) целиком.
Просто опыт.
Аналогично, есть в т.ч. многолетний успешный опыт "подкладывания слоя целиком" Так почему же все-таки "ни в коем случае"?..
Цитата:
Сообщение от glibs Посмотреть сообщение
Как можно приложение целиком переносить с сохранением идентификаторов или без такового?
Скажем так, можно получить два практически идентичных по функционалу приложения, в которых, тем не менее, идентификаторы будут отличаться, например, если с разработческого приложения на тестовое или рабочее все переносить проектами без сохранения идентификаторов, то функционал будет одинаковый, но идентификаторы неизбежно разъедутся, поскольку одни и те же объекты приложения будут создаваться с разной очередностью. Именно эта ситуация имелась в виду.
Старый 11.02.2009, 13:08   #12  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Пока писал, родился вопрос: а настройки прав доступа хранятся с привязкой к ID? при их переносе проблем не будет, если ID разные?
Будет. И настройки пользователя (те, что в СисЛастВэлью) тоже слетят.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Аналогично, есть в т.ч. многолетний успешный опыт "подкладывания слоя целиком" Так почему же все-таки "ни в коем случае"?..
Я так полагаю, что имелось в виду, что если идентификаторы уже разъехались, то после этого слой уже подкладывать нельзя. То есть с тестового на рабочее надо переносить или слоем или хпошникам, и если уже начали переносить хпошниками (или создали объекты прям в рабочем), то слоем приложение уже обновлять нельзя.

А так да, мы тоже слоем перетаскиваем. С девелоперского на тестовое - проектами, с тестового на рабочее - слоем.
Теги
faq, id объекта, как правильно, права доступа, приложение, слой приложения

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как сильно модифицировано ваше приложение Аксапты? (% обновленных партнерских объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:41
Как сильно модифицировано ваше приложение Аксапты? (% новых партнерских объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:41
Как сильно модифицировано ваше приложение Аксапты? (% обновленных объектов) mazzy DAX: Прочие вопросы 1 12.03.2009 17:41
Приколы нашей системы - импорт объектов Anais DAX: Программирование 4 12.08.2005 13:52
Методологией разработки, тестирования и формирования рабочего приложения в Axapta Anais DAX: Программирование 41 17.06.2005 17:30
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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