AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.02.2006, 18:12   #1  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
? Как быстро найти "главную" процедуру обработки в коде X++ ?
Уважаемые коллеги, подскажите, пожалуйста, как эффективно решать следующую типовую повседневную задачку?

Допустим, мне надо разобраться с фирменным аксаптовским алгоритмом прописывания данных в таблички во время какой-нибудь типовой транзакции, например, ввода ОС в эксплуатацию.

Что я сейчас делаю:
- я открываю соответствующую форму, щелкаю правой мышой на пункте "Настройка", попадаю в какую-то форму или класс (ветку AOT);
- дальше смотрю на методы и свойства (пока не могу сказать, что с очень умным видом);
- выбираю какой-нибудь "приемлемый" по названию метод типа "init" или "run", открываю этот метод и вставляю внутрь него точку прерывания по F9 (хорошо, если я при этом угадал и этот метод или его часть еще только будут исполняться, а не уже отработали);
- дальше жму кнопку операции в пользовательском интерфейсе - процесс запускается и останавливается на точке прерывания;
- ну и далее иду пошагово в Debugger-е, нажимая F8, пока наконец не окажусь в искомом ("главном" - в моей терминологии) методе, который я узнаю обычно по обилию "select"-ов или иным "эвристическим" признакам (по именам известных мне таблиц, полей и т.п.).

ВОПРОС: Существует ли более гуманный способ познания, ускоряющий поиски этого "главного" метода?
(А еще лучше бы сразу осознанно попадать в него без поисков!)

Заранее спасибо.
Старый 07.02.2006, 18:19   #2  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Ну, вообще - выучить все объекты в АОТ

А если серьезно, очень сомневаюсь что такое есть. Но, я в вашем алгоритме ускоряю немного процесс - ставя бряк непоследственно на нужной кнопке,а не на неизвестном методе. Уже быстрей получается.
Ну, и второе, что я иногда просто быстро пробегаюсь до конца выполнения операции (или смотрю стек), и ищу названия методов и классов, которые мне понравятся. Обычно срабатывает
Старый 07.02.2006, 18:22   #3  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Для решения Вашей задачи необходимо формализовать понятие "главный метод процесса", хотя бы попросту дать ему определение. А также ответить на вопрос: чем "главный" метод отличается от других, "не главных" методов, с точки зрения системы? Вопрос риторический.
Старый 07.02.2006, 18:42   #5  
_AnK_ is offline
_AnK_
Участник
Аватар для _AnK_
Ex AND Project
 
160 / 31 (2) +++
Регистрация: 03.11.2005
Адрес: СПб
Если разбираешься с кодом, который создает новую запись в таблице, его "главным методом" будет тот который инициализирует эту запись и делает insert. Соответсвенно брекпоинт надо поставить внутри insert'a. Вся логика ахапки в конечном счете сводится к созданию записей =)
Старый 07.02.2006, 18:44   #6  
lagr221374
Гость
 
n/a
а если doInsert?
Старый 07.02.2006, 18:47   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Сервис \ Параметры \ SQL \ Мониторинг Запросов SQL
За это сообщение автора поблагодарили: Gustav (1).
Старый 07.02.2006, 18:51   #8  
_AnK_ is offline
_AnK_
Участник
Аватар для _AnK_
Ex AND Project
 
160 / 31 (2) +++
Регистрация: 03.11.2005
Адрес: СПб
Цитата:
Сообщение от lagr221374
а если doInsert?
DoInsert редко встречается для важных таблиц.
Старый 07.02.2006, 19:27   #9  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от belugin
Сервис \ Параметры \ SQL \ Мониторинг Запросов SQL
"Господи, привей привычку смотреть не только на первую-вторую закладки таб-контролов, но и на все остальные!"

Большое спасибо! Похоже, это "выстрел в 10", а у меня - новая "игрушка" в Аксапте...
Вах! Там и стек вызовов в файле...
Старый 07.02.2006, 19:45   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Gustav
...а у меня - новая "игрушка" в Аксапте...
Вах! Там и стек вызовов в файле...
Ей богу завидую.
Это ж сколько открытий вам еще предстоит сделать...
Классно.

Может напишете Любимая фишка в Dynamics
или статью на сайт http://axapta.mazzy.ru ?

Кстати, не забывайте о респектах и репутации - вы можете добавить репутацию.
Поделитесь своим счастьем с другими.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: macklakov (5), Gustav (1).
Старый 07.02.2006, 22:19   #11  
wb is offline
wb
Участник
 
86 / 16 (1) ++
Регистрация: 26.01.2004
Адрес: Краснодар
;)
Цитата:
Сообщение от lagr221374
а если doInsert?
включаешь журнал базы данных,
ставишь breakpoint методы logInsert logUpdate в application
Старый 08.02.2006, 09:06   #12  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от mazzy
...не забывайте о респектах и репутации...Поделитесь своим счастьем с другими
Отнюдь, весьма активно и респектирую, и репутирую. Правда, у меня "одобрялка" пока маленькая, зато - от души!

Цитата:
Сообщение от mazzy
Может напишете Любимая фишка в Dynamics
или статью на сайт http://axapta.mazzy.ru ?
Спасибо за предложение. Фишку - не уверен, а статью - чуть позже, с удовольствием - с темой же надо определиться, ну и пусть на улице станет потеплее
За это сообщение автора поблагодарили: dmb (1).
Старый 14.02.2006, 12:15   #13  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Ох, забавна детская наивность собственных вопросов недельной давности...

Наряду с "Сервис\Параметры\SQL\Мониторинг Запросов SQL"
на меня свалилось дополнительное счастье вида
"Сервис\Средства разработки\Профайлер кода"

Спасибо трехгодичной давности ветке "Профайлер кода" и респект ее участникам:
Профайлер кода
Там же есть подробное описание Профайлера в приаттаченном файле (на англ.языке)

Special thanks to AXFORUM, в недрах которого всё это хранится...
Теги
как найти, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не печатается "Продавец" при выводе счет-фактуры без обработки nedervish DAX: Программирование 0 14.12.2007 16:17
Исчезновение формы "Найти" sssss DAX: Программирование 3 07.06.2007 11:40
Скидка - "Найти далее" AlexeyBP DAX: Функционал 13 11.08.2006 16:57
Отмена транспортировки палеты со статусом обработки "Начато" Ilia# DAX: Функционал 4 03.02.2006 10:55
Как найти "built-in performance management tool"? chel DAX: Администрирование 3 04.05.2004 02:50

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:04.