ЧИТАТЬ ОТЧЕТ для глобальных классов? - PullRequest
1 голос
/ 14 апреля 2020

Я попытался прочитать отчет для глобального класса, но он не работает. Мне нужно прочитать исходный код глобального класса в таблицу. Я нашел SEO_METHOD_ * FM, но они возвращали только метаданные о классе, но не его исходный код.

Есть ли какой-либо FM или метод, аналогичный ЧИТАТЬ ОТЧЕТ, но для глобальных классов?

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Весь код ABAP хранится в таблице REPOSRC, отчеты, функциональные модули, пулы классов и т. Д. c., В «включаемых программах». Эта таблица может быть прочитана только с помощью оператора ABAP READ REPORT.

Вам необходимо знать, как называются эти включаемые программы для пула классов.

Для пула классов с именем ZCL_X, исходный код ABAP хранится в следующих программах:

  • ZCL_X ======================== CS: это включает в себя весь исходный код, но только если он был изменен через редактор на основе исходного кода или через Eclipse ADT.
  • ZCL_X ======================== ======== CP: основной код, в котором перечислены все или большинство следующих включаемых программ ** Примечание: CP всегда начинается с 31-го символа, все символы между именем класса и 31-м символом должны быть заменены на = , Пример: если пул классов называется ZCL_XXXXX, включаемый файл имеет имя ZCL_XXXXX=====================CP.
  • ZCL_X ========================= CU: publi c раздел
  • ZCL_X ========================= CI: приватный раздел
  • ZCL_X ========================= CO: защищенный раздел
  • ZCL_X ============== =========== CM +++: методы ** +++ - это трехсимвольный код, соответствующий методу, определенному в таблице TMDIR. Столбец METHODNAME содержит имя метода, а METHODINDX содержит целое число, используемое для построения +++, примеры: ** от 1 до 9: от 001 до 009 ** от 10 до 35: от 00 до 00Z ** от 36 до 45: от 010 до 019 ** От 46 до 71: от 01 до 01Z ** от 72 до 81: от 020 до 02Z ** и c.
  • ZCL_X ========================= ===== CCDEF: определения локальных классов
  • ZCL_X ========================= CCMA C: макросы
  • ZCL_X ========================= CCIMP: реализации локальных классов
  • ZCL_X ======== ================= CCAU: локальные тестовые классы
  • и более ...
0 голосов
/ 15 апреля 2020

Используйте CL_RECA_RS_SERVICES, метод GET_SOURCE, например:

CALL METHOD cl_reca_rs_services=>get_source
  EXPORTING
    id_objtype = 'CLAS'
    id_objname = 'CL_SALV_BS_RUNTIME_INFO'
  IMPORTING
    et_source  = DATA(source)
  EXCEPTIONS
    not_found  = 1
    others     = 2
  .
...