|
30.04.2008, 12:21 | #1 |
Участник
|
Как программно заблокировать объект в AOT?
Для оптимизации рутинных операций захотелось в код, вызываемый из пункта контекстного меню, приделать кроме прочего автоматическую блокировку объекта AOT (таблицу, класс, форму, etc) - как это делается из контекстного меню выбором пункта «Блокировка». Копался в методах класса TreeNode, в формах экспорта/импорта - ничего подходящего не нашел.
По ходу выяснилось, что, к примеру, форма экспорта вызываются напрямую ядром Аксапты, которая потом через специально обученные методы на формах получает введенные параметры и уже непосредственно приступает к экспорту. См. форму SysExportDialog, которая вроде бы ничего и не делает, тот же метод export(), собирающий введенные параметры в виде битовых флагов, и методы getExportFlag(), getFileName() и иже с ними... Попробуйте поставить в них точку останова и посмотреть стэк вызовов А как же все-таки программно заблокировать объект? Неужели никак? AX 3.0 KR3 |
|
30.04.2008, 12:29 | #2 |
Member
|
Экспериментировать леньки. Есть только "идея".
Добавить запись в UtilLocks не пробовали?
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: gl00mie (5). |
30.04.2008, 12:37 | #3 |
Участник
|
Ну, тут вроде ничего сложного нет. Создать нужно запись в табличке UtilLocks.
В АХ 2009, к слову, эту табличку и пункт меню удалили, так как начиная с АХ 4 уже есть Version Control, а соответственно необходимость такой блокировки объектов отпала |
|
|
За это сообщение автора поблагодарили: alex55 (1). |
30.04.2008, 15:57 | #4 |
Участник
|
Огромное спасибо, с использованием UtilLocks все получилось! А на счет того, что ее нет в 5-ке, так до перехода на нее еще надо дожить...
|
|
30.04.2008, 16:15 | #5 |
Member
|
Цитата:
Сообщение от gl00mie
...
А на счет того, что ее нет в 5-ке, так до перехода на нее еще надо дожить... ... Не разделяю ваш подход. Думать на будущее нужно всегда. По возможности (предсказать его невозможно).
__________________
С уважением, glibs® |
|
30.04.2008, 16:23 | #6 |
Участник
|
Все это, конечно, верно, но у меня сейчас есть «сиюминутная» задача: оптимизировать рутинные операции при сравнении объектов в ходе обновления на очередной service pack. Рутинные операции заключаются в вызове формы сравнения объектов на разных слоях и в блокировании объекта (чтобы другие разработчики видели, что я его проверил). Сравнение объектов (класс SysCompare) я уже подвинтил, чтобы он на форме выбирал нужные мне слои и при определенных условиях сразу запускал сравнение, без нажатия кнопки; осталась блокировка объекта в AOT. Два раза лазить в контекстное меню для каждого из сотни-другой объектов мне ну очень лениво, в связи с чем и возникло желение сделать все в одно действие. Когда дойдет очередь до обновления на 5-ку, думаю, найдутся другие механизмы распределения фронта работ
|
|
Теги |
ax2009, ax3.0, ax4.0 |
|
|