|  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, в недрах которого всё это хранится...   | 
|  |