Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Hello ABAPPERS,

Today’s topic is very interesting . The aim is send Adobeform pdf with oData, also we can send Smartform as well.  This is very easy thing for  implementation. I will explain details step by step.

Prerequests

-Knowledge about adobeform or smartform

-Basic knowledge about oData

-SAP Gateway usage

 

First of all,  We create an Adobeform and a structure for using in the odata.

Then we can create gateway service from our structure.


In the section of entity types, We must choose the our entity as ‘Media’.


 

Then we will go to the Data Provider class and redefine the get_stream method inside the folder ‘/IWBEP/IF_MGW_APPL_SRV_RUNTIME’

Then we will call the pdf to get RAWSTRING data. After that we give the RAWSTRING data to the ‘er_stream -value’ and give the mimetype as ‘application/pdf’ to display pdf data. Also we can send different  files as well like jpeg .
"fill ls_general_data for adobe import str

TRY.
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name = 'zadobe'
IMPORTING
e_funcname = lv_formname.
CATCH cx_fp_api_repository.
CATCH cx_fp_api_usage.
CATCH cx_fp_api_internal.
ENDTRY.
"it is important to give the getpdf variable abap_true
"to get rawstring inside the pdf
ls_output_param-getpdf = abap_true.
ls_output_param-dest = COND #(
WHEN ls_defaults-spld IS NOT INITIAL
THEN ls_defaults-spld
ELSE 'LP01' ).
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = ls_output_param
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.


CALL FUNCTION lv_formname
EXPORTING
/1bcdwb/docparams = ls_doc_param
is_general = ls_general_data
IMPORTING
/1bcdwb/formoutput = ls_formoutput
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
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 = ls_result
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
"to change er_stream varriable.

ls_stream-value = ls_formoutput-pdf.
ls_stream-mime_type = 'application/pdf'.

copy_data_to_ref(
EXPORTING
is_data = ls_stream
CHANGING
cr_data = er_stream ).

 

As a result we can send pdf files with oData. You can check in the SAP Gateway Client.

 


Lastly , Also you can check this  blog .

Don’t hesitate to ask a question and share your comments please 😊

Best Regards!

-Uğur İlhan
5 Comments
Labels in this area