пятница, 13 июля 2007 г.

Система: выполнение команд при запуске 3

Последовательность вызова методов при запуске Axapta [id:007]

Попробуем что-нибудь посложнее: создание класса, дочернего от SysStartupCmd. Идя таким путем, мы сможем влезть в области, помеченные розовым на диаграмме.

  1. Начинаем, как обычно, с создания проекта и ветки «Classes» в нем. Пустой проект JS_Blog006
  2. Создаем класс – наследник от SysStartupCmd. Внимание: имя должно начинаться на «SysStartupCmd», это правило хорошего тона (Best Practices). Я назвал его как "SysStartupCmdHelloWorld_JS"; суффикс "JS" прилепил, чтобы лишний раз показать, что это мое, а не какого-то датского программиста. Класс-наследник от SysStartupCmd
  3. Перегрузи метод infoRun() и напиши приветственное сообщение. Вообще можешь перегрузить любой из той четверки методов (см. диаграмму). Оставить здесь super() или нет – решать тебе. Код нашего метода infoRun() Здесь "startupCmd" - поле базового класса SysStartupCmd, в котором сохраняется строка параметров запуска. И у нас есть доступ к ней, мы же как-никак наследники.
  4. Идем в базовый класс – в SysStartupCmd, в его статический метод construct() добавляем код в ветку по-умолчанию для ветвления switch (участок, который был добавлен, выделен зеленой рамкой). Замечу, что на данном этапе мы поменяли один из классов системы. По правилам хорошего тона ты должен добавить ссылку на класс SysStartupCmd в дерево своего проекта. Таким образом показывается, какие объекты в процессе работы над проектом были затронуты.
  5. Все, закрывай систему и запусти снова. Результат? Ничего! Почему? Снова читаем диаграмму: пункты 1, 2, 5, 6, 8 и 10 выполняются ТОЛЬКО, если строка параметров запуска системы не была пустой. А она у нас пустая. Исправь ошибку (см. первый блог цикла): пропиши строку параметров запуска в конфигураторе клиентской части. И снова перезапусти систему. Я написал свой ник и нарвался на "Hello". Результат

Если не понятно, что я делал, снова посмотри диаграмму (самый первый рисунок).

Комментариев нет: