Professional Documents
Culture Documents
Steps To Create A Simple SAP ADOBE Form and Calling It in A Web Dynpro ABAP Application
Steps To Create A Simple SAP ADOBE Form and Calling It in A Web Dynpro ABAP Application
address and then call this form in our Web Dynpro ABAP Application. To develop SAP
Adobe forms you will require the Adobe Life Cycle Designer installed in your system
and Adobe Document Services (ADS) installed and configured on the server.
In the Create Interface pop-up give a description and then click on the Save button.
Similarly, double click on the Global Data in the Global Definitions and create a new
variable PA0006 of type PA0006.
DATA :
lt_p0006
REFRESH lt_p0006.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
tclas
= 'A'
pernr
= pernr
infty
= '0002'
begda
= '18000101'
endda
= '99991231'
TABLES
infty_tab
= lt_p0006
EXCEPTIONS
infty_not_found = 1
OTHERS
= 2.
IF sy-subrc <> 0.
*
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
READ TABLE lt_p0006 INTO pa0006 WITH KEY subty = '2' .
In the Create Form pop-up box enter a description and the interface name created in
Step 1, then click on the save button.
Drag and drop all required fields from the Data View to the Body Pages, and set the
field properties as per your requirement.
In the create object pop-up click on the Yes button to create a new Web Dynpro
Application. Enter the description and choose the Type radio button as Web Dynpro
Component.
Now go to the Layout tab and insert a new Label UI, an Input field UI and a Button UI
element in the ROOTELEMENTCONTAINER.
Bind the Input field UI elements value property with the context attribute PERNR.
Create a new Action SHOW_FORM and assign it to the OnAction property of the
button UI element.
Copy and paste the code below to the event handler ON ACTION SHOW_FORM.
method ONACTIONSHOW_FORM .
DATA :
lv_pernr TYPE persno,
formoutput TYPE fpformoutput,
lo_el_context TYPE REF TO if_wd_context_element,
ls_context TYPE wd_this->element_context,
lv_w_cx_root TYPE REF TO cx_root,
gv_fmname TYPE rs38l_fnam, " function module name
lv_mesg TYPE string,
gs_fpoutparams TYPE sfpoutputparams.
* get element via lead selection
lo_el_context = wd_context->get_element( ).
* get single attribute
lo_el_context->get_attribute(
EXPORTING
name = `PERNR`
IMPORTING
value = lv_PERNR ).
gs_fpoutparams-nodialog = 'X'. " suppress printer dialog popup
gs_fpoutparams-getpdf = 'X'.
* gs_fpoutparams-getxml = 'X'.
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = gs_fpoutparams
EXCEPTIONS
cancel
= 1
usage_error
= 2
system_error
= 3
internal_error = 4
OTHERS
= 5.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
TRY.
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name
= 'Y_FORM'
IMPORTING
e_funcname = gv_fmname.
CATCH cx_root INTO lv_w_cx_root.
lv_mesg = lv_w_cx_root->get_text( ).
*
MESSAGE e201(hrpadin01) WITH lv_formname3 lv_mesg.
ENDTRY.
CALL FUNCTION gv_fmname
EXPORTING
pernr
= lv_pernr
IMPORTING
/1bcdwb/formoutput = formoutput.
IF sy-subrc <> 0.
*
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'FP_JOB_CLOSE'
* IMPORTING
*
E_RESULT
=
EXCEPTIONS
usage_error
= 1
system_error
= 2
internal_error
= 3
OTHERS
= 4.
cl_wd_runtime_services=>attach_file_to_response( i_filename =
'SAP_ADOBE_FORM.pdf'
i_content
= formoutput-pdf
i_mime_type = 'application/pdf' ).
endmethod.
Create the Web Dynpro Application by right clicking the Web Dynpro Component. Give
your application a name and description.
Closing Notes:
You can also call the Adobe Form in Web Dynpro Application by using the UI element
Interactive-Form. But, it is a good idea to design your ADOBE form separately in
transaction code SPF as shown in this tutorial. This way you can also call the same form
in reports and other applications too.
Also, instead of opening the Adobe form in the web browser, we have used the method
attach_file_to_response( ) of class cl_wd_runtime_services to open the ADOBE form
via download pop-up, this is also a good way because many a times users have
performance issues when showing the form in the web browser.