2012-07-05 2 views
-2

Я хочу обнаружить и разрешить нарушения Закона Деметры в ABAP.Закон Деметры в ABAP

внимание сосредоточено на уровне уровня. Доза у кого есть идея или статьи?

пожалуйста ответ

приветы yinxiao

+1

Когда вы говорите «разрешаете нарушения», вы говорите об автоматическом переписывании классов? – tomdemuyt

+0

да, это только идея, я знаю, что решить эту проблему сложно, но я хочу попробовать. пожалуйста помоги. – Yinxiao

+1

Я не думаю, что этот вопрос дает почти достаточное доказательство даже пробной реализации, чтобы квалифицироваться как связанный с программированием. OP должен прочитать FAQ ЧАСТОТЫ и изучить некоторые из вопросов, которые дают хорошие ответы, а затем переформулировать этот вопрос. Как бы то ни было, это не подходит для SO. –

ответ

1

Хорошо,

это то, что вам нужно будет использовать (и более):

  • READ REPORT <prog> INTO <itab>. Это будет читать код в внутренняя таблица для анализа
  • SYNTAX-CHECK FOR <prog> MESSAGE <m> LINE <l> WORD <w> PROGRAM <itab>. T его синтаксис будет проверять любые изменения, внесенные в код
  • CALL FUNCTION 'RS_DELETE_PROGRAM' Перед сохранением измененного отчета, вы, возможно, придется удалить его первым
  • INSERT REPORT p_abap FROM it_prog. Это позволит создать измененный отчет с измененной ITAB
  • GENERATE REPORT p_abap. Это будет генерировать отчет вы вставили
  • анализ таблицы TRDIR, для имени класса XYZ вы найдете в нем все компоненты с именами XYZ========<componentname>, все эти отчеты, которые вы можете прочитать и изменить
  • Я хотел бы также изучить, как SAP делает «, где U sed ', это может помочь вам легко найти нарушения

Слово мудрому: SAP не поддерживает это; 80% этих ключевых слов зарезервированы только для внутреннего использования (эти ключевые слова, конечно, самые интересные;), если это не академическое упражнение, то вы почти наверняка тратите свое время.

Кроме того, я не уверен, что код, соответствующий закону Деметры, обязательно является лучшим кодом, но это философское обсуждение, которое лучше всего было с пивом.

T.

Смежные вопросы