Beruflich Dokumente
Kultur Dokumente
Search
Search
The Web
Showing newest posts with label User Exit for Billing Document. Show older posts Showing newest posts with label User Exit for Billing Document. Show older posts
DATA: ans(1). DATA: i_vgbel TYPE vbrp-vgbel, i_vgbel1 TYPE lips-vgbel, i_kunnr TYPE kna1-kunnr, i_vbeln TYPE vbak-vbeln, i_adrnr TYPE kna1-adrnr, email TYPE adr6-smtp_addr, zmail(1). SELECT SINGLE vgbel FROM vbrp INTO i_vgbel WHERE vbeln = cvbrk-vbeln. IF sy-subrc = 0. SELECT SINGLE vgbel FROM lips INTO i_vgbel1 WHERE vbeln = i_vgbel. SELECT SINGLE vbeln FROM vbap INTO i_vbeln WHERE vbeln = i_vgbel1. SELECT SINGLE kunnr FROM vbak INTO i_kunnr WHERE vbeln = i_vbeln. SELECT SINGLE adrnr zmail FROM kna1 INTO (i_adrnr,zmail) WHERE kunnr = i_kunnr. SELECT SINGLE smtp_addr FROM adr6 INTO email WHERE addrnumber = i_adrnr. ENDIF. IF zmail = 'X'. CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING titlebar = 'Send Mail ' * DIAGNOSE_OBJECT = ' ' text_question = 'Send Invoice Print Mail?' text_button_1 = 'Yes'(001) * ICON_BUTTON_1 = ' ' text_button_2 = 'No'(002) * ICON_BUTTON_2 = ' ' default_button = '1' display_cancel_button = 'X' * USERDEFINED_F1_HELP = ' ' * START_COLUMN = 25 * START_ROW = 6 * POPUP_TYPE = * IV_QUICKINFO_BUTTON_1 = ' ' * IV_QUICKINFO_BUTTON_2 = ' ' IMPORTING answer = ans.
* TABLES * PARAMETER = * EXCEPTIONS * TEXT_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.
IF ans = '1'. IF email IS INITIAL. MESSAGE 'Customer Master Not Maintain Mail Address' TYPE 'E'. ELSE. DATA: 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, it_docs TYPE STANDARD TABLE OF docs, * 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 = 'ZSD_PMAC_INVOICE_PRINTOUT' 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 s_vbeln = cvbrk-vbeln 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. REFRESH: i_reclist, i_objtxt, i_objbin, i_objpack. CLEAR wa_objhead. i_objbin[] = i_record[]. * Create Message Body Title and Description i_objtxt = 'Invoice Print Out'. APPEND i_objtxt. DESCRIBE TABLE i_objtxt LINES v_lines_txt. READ TABLE i_objtxt INDEX v_lines_txt. wa_doc_chng-obj_name = 'Invoice Print'. wa_doc_chng-expiry_dat = sy-datum + 10. wa_doc_chng-obj_descr = 'Invoice Print'. wa_doc_chng-sensitivty = 'F'. wa_doc_chng-doc_size = v_lines_txt * 255. * Main Text CLEAR 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 = email. 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.