Sapforum.Biz
Инструменты => ABAP - Инструментальные средства => Тема начата: themax от Февраль 21, 2017, 02:19:36 pm
-
Доброго времени суток, уважаемые ABAP-еры.
В общем возник так вопрос. Пытаюсь разобраться как делать распечатку в PDF формате. Пока не получается. Создаю сначала интерфейс, ну допустим Z_TEST, с помощью транзакции SFP добавил два поля как на рисунке z_test. Потом создал формуляр с помощью этой же транзакции как на рисунке z_test2 и z_test3.
Затем создал программку с таким вот кодом
types:
ty_outputparams type sfpoutputparams, "Form Parameters for Form Processing
ty_docparams type sfpdocparams. "Form Processing Output Parameter
data:
wa_outputparams type sfpoutputparams,
wa_docparams type sfpdocparams.
data:
gv_fm_name type rs38l_fnam,
matnr type makt-matnr,
maktx type makt-maktx.
parameters:
m_matnr type makt-matnr.
start-of-selection.
" Sets the output parameters and opens the spool job
wa_outputparams-device = 'PRINTER'.
wa_outputparams-dest = 'LP01'.
wa_outputparams-nodialog = 'X'.
wa_outputparams-preview = 'X'.
call function 'FP_JOB_OPEN'
changing
ie_outputparams = wa_outputparams
exceptions
cancel = 1
usage_error = 2
system_error = 3
internal_error = 4
others = 5.
if sy-subrc <> 0.
" <error handling>
endif.
" Get the name of the generated function module
call function 'FP_FUNCTION_MODULE_NAME'
exporting
i_name = 'Z_TEST'
importing
e_funcname = gv_fm_name.
if sy-subrc <> 0.
"<error handling>
endif.
* wa_docparams-langu = 'RU'.
* wa_docparams-country = 'KZ'.
select single matnr maktx from makt into (matnr, maktx) where matnr eq m_matnr.
call function gv_fm_name
exporting
matnr = matnr
makt = maktx
* bukrs = gv_bukrs
exceptions
usage_error = 1
system_error = 2
internal_error = 3.
call function 'FP_JOB_CLOSE'
exceptions
usage_error = 1
system_error = 2
internal_error = 3
others = 4.
if sy-subrc <> 0.
" <error handling>
endif.
После выборки нужного номера материала и запуска транзакции должна выходить PDF страничка, но на оне выходит. Вопрос: что я не так делаю?
-
Попробывал добавить сообщения в эксепшены. В результате выходит такое сообщение ADS: com.adobe.ProcessingException: Problem accessing d(200101) № сообщения FPRUNX001. Смотрел соответствующую ноту, связанную с настройкой ADC, но в системе уже имеется парочка PDF формуляров и они запускаются нормально, т.е. если бы ли проблемы с ADC то вообще бы ни один формуляр не запускался или я не правильно мыслю?
-
В общем что только я не делал, но вывести формуляр у меня так и не получается.
Интереса ради попытался скопировать уже существующий интерфейс и сам формуляр. Нашёл в какой проге оное используется и тоже её скопировал, из праздного любопытства. Пытаюсь запустить формуляр из новой скопированной программы, выдаёт дамп с описанием класса CX_FP_API_INTERNAL, т.е.
61 IF sy-subrc IS NOT INITIAL.
62 * Sperre in jedem Fall aufheben
63 PERFORM dequeue USING i_formname.
>>>>> RAISE EXCEPTION TYPE cx_fp_api_internal
65 EXPORTING
66 textid = cx_fp_api_internal=>no_number.
67 ENDIF.
68 ELSE.
Вот сейчас мне совершенно не понятно. Старая программка работает и выводит формуляр без проблем, но скопированная, т.е.идентичная ей, но с другим названием уже не хочет работать. В интернете множество информации по этому классу, но никакой конкретики. Может кто сталкивался??