SAP SmartForm to Email
Code to send smart form as email ABAP
REPORT zessa_sendemail.* Internal Table declarationsDATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE, i_tline TYPE TABLE OF tline WITH HEADER LINE, i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE, i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,* Objects to send mail. i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE, i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE, i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE, i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,* Work Area declarations wa_objhead TYPE soli_tab, w_ctrlop TYPE ssfctrlop, w_compop TYPE ssfcompop, w_return TYPE ssfcrescl, wa_doc_chng TYPE sodocchgi1, w_data TYPE sodocchgi1, wa_buffer TYPE string, "To convert from 132 to 255* Variables declarations v_form_name TYPE rs38l_fnam, v_len_in LIKE sood-objlen, v_len_out LIKE sood-objlen, v_len_outn TYPE i, v_lines_txt TYPE i, v_lines_bin TYPE i.CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZTEST' IMPORTING fm_name = v_form_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3.IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.w_ctrlop-getotf = 'X'.w_ctrlop-no_dialog = 'X'.w_compop-tdnoprev = 'X'.CALL FUNCTION v_form_name EXPORTING control_parameters = w_ctrlop output_options = w_compop user_settings = 'X' IMPORTING job_output_info = w_return EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 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.i_otf[] = w_return-otfdata[].CALL FUNCTION 'CONVERT_OTF' EXPORTING format = 'PDF' max_linewidth = 132 IMPORTING bin_filesize = v_len_in TABLES otf = i_otf lines = i_tline EXCEPTIONS err_max_linewidth = 1 err_format = 2 err_conv_not_possible = 3 OTHERS = 4.IF sy-subrc <> 0.ENDIF.LOOP AT i_tline. TRANSLATE i_tline USING '~'. CONCATENATE wa_buffer i_tline INTO wa_buffer.ENDLOOP.TRANSLATE wa_buffer USING '~'.DO. i_record = wa_buffer. APPEND i_record. SHIFT wa_buffer LEFT BY 255 PLACES. IF wa_buffer IS INITIAL. EXIT. ENDIF.ENDDO.* AttachmentREFRESH: i_reclist, i_objtxt, i_objbin, i_objpack.CLEAR wa_objhead.i_objbin[] = i_record[].* Create Message Body Title and Descriptioni_objtxt = 'test with pdf-Attachment!'.APPEND i_objtxt.DESCRIBE TABLE i_objtxt LINES v_lines_txt.READ TABLE i_objtxt INDEX v_lines_txt.wa_doc_chng-obj_name = 'smartform'.wa_doc_chng-expiry_dat = sy-datum + 10.wa_doc_chng-obj_descr = 'smartform'.wa_doc_chng-sensitivty = 'F'.wa_doc_chng-doc_size = v_lines_txt * 255.* Main TextCLEAR i_objpack-transf_bin.i_objpack-head_start = 1.i_objpack-head_num = 0.i_objpack-body_start = 1.i_objpack-body_num = v_lines_txt.i_objpack-doc_type = 'RAW'.APPEND i_objpack.* Attachment (pdf-Attachment)i_objpack-transf_bin = 'X'.i_objpack-head_start = 1.i_objpack-head_num = 0.i_objpack-body_start = 1.DESCRIBE TABLE i_objbin LINES v_lines_bin.READ TABLE i_objbin INDEX v_lines_bin.i_objpack-doc_size = v_lines_bin * 255 .i_objpack-body_num = v_lines_bin.i_objpack-doc_type = 'PDF'.i_objpack-obj_name = 'smart'.i_objpack-obj_descr = 'test'.APPEND i_objpack.CLEAR i_reclist.i_reclist-receiver = 'nareshreddy.k@gmail.com'.i_reclist-rec_type = 'U'.APPEND i_reclist.CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = wa_doc_chng put_in_outbox = 'X' commit_work = 'X' TABLES packing_list = i_objpack object_header = wa_objhead contents_bin = i_objbin contents_txt = i_objtxt receivers = i_reclist 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.IF sy-subrc <> 0. WRITE:/ 'Error When Sending the File', sy-subrc.ELSE. WRITE:/ 'Mail sent'.ENDIF.
No comments:
Post a Comment