06
May
Send an e-mail throught Scot with an attached PDF recovered from Archivelink
FUNCTION z_viajes_envio_correo. *"---------------------------------------------------------------------- *"*"Interfase local *" IMPORTING *" REFERENCE(P_DESTINATARIO) TYPE SO_RECNAME *" REFERENCE(P_CABECERA) TYPE STRING *" REFERENCE(P_CUERPO) TYPE STRING *" REFERENCE(P_AR_OBJECT) TYPE TOAOM-AR_OBJECT *" REFERENCE(P_OBJECT_ID) TYPE SAPB-SAPOBJID *" REFERENCE(P_SAP_OBJECT) TYPE TOAOM-SAP_OBJECT *" REFERENCE(P_DOC_TYPE) TYPE SO_OBJ_TP *" EXCEPTIONS *" NO_ATTACHMENT_FOUND *" EMAIL_NOT_SENDED *"---------------------------------------------------------------------- DATA: docdata LIKE sodocchgi1, objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE, objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE, objbin1 LIKE solisti1 OCCURS 10 WITH HEADER LINE, objbin2 LIKE solisti1 OCCURS 10 WITH HEADER LINE, objbin_final LIKE solisti1 OCCURS 10 WITH HEADER LINE, reclist LIKE somlreci1 OCCURS 1 WITH HEADER LINE, tab_lines TYPE sy-tabix. DATA : solixtab TYPE solix_tab. DATA : archivobject TYPE STANDARD TABLE OF docs. DATA : binarchivobject TYPE STANDARD TABLE OF tbl1024. DATA : binarch_string TYPE string. DATA: wa_binarchivobject LIKE LINE OF binarchivobject. DATA: gd_sender_type LIKE soextreci1-adr_typ. DATA: rcode LIKE sy-subrc. DATA: n TYPE i. * Body docdata-obj_name = space. docdata-obj_descr = p_cabecera. objtxt = p_cuerpo. APPEND objtxt. DESCRIBE TABLE objtxt LINES tab_lines. READ TABLE objtxt INDEX tab_lines. docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ). CLEAR objpack-transf_bin. objpack-head_start = 1. objpack-head_num = 0. objpack-body_start = 1. objpack-body_num = tab_lines. objpack-doc_type = 'RAW'. APPEND objpack. * Attachment Pdf. CALL FUNCTION 'ARCHIV_GET_TABLE' EXPORTING ar_object = p_ar_object object_id = p_object_id sap_object = p_sap_object TABLES archivobject = archivobject binarchivobject = binarchivobject EXCEPTIONS error_archiv = 1 error_communicationtable = 2 error_connectiontable = 3 error_kernel = 4 error_parameter = 5 not_unique = 6 OTHERS = 7. IF sy-subrc <> 0. RAISE no_attachment_found. ENDIF. PERFORM table_copy IN PROGRAM saplsokp TABLES binarchivobject solixtab CHANGING rcode. * Create attachment notification objpack-transf_bin = 'X'. objpack-head_start = 1. objpack-head_num = 1. objpack-body_start = 1. DESCRIBE TABLE solixtab LINES objpack-body_num. objpack-doc_type = p_doc_type. CONCATENATE 'Solicitud_Viaje_' p_object_id INTO objpack-obj_descr. objpack-doc_size = objpack-body_num * 255. APPEND objpack. *Create the list of recipients reclist-receiver = p_destinatario. reclist-rec_type = 'U'. reclist-express = 'X'. APPEND reclist. *Send the e-mail CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1' EXPORTING document_data = docdata put_in_outbox = 'X' commit_work = 'X' TABLES packing_list = objpack contents_txt = objtxt contents_hex = solixtab receivers = 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. RAISE email_not_sended. ENDIF. COMMIT WORK. ENDFUNCTION.


