|
![]() |
#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 |
|
|
За это сообщение автора поблагодарили: sukhanchik (2), oip (1). |
![]() |
#2 |
Участник
|
См. также рекомендации здесь
palleagermark: Dealing with changed table or field id's |
|
![]() |
#3 |
Axapta
|
Цитата:
Цитата:
Эти все примеры не о "правильности" программирования говорят, а о правильности процедуры настройки приложения (в первом случае) и правильности процедуры его обновления (во втором). |
|
![]() |
#4 |
Участник
|
Цитата:
1. в наличии констант-идентификаторов в коде. 2. в предположении, что идентификаторы никогда не изменяются (даже системные) 3. в наличии вызовов объектов по идентификатору объекта (сколько раз видел) 4. в наличии создания объектов по идентификатору объекта (сколько раз видел) 5. в неграмотном юзании Dict-классов 6. в неправильной обработке ошибок в паттерне pack/unpack 7. в очень неграмотном юзании кэша (в него зачастую записывают идентификаторы) 8. в неграмотном юзании параметров пакетных заданий 9. и т.п. |
|
Теги |
faq, id объекта, как правильно, права доступа, приложение, слой приложения |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|