Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: tanyxa от Июнь 04, 2019, 12:01:01 pm
-
Коллеги, добрый день.
Есть Z прога печати заказа на поставку, настроена в NACE, генерит PDF формуляр.
Есть некая другая Z-транзакция, нужно в ней по нажатию кнопки сгенерировать и сохранить выходные документы выбранных заказов на поставку куда-то в папку выбраную пользователем.
Как покрасивее забрать бинарное содержимое формуляров и подавить окошко превью?
-
Есть Z прога печати заказа на поставку, настроена в NACE, генерит PDF формуляр.
В условиях выбора есть варианты что делать, печатать, отправить по почте и т.д. В общем посмотрите в эту сторону настройки условий вывода.
-
Коллеги, добрый день.
Есть 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.
-
Моё решение..
Добрый день, да это похоже на то что мне надо.
А что за ФМ такой WFMC_MESSAGE_SINGLE_SCREEN - зачем он в методе? :)
-
А что за ФМ такой WFMC_MESSAGE_SINGLE_SCREEN - зачем он в методе? :)
ФМ запускает программу печати по структуре NAST
-
Спасибо, по методу kernel все получилось :)