02.06.2015, 10:05 | #1 |
Злыдни
|
Восстановление DeleteAction после обновления
Доброго времени суток.
Столкнулся с очень досадной недоработкой механизма сравнения объектов в AOT и удалением изменений в узлах таблицы. Ни первый, ни второй механизм не дает возможности "восстановить" DeleteAction с родительских слоев после обновления. Яркий пример - таблица CustTable на AX 2012R3 CU8. Гроздь MCR* delete action. Если внесены корректировки на верхних слоях, то восстановление DeleteAction становится очень трудоемкой работой. И если на тестовом приложении можно пойти по пути потери данных: выгрузка в XPO, удаление верхних слоев, загрузка полей и изменений в коде через сравнение XPO и текущего состояния, а потом ручное добавление "потерявшихся" узлов таблицы; то как быть на активно используемом приложении. У кого-нибудь есть рецепт для восстановления deleteaction с нижних слоев?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
02.06.2015, 10:18 | #2 |
Участник
|
Как минимум 3 способа.
1. Создать их руками. или 2. Выгрузить в XPO с каждого из слоев. Редактором Notepad скпировать соответсвующие куски XPO - импортнуть обратно. или 3. Закомментить вызов синхронизации внутри метода Application.dbSynchronize Грохнуть что вам надо. Импортнуть снова. При этом в базе ничего не должно удалиться. Затем раскомментить. Правда если в приложении работает еще кто-то кроме вас, то такой подход может не сработать. |
|
02.06.2015, 13:19 | #3 |
Злыдни
|
Цитата:
Сообщение от Logger
Как минимум 3 способа.
1. Создать их руками. или 2. Выгрузить в XPO с каждого из слоев. Редактором Notepad скпировать соответсвующие куски XPO - импортнуть обратно. или 3. Закомментить вызов синхронизации внутри метода Application.dbSynchronize Грохнуть что вам надо. Импортнуть снова. При этом в базе ничего не должно удалиться. Затем раскомментить. Правда если в приложении работает еще кто-то кроме вас, то такой подход может не сработать. 2. Вариант неплохой, но только при малом количестве слоев, на которых были изменения в DA. Т.к. импорт в XPO со слоя выдает только то, что было на этом слое. Вот если бы можно было выгрузку по списку слоев или с включением всех нижележащих слоев. 3. Не вариант. Часть объектов в таблице с помощью инструмента сравнения XPO и AOT не удастся добавить (понажимать на стрелочки). Опять придется вручную создавать некоторые потерянные объекты. (Не совсем понятно, почему удаление нельзя вызвать по узлу DeleteAction.)
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
02.06.2015, 14:01 | #4 |
Участник
|
Стрелки в любом случае нажимать не выйдет так как они работают через drag and drop, а DeleteAction его не поддерживает потому стрелочек там и нет
Как по мне самый оптимальный вариант через мержинг xpo в любой мержилке. |
|
|
За это сообщение автора поблагодарили: Bergman (1). |
02.06.2015, 16:41 | #5 |
Злыдни
|
Цитата:
И еще, как быть с тем случаем, если что-то удалили, например, на syp? Что мы увидим в xpo с sys слоя и с syp слоя? Простейшие коллизии по двум-трем объектам муторно, но легко разрешить вручную. При больших количествах изменений придется помянуть кое-кого всуе.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. Последний раз редактировалось KiselevSA; 02.06.2015 в 16:42. Причина: (очепятки) |
|
|
|