Sending Adobe Form as PDF Attachement through mail
T-code:SFP
1.Create an interface like below
2.Create form using interface and design layout and bind elements
*&---------------------------------------------------------------------*
*& Report ZVB_ADOBE_SO1
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zvb_adobe_so1.
DATA:lr_outputparam TYPE sfpoutputparams,
lv_funcname TYPE
funcname,
lv_result TYPE
sfpjoboutput,
lr_pdf TYPE fpformoutput,
lt_bcs_pdf TYPE
TABLE OF solix.
DATA:lv_uname TYPE soextreci1-receiver, "Sender
lr_subject TYPE
sodocchgi1,
lt_mailbody TYPE
TABLE OF solisti1, "Mail Body
lr_mailbody TYPE
solisti1,
lt_mailrec TYPE
TABLE OF somlrec90, "Mail recievers
lr_mailrec TYPE
somlrec90,
lr_pack_list TYPE sopcklsti1,
lt_pack_list TYPE TABLE OF sopcklsti1.
DATA:lr_vbak TYPE
zssd_vbak_01,
lt_vbap TYPE TABLE OF zssd_vbap_01.
PARAMETERS:p_vbeln TYPE vbak-vbeln.
SELECT SINGLE vbeln,
erdat,
erzet,
ernam,
vbtyp
FROM vbak
INTO @lr_vbak
WHERE vbeln = @p_vbeln.
IF sy-subrc = 0.
SELECT vbeln,
posnr,
netwr,
waerk
FROM vbap
INTO TABLE @lt_vbap
WHERE vbeln = @lr_vbak-vbeln.
ENDIF.
lr_outputparam-dest = 'LP01'.
lr_outputparam-nodialog = 'X'.
lr_outputparam-preview = 'X'.
lr_outputparam-getpdf = 'X'.
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = lr_outputparam
EXCEPTIONS
cancel = 1
usage_error =
2
system_error =
3
internal_error =
4
OTHERS = 5.
CALL FUNCTION 'FP_FUNCTION_MODULE_NAME'
EXPORTING
i_name =
'ZVB_SO_FORM1'
IMPORTING
e_funcname = lv_funcname.
CALL FUNCTION lv_funcname
EXPORTING
*
/1BCDWB/DOCPARAMS =
lt_vbap = lt_vbap
lr_vbak = lr_vbak
p_vbeln = p_vbeln
IMPORTING
/1bcdwb/formoutput = lr_pdf
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error =
3
OTHERS = 4.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lr_pdf-pdf
TABLES
binary_tab = lt_bcs_pdf.
lr_subject-obj_descr = 'Sales Order Details'.
lr_subject-sensitivty = 'F'.
lr_subject-doc_size = 1.
lr_mailbody-line = 'Hi'.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lr_mailbody-line = ' '.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lr_mailbody-line = 'Please
find the attached document as Sales Order Details'.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lr_mailbody-line = ' '.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lr_mailbody-line = '**This
is system generated mail. Do not reply.'.
APPEND lr_mailbody TO lt_mailbody.
CLEAR:lr_mailbody.
lv_uname = sy-uname.
lr_mailrec-receiver = 'abc@gmail.com'.
lr_mailrec-com_type = 'INT'.
lr_mailrec-rec_type = 'U'.
APPEND lr_mailrec TO lt_mailrec.
**** MAIL BODY-LENGTH
DESCRIBE TABLE lt_mailbody LINES lr_pack_list-body_num.
CLEAR lr_pack_list-transf_bin.
lr_pack_list-head_start = 1.
lr_pack_list-head_num = 0.
lr_pack_list-body_start = 1.
lr_pack_list-doc_type = 'RAW'.
APPEND lr_pack_list TO lt_pack_list.
CLEAR: lr_pack_list.
** Create attachment notification
lr_pack_list-transf_bin = 'X'.
lr_pack_list-head_start = 1.
lr_pack_list-head_num = 1.
lr_pack_list-body_start = 1.
DESCRIBE TABLE lt_bcs_pdf LINES lr_pack_list-body_num.
lr_pack_list-doc_type = 'PDF'.
CONCATENATE 'Sales Order-' p_vbeln INTO lr_pack_list-obj_descr.
lr_pack_list-obj_name = 'SO Detaisl'.
lr_pack_list-doc_size = lr_pack_list-body_num * 255.
APPEND lr_pack_list TO lt_pack_list.
CLEAR:lr_pack_list.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = lr_subject
sender_address = lv_uname
sender_address_type = 'B'
commit_work = 'X'
TABLES
packing_list = lt_pack_list
contents_txt = lt_mailbody
contents_hex = lt_bcs_pdf
receivers = lt_mailrec
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist =
3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
CALL FUNCTION 'FP_JOB_CLOSE'
IMPORTING
e_result = lv_result
EXCEPTIONS
usage_error =
1
system_error =
2
internal_error = 3
OTHERS = 4.
Output:
Go T-code SOST and check the mail
Click On PDF
Comments
Post a Comment