Массовое сохранение выходных документов заказа на поставку из Z-транзакции

Автор tanyxa, Червень 04, 2019, 12:01:01 ПП

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

tanyxa

Коллеги, добрый день.

Есть Z прога печати заказа на поставку, настроена в NACE, генерит PDF формуляр.

Есть некая другая Z-транзакция, нужно в ней по нажатию кнопки сгенерировать и сохранить выходные документы выбранных заказов на поставку куда-то в папку выбраную пользователем.

Как покрасивее забрать бинарное содержимое формуляров и подавить окошко превью?

Uukrul

Цитата: tanyxa від Червень 04, 2019, 12:01:01 ПП
Есть Z прога печати заказа на поставку, настроена в NACE, генерит PDF формуляр.
В условиях выбора есть варианты что делать, печатать, отправить по почте и т.д. В общем посмотрите в  эту сторону настройки условий вывода.

kernel

Цитата: tanyxa від Червень 04, 2019, 12:01:01 ПП
Коллеги, добрый день.

Есть Z прога печати заказа на поставку, настроена в NACE, генерит PDF формуляр.

Есть некая другая Z-транзакция, нужно в ней по нажатию кнопки сгенерировать и сохранить выходные документы выбранных заказов на поставку куда-то в папку выбраную пользователем.

Как покрасивее забрать бинарное содержимое формуляров и подавить окошко превью?

Добрый день.

Моё решение:

  • В память или в статический атрибут устанавливается флаг "ловушки"
  • Создаются расширения в начале ФМ FP_JOB_OPEN и FP_JOB_CLOSE. Если "ловушка" установлена, то выходим из ФМ.
  • Создается расширение в конце ФМ FPCOMP_FORM_END. Если "ловушка" установлена, записываем E_FORMOUTPUT в память или в статический атрибут
  • Делаем метод получения бинарного PDF по NAST.
На вход подаём IS_NAST типа NAST, на выходе получаем RV_PDF типа FPCONTENT.
Метод запускает FP_JOB_OPEN и FP_JOB_CLOSE с "запоминанием" контента PDF, а "ловушка" выйдет из соответствующих методов в программе печати.

  METHOD get_pdf_by_nast.
    DATA ls_outpar TYPE sfpoutputparams.

    ls_outpar-nodialog = abap_true.
    ls_outpar-getpdf = abap_true.
    ls_outpar-dest = 'PDF'.

    CALL FUNCTION 'FP_JOB_OPEN'
      CHANGING
        ie_outputparams = ls_outpar.

    zcl_pdf_hook=>mv_pdf_hook = abap_true.
    CALL FUNCTION 'WFMC_MESSAGE_SINGLE_SCREEN'
      EXPORTING
        pi_nast  = is_nast
      IMPORTING
        pe_rcode = sy-subrc.
    zcl_pdf_hook=>mv_pdf_hook  = abap_false.

    rv_pdf = zcl_pdf_hook=>ms_formoutput-pdf.

    CALL FUNCTION 'FP_JOB_CLOSE'.
  ENDMETHOD.

tanyxa

Цитата: kernel від Червень 06, 2019, 07:58:52 ПП
Моё решение..

Добрый день, да это похоже на то что мне надо.
А что за ФМ такой WFMC_MESSAGE_SINGLE_SCREEN - зачем он в методе? :)

kernel

Цитата: tanyxa від Червень 07, 2019, 09:57:06 ДП
А что за ФМ такой WFMC_MESSAGE_SINGLE_SCREEN - зачем он в методе? :)
ФМ запускает программу печати по структуре NAST

tanyxa


SMF spam blocked by CleanTalk