07.02.2006, 18:12 | #1 |
Moderator
|
Как быстро найти "главную" процедуру обработки в коде X++ ?
Уважаемые коллеги, подскажите, пожалуйста, как эффективно решать следующую типовую повседневную задачку?
Допустим, мне надо разобраться с фирменным аксаптовским алгоритмом прописывания данных в таблички во время какой-нибудь типовой транзакции, например, ввода ОС в эксплуатацию. Что я сейчас делаю: - я открываю соответствующую форму, щелкаю правой мышой на пункте "Настройка", попадаю в какую-то форму или класс (ветку AOT); - дальше смотрю на методы и свойства (пока не могу сказать, что с очень умным видом); - выбираю какой-нибудь "приемлемый" по названию метод типа "init" или "run", открываю этот метод и вставляю внутрь него точку прерывания по F9 (хорошо, если я при этом угадал и этот метод или его часть еще только будут исполняться, а не уже отработали); - дальше жму кнопку операции в пользовательском интерфейсе - процесс запускается и останавливается на точке прерывания; - ну и далее иду пошагово в Debugger-е, нажимая F8, пока наконец не окажусь в искомом ("главном" - в моей терминологии) методе, который я узнаю обычно по обилию "select"-ов или иным "эвристическим" признакам (по именам известных мне таблиц, полей и т.п.). ВОПРОС: Существует ли более гуманный способ познания, ускоряющий поиски этого "главного" метода? (А еще лучше бы сразу осознанно попадать в него без поисков!) Заранее спасибо. |
|
07.02.2006, 18:19 | #2 |
Участник
|
Ну, вообще - выучить все объекты в АОТ
А если серьезно, очень сомневаюсь что такое есть. Но, я в вашем алгоритме ускоряю немного процесс - ставя бряк непоследственно на нужной кнопке,а не на неизвестном методе. Уже быстрей получается. Ну, и второе, что я иногда просто быстро пробегаюсь до конца выполнения операции (или смотрю стек), и ищу названия методов и классов, которые мне понравятся. Обычно срабатывает |
|
07.02.2006, 18:22 | #3 |
Microsoft Dynamics
|
Для решения Вашей задачи необходимо формализовать понятие "главный метод процесса", хотя бы попросту дать ему определение. А также ответить на вопрос: чем "главный" метод отличается от других, "не главных" методов, с точки зрения системы? Вопрос риторический.
|
|
07.02.2006, 18:42 | #5 |
Участник
|
Если разбираешься с кодом, который создает новую запись в таблице, его "главным методом" будет тот который инициализирует эту запись и делает insert. Соответсвенно брекпоинт надо поставить внутри insert'a. Вся логика ахапки в конечном счете сводится к созданию записей =)
|
|
07.02.2006, 18:44 | #6 |
Гость
|
а если doInsert?
|
|
07.02.2006, 18:47 | #7 |
Участник
|
Сервис \ Параметры \ SQL \ Мониторинг Запросов SQL
|
|
|
За это сообщение автора поблагодарили: Gustav (1). |
07.02.2006, 18:51 | #8 |
Участник
|
Цитата:
Сообщение от lagr221374
а если doInsert?
|
|
07.02.2006, 19:27 | #9 |
Moderator
|
Цитата:
Сообщение от belugin
Сервис \ Параметры \ SQL \ Мониторинг Запросов SQL
Большое спасибо! Похоже, это "выстрел в 10", а у меня - новая "игрушка" в Аксапте... Вах! Там и стек вызовов в файле... |
|
07.02.2006, 19:45 | #10 |
Участник
|
Цитата:
Сообщение от Gustav
...а у меня - новая "игрушка" в Аксапте...
Вах! Там и стек вызовов в файле... Это ж сколько открытий вам еще предстоит сделать... Классно. Может напишете Любимая фишка в Dynamics или статью на сайт http://axapta.mazzy.ru ? Кстати, не забывайте о респектах и репутации - вы можете добавить репутацию. Поделитесь своим счастьем с другими. |
|
|
За это сообщение автора поблагодарили: macklakov (5), Gustav (1). |
07.02.2006, 22:19 | #11 |
Участник
|
Цитата:
Сообщение от lagr221374
а если doInsert?
ставишь breakpoint методы logInsert logUpdate в application |
|
08.02.2006, 09:06 | #12 |
Moderator
|
Цитата:
Сообщение от mazzy
...не забывайте о респектах и репутации...Поделитесь своим счастьем с другими
Цитата:
Сообщение от mazzy
|
|
|
За это сообщение автора поблагодарили: dmb (1). |
14.02.2006, 12:15 | #13 |
Moderator
|
Ох, забавна детская наивность собственных вопросов недельной давности...
Наряду с "Сервис\Параметры\SQL\Мониторинг Запросов SQL" на меня свалилось дополнительное счастье вида "Сервис\Средства разработки\Профайлер кода" Спасибо трехгодичной давности ветке "Профайлер кода" и респект ее участникам: Профайлер кода Там же есть подробное описание Профайлера в приаттаченном файле (на англ.языке) Special thanks to AXFORUM, в недрах которого всё это хранится... |
|