27.01.2024, 14:53 | #1 |
Участник
|
Защита от повреждения типа таблицы в Аксапте 2012 R3
Привет всем.
Вот здесь я описал идею как можно было бы защититься от повреждений типа таблиц в аксапте 2012 R3 После инсталяции Map вдруг cтал Table?! Попробовал реализовать. Похоже все получилось. https://github.com/KozlovPavel677/AxTableTypeChangeFix Идея фикса. 1. Пишем в базе модели функцию (aMRC_axTableType), которая разбирает бинарное поле ModelElementData.Properties и определяет по нему тип табличного объекта. Результат функции: 0 - Unknown 1 - Table 2 - View 3 - Map 2. На табличке ModelElementData в базе модели пишем триггер, который проверяет не поменялся ли для обновляемой таблички результат функции aMRC_axTableType. Если поменялся, то ругаемся и откатываем транзакцию (реально пришлось рубить текущее соединение) Примерно неделю триггер живет на деве и тесте. Проблем не заметили. Как тестировали. Класс ViewTableProps_MRC перебирает все таблички в приложении и для каждой определяет тип таблицы через распаковку бинарного свойства ModelElementData.Properties и сравнивает результа с тем что вернул DictTable.isView() и DictTable.isMap(). Если выявлено несоответствие то пишет в инфолог "ERROR !!!". Просьба к участникам форума поучаствовать в тестировании, прогнать этот проверочный класс на своих приложениях. Вдруг выявится ошибка в определении типа таблицы. Но мне кажется, что все должно быть нормально. Мы проверяли всеми способами. |
|
|
За это сообщение автора поблагодарили: sukhanchik (10), Manner (1), Dron AKA andy (5), gl00mie (10). |
Теги |
ax2012, ax2012r2, ax2012r3, map, modelelementdata, table, view |
|
|