Link Search Menu Expand Document

Хранение шаблонов

SMW0

SMW0 прост и удобен, транзакция OAOR слишком сложная. Зачем вообще нужна версионность шаблонов выгрузки?
Да с этими утверждениями можно согласиться отчасти.

Когда шаблон довольно прост

image

Достаточно взглянуть на него чтобы понять:

  • на стороне SAP имеем структуру R у которой есть поле-таблица T
  • кроме этого в структуре есть поля HEADER, DATE и TIME

Или прочитав код ABAP, сразу становиться понятно что получим на выходе.

    " Load a template
    DATA(lo_xtt) = NEW zcl_xtt_word_docx(
        NEW zcl_xtt_file_smw0( iv_template_name ) ).

    lo_xtt->merge( VALUE #(
        " For printing
        footer = 'Footer'
        header = 'Header'
    
        " Date and time in header and footer
        date   = sy-datum
        time   = sy-uzeit

        " Main table
        t   = mt_alv[]
    ) ).

    " download & open in sap_tmp folder (For inplace mode use ->show( ) method)
    lo_xtt->download( ).

Даже не имеет значение куда выводим данные word, excel или pdf (соответственно ZCL_XTT_WORD_DOCX, ZCL_XTT_EXCEL_XLSX или ZCL_XTT_PDF).
Главное становится понятна сама структура выходного документа. Остальное можно будет понять запустив программу на выполнение.
Подробнее тут Пример №02 Вывод простой таблицы


OAOR

Но такие случаи бывают не всегда
Когда в шаблон передаются множество таблиц c группировками(level=0,1,2), с функциями агрегации(func=SUM|AVG|COUNT|FIRST) и с выводом по условию (show_if & hide_if)
Просто взглянуть на шаблон, и понять отчет, уже наверное не получится

image Подробнее начиная с Пример №05_co Вывод уровня по условию


tr. ZAQO_EDITOR_OLD

Для этой цели в меню редактора появилась новая группа кнопок для просмотра и выгрузки шаблонов
При загрузки новой версии шаблона можно добавить небольшое примечание (поле Description)
Если имя файла не совпадает его можно выбрать в раскрывающемся списке (Component name)

image

Как и в случае с обычными настройками после достижения максимального количества версий (пу 5), предыдущие версии будут удаляться

image


Результат можно увидеть в самой транзакции OAOR

image


OAOR проверяет полномочия на конкретный Class name (package в AQO),TODO игнорировать полномочия?