<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Report in Background in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090393#M733010</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sending mail with attachment report in Background &lt;/P&gt;&lt;P&gt;Content Author: Fernando Faian &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have read the hint about "Sending mail with attachment report". &lt;/P&gt;&lt;P&gt;It's great, but how can I make this function work in background?? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had that needed last year too. See attachment a function group with two functions. The second one has that functionality to send email or fax (SAP office) with attachment objects in background job using SO_ATTACHMENT_INSERT function.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pay attention because it&amp;#146;s working with output list from spool converted to pdf.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=================================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;z_send_email_fax_global&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION-POOL z_gfaian_mail_fax.            "MESSAGE-ID ..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WORK TABLE AREAS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;TABLES: tsp01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL TABLES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: lt_rec_tab LIKE STANDARD TABLE OF soos1 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      lt_note_text   LIKE STANDARD TABLE OF soli  WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      lt_attachments LIKE STANDARD TABLE OF sood5 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lt_objcont LIKE STANDARD TABLE OF soli WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      lt_objhead LIKE STANDARD TABLE OF soli WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: pdf_format LIKE STANDARD TABLE OF tline WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF y_files,&lt;/P&gt;&lt;P&gt;       file(60) TYPE c,&lt;/P&gt;&lt;P&gt;       END OF y_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lt_files TYPE STANDARD TABLE OF y_files WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: l_objcont     LIKE soli OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: l_objhead     LIKE soli OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STRUCTURES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: folder_id      LIKE soodk,&lt;/P&gt;&lt;P&gt;      object_id      LIKE soodk,&lt;/P&gt;&lt;P&gt;      link_folder_id LIKE soodk,&lt;/P&gt;&lt;P&gt;      g_document     LIKE sood4,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     g_header_data  LIKE sood2,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      g_folmem_data  LIKE sofm2,&lt;/P&gt;&lt;P&gt;      g_header_data  LIKE sood2,&lt;/P&gt;&lt;P&gt;      g_receive_data LIKE soos6,&lt;/P&gt;&lt;P&gt;      g_ref_document LIKE sood4,&lt;/P&gt;&lt;P&gt;      g_new_parent   LIKE soodk,&lt;/P&gt;&lt;P&gt;      l_folder_id    LIKE sofdk,&lt;/P&gt;&lt;P&gt;      v_email(50).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: hd_dat  like sood1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; VARIABLES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: client  LIKE tst01-dclient,&lt;/P&gt;&lt;P&gt;      name    LIKE tst01-dname,&lt;/P&gt;&lt;P&gt;      objtype LIKE rststype-type,&lt;/P&gt;&lt;P&gt;      type    LIKE rststype-type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: numbytes TYPE i,&lt;/P&gt;&lt;P&gt;      arc_idx LIKE toa_dara,&lt;/P&gt;&lt;P&gt;      pdfspoolid LIKE tsp01-rqident,&lt;/P&gt;&lt;P&gt;      jobname LIKE tbtcjob-jobname,&lt;/P&gt;&lt;P&gt;      jobcount LIKE tbtcjob-jobcount,&lt;/P&gt;&lt;P&gt;      is_otf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: outbox_flag LIKE sonv-flag VALUE 'X',&lt;/P&gt;&lt;P&gt;      store_flag  LIKE sonv-flag,&lt;/P&gt;&lt;P&gt;      delete_flag LIKE sonv-flag,&lt;/P&gt;&lt;P&gt;      owner       LIKE soud-usrnam,&lt;/P&gt;&lt;P&gt;      on          LIKE sonv-flag VALUE 'X',&lt;/P&gt;&lt;P&gt;      sent_to_all LIKE sonv-flag,&lt;/P&gt;&lt;P&gt;      g_authority LIKE sofa-usracc,&lt;/P&gt;&lt;P&gt;      w_objdes    LIKE sood4-objdes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: c_file LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;      n_spool(6) TYPE n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: cancel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: desired_type  LIKE sood-objtp,&lt;/P&gt;&lt;P&gt;      real_type LIKE sood-objtp,&lt;/P&gt;&lt;P&gt;      attach_type LIKE sood-objtp,&lt;/P&gt;&lt;P&gt;      otf LIKE sood-objtp VALUE 'OTF', " SAPscript Ausgabeformat&lt;/P&gt;&lt;P&gt;      ali LIKE sood-objtp VALUE 'ALI'. " ABAP lists&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONSTANTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;CONSTANTS: ou_fol LIKE sofh-folrg              VALUE 'O',&lt;/P&gt;&lt;P&gt;           c_objtp    LIKE g_document-objtp    VALUE 'RAW',&lt;/P&gt;&lt;P&gt;           c_file_ext LIKE g_document-file_ext VALUE 'TXT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=================================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;z_send_email_fax2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION z_faian_mail_fax2.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Interface local:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     REFERENCE(SRC_SPOOLID) LIKE  TSP01-RQIDENT&lt;/P&gt;&lt;P&gt;*"     REFERENCE(FAX_MAIL_NUMBER) TYPE  SO_NAME&lt;/P&gt;&lt;P&gt;*"     REFERENCE(HEADER_MAIL) TYPE  SO_OBJ_DES&lt;/P&gt;&lt;P&gt;*"     REFERENCE(OBJECT_TYPE) TYPE  SO_ESCAPE&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      LT_BODY_EMAIL STRUCTURE  SOLI&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      ERR_NO_ABAP_SPOOLJOB&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fist part: Verify if the spool really exists&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    RAISE err_no_abap_spooljob. "doesn't exist&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    client = tsp01-rqclient.&lt;/P&gt;&lt;P&gt;    name   = tsp01-rqo1name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'RSTS_GET_ATTRIBUTES'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              authority     = 'SP01'&lt;/P&gt;&lt;P&gt;              client        = client&lt;/P&gt;&lt;P&gt;              name          = name&lt;/P&gt;&lt;P&gt;              part          = 1&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              type          = type&lt;/P&gt;&lt;P&gt;              objtype       = objtype&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              fb_error      = 1&lt;/P&gt;&lt;P&gt;              fb_rsts_other = 2&lt;/P&gt;&lt;P&gt;              no_object     = 3&lt;/P&gt;&lt;P&gt;              no_permission = 4&lt;/P&gt;&lt;P&gt;              OTHERS        = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF objtype(3) = 'OTF'.&lt;/P&gt;&lt;P&gt;      desired_type = otf.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      desired_type = ali.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              rqident              = src_spoolid&lt;/P&gt;&lt;P&gt;              desired_type         = desired_type&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              real_type            = real_type&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              buffer               = l_objcont&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              no_such_job          = 14&lt;/P&gt;&lt;P&gt;              type_no_match        = 94&lt;/P&gt;&lt;P&gt;              job_contains_no_data = 54&lt;/P&gt;&lt;P&gt;              no_permission        = 21&lt;/P&gt;&lt;P&gt;              can_not_access       = 21&lt;/P&gt;&lt;P&gt;              read_error           = 54.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      attach_type = real_type.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              owner     = sy-uname&lt;/P&gt;&lt;P&gt;              region    = ou_fol&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              folder_id = l_folder_id&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              OTHERS    = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill out informations about the header of the email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR: g_document.&lt;/P&gt;&lt;P&gt;    g_document-foltp     = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;    g_document-folyr     = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;    g_document-folno     = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_document-objtp     = c_objtp.&lt;/P&gt;&lt;P&gt;    g_document-objdes    = header_mail.&lt;/P&gt;&lt;P&gt;    g_document-file_ext  = c_file_ext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_header_data-objdes    = header_mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              method      = 'SAVE'&lt;/P&gt;&lt;P&gt;              office_user = sy-uname&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              authority   = g_authority&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              objcont     = lt_body_email&lt;/P&gt;&lt;P&gt;              attachments = lt_attachments&lt;/P&gt;&lt;P&gt;         CHANGING&lt;/P&gt;&lt;P&gt;              document    = g_document&lt;/P&gt;&lt;P&gt;              header_data = g_header_data&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              OTHERS      = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    folder_id-objtp = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;    folder_id-objyr = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;    folder_id-objno = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    object_id-objtp = c_objtp.&lt;/P&gt;&lt;P&gt;    object_id-objyr = g_document-objyr.&lt;/P&gt;&lt;P&gt;    object_id-objno = g_document-objno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    link_folder_id-objtp = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;    link_folder_id-objyr = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;    link_folder_id-objno = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH lt_rec_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR lt_rec_tab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-sel        = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-recesc     = object_type.   "This field for FAX/MAIL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-recnam     = 'U-'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-deliver    = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-not_deli   = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-read       = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-mailstatus = 'E'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-adr_name   = fax_mail_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-sortfield  = fax_mail_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-recextnam  = fax_mail_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-sortclass  = '5'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND lt_rec_tab.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      lt_rec_tab-recextnam = fax_mail_number.&lt;/P&gt;&lt;P&gt;      lt_rec_tab-recesc = object_type.&lt;/P&gt;&lt;P&gt;      lt_rec_tab-sndart = 'INT'.&lt;/P&gt;&lt;P&gt;      lt_rec_tab-sndpri = 1.&lt;/P&gt;&lt;P&gt;      APPEND lt_rec_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    lt_files-file = c_file.&lt;/P&gt;&lt;P&gt;    APPEND lt_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;begin of insertion by faianf01&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    hd_dat-objdes = header_mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_ATTACHMENT_INSERT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              object_id                  = object_id&lt;/P&gt;&lt;P&gt;              attach_type                = attach_type&lt;/P&gt;&lt;P&gt;              object_hd_change           = hd_dat&lt;/P&gt;&lt;P&gt;              owner                      = sy-uname&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              objcont                    = l_objcont&lt;/P&gt;&lt;P&gt;              objhead                    = l_objhead&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              active_user_not_exist      = 35&lt;/P&gt;&lt;P&gt;              communication_failure      = 71&lt;/P&gt;&lt;P&gt;              object_type_not_exist      = 17&lt;/P&gt;&lt;P&gt;              operation_no_authorization = 21&lt;/P&gt;&lt;P&gt;              owner_not_exist            = 22&lt;/P&gt;&lt;P&gt;              parameter_error            = 23&lt;/P&gt;&lt;P&gt;              substitute_not_active      = 31&lt;/P&gt;&lt;P&gt;              substitute_not_defined     = 32&lt;/P&gt;&lt;P&gt;              system_failure             = 72&lt;/P&gt;&lt;P&gt;              x_error                    = 1000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insertion by faianf01&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;send email from SAPOFFICE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'SO_OBJECT_SEND'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              folder_id                  = folder_id&lt;/P&gt;&lt;P&gt;              object_id                  = object_id&lt;/P&gt;&lt;P&gt;              outbox_flag                = outbox_flag&lt;/P&gt;&lt;P&gt;              link_folder_id             = link_folder_id&lt;/P&gt;&lt;P&gt;              owner                      = sy-uname&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             check_send_authority       = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              receivers                  = lt_rec_tab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             note_text                  = lt_note_text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              active_user_not_exist      = 35&lt;/P&gt;&lt;P&gt;              communication_failure      = 71&lt;/P&gt;&lt;P&gt;              component_not_available    = 1&lt;/P&gt;&lt;P&gt;              folder_no_authorization    = 5&lt;/P&gt;&lt;P&gt;              folder_not_exist           = 6&lt;/P&gt;&lt;P&gt;              forwarder_not_exist        = 8&lt;/P&gt;&lt;P&gt;              object_no_authorization    = 13&lt;/P&gt;&lt;P&gt;              object_not_exist           = 14&lt;/P&gt;&lt;P&gt;              object_not_sent            = 15&lt;/P&gt;&lt;P&gt;              operation_no_authorization = 21&lt;/P&gt;&lt;P&gt;              owner_not_exist            = 22&lt;/P&gt;&lt;P&gt;              parameter_error            = 23&lt;/P&gt;&lt;P&gt;              substitute_not_active      = 31&lt;/P&gt;&lt;P&gt;              substitute_not_defined     = 32&lt;/P&gt;&lt;P&gt;              system_failure             = 72&lt;/P&gt;&lt;P&gt;              too_much_receivers         = 73&lt;/P&gt;&lt;P&gt;              user_not_exist             = 35.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=================================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;z_send_email_fax&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION ZCBFS_SEND_MAIL.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Interface local:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     REFERENCE(SRC_SPOOLID) LIKE  TSP01-RQIDENT&lt;/P&gt;&lt;P&gt;*"     REFERENCE(HEADER_MAIL) TYPE  SO_OBJ_DES&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      LIST_FAX_MAIL_NUMBER STRUCTURE  SOLI&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      ERR_NO_ABAP_SPOOLJOB&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;  DATA: vg_achou(1) TYPE n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fist part: Verify if the spool really exists&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  vg_achou = 1.&lt;/P&gt;&lt;P&gt;  DO 60 TIMES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      CLEAR vg_achou.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WAIT UP TO 1 SECONDS.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF vg_achou = 1.&lt;/P&gt;&lt;P&gt;    RAISE err_no_abap_spooljob. "doesn't exist&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  client = tsp01-rqclient.&lt;/P&gt;&lt;P&gt;  name   = tsp01-rqo1name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'RSTS_GET_ATTRIBUTES'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            authority     = 'SP01'&lt;/P&gt;&lt;P&gt;            client        = client&lt;/P&gt;&lt;P&gt;            name          = name&lt;/P&gt;&lt;P&gt;            part          = 1&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            type          = type&lt;/P&gt;&lt;P&gt;            objtype       = objtype&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            fb_error      = 1&lt;/P&gt;&lt;P&gt;            fb_rsts_other = 2&lt;/P&gt;&lt;P&gt;            no_object     = 3&lt;/P&gt;&lt;P&gt;            no_permission = 4&lt;/P&gt;&lt;P&gt;            OTHERS        = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF objtype(3) = 'OTF'.&lt;/P&gt;&lt;P&gt;    desired_type = otf.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    desired_type = ali.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            rqident              = src_spoolid&lt;/P&gt;&lt;P&gt;            desired_type         = desired_type&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            real_type            = real_type&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            buffer               = l_objcont&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            no_such_job          = 14&lt;/P&gt;&lt;P&gt;            type_no_match        = 94&lt;/P&gt;&lt;P&gt;            job_contains_no_data = 54&lt;/P&gt;&lt;P&gt;            no_permission        = 21&lt;/P&gt;&lt;P&gt;            can_not_access       = 21&lt;/P&gt;&lt;P&gt;            read_error           = 54.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    attach_type = real_type.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            owner     = sy-uname&lt;/P&gt;&lt;P&gt;            region    = ou_fol&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            folder_id = l_folder_id&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS    = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill out informations about the header of the email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: g_document.&lt;/P&gt;&lt;P&gt;  g_document-foltp     = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;  g_document-folyr     = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;  g_document-folno     = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_document-objtp     = c_objtp.&lt;/P&gt;&lt;P&gt;  g_document-objdes    = header_mail.&lt;/P&gt;&lt;P&gt;  g_document-file_ext  = c_file_ext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_header_data-objdes    = header_mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            method      = 'SAVE'&lt;/P&gt;&lt;P&gt;            office_user = sy-uname&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            authority   = g_authority&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            attachments = lt_attachments&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;            document    = g_document&lt;/P&gt;&lt;P&gt;            header_data = g_header_data&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS      = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  folder_id-objtp = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;  folder_id-objyr = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;  folder_id-objno = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  object_id-objtp = c_objtp.&lt;/P&gt;&lt;P&gt;  object_id-objyr = g_document-objyr.&lt;/P&gt;&lt;P&gt;  object_id-objno = g_document-objno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  link_folder_id-objtp = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;  link_folder_id-objyr = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;  link_folder_id-objno = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH lt_rec_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT LIST_FAX_MAIL_NUMBER.&lt;/P&gt;&lt;P&gt;    lt_rec_tab-recextnam = LIST_FAX_MAIL_NUMBER-LINE.&lt;/P&gt;&lt;P&gt;    lt_rec_tab-recesc = 'U'.&lt;/P&gt;&lt;P&gt;    lt_rec_tab-sndart = 'INT'.&lt;/P&gt;&lt;P&gt;    lt_rec_tab-sndpri = 1.&lt;/P&gt;&lt;P&gt;    APPEND lt_rec_tab.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lt_files-file = c_file.&lt;/P&gt;&lt;P&gt;  APPEND lt_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  hd_dat-objdes = header_mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_ATTACHMENT_INSERT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            object_id                  = object_id&lt;/P&gt;&lt;P&gt;            attach_type                = attach_type&lt;/P&gt;&lt;P&gt;            object_hd_change           = hd_dat&lt;/P&gt;&lt;P&gt;            owner                      = sy-uname&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            objcont                    = l_objcont&lt;/P&gt;&lt;P&gt;            objhead                    = l_objhead&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            active_user_not_exist      = 35&lt;/P&gt;&lt;P&gt;            communication_failure      = 71&lt;/P&gt;&lt;P&gt;            object_type_not_exist      = 17&lt;/P&gt;&lt;P&gt;            operation_no_authorization = 21&lt;/P&gt;&lt;P&gt;            owner_not_exist            = 22&lt;/P&gt;&lt;P&gt;            parameter_error            = 23&lt;/P&gt;&lt;P&gt;            substitute_not_active      = 31&lt;/P&gt;&lt;P&gt;            substitute_not_defined     = 32&lt;/P&gt;&lt;P&gt;            system_failure             = 72&lt;/P&gt;&lt;P&gt;            x_error                    = 1000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;gt; 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;send email from SAPOFFICE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SO_OBJECT_SEND'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            folder_id                  = folder_id&lt;/P&gt;&lt;P&gt;            object_id                  = object_id&lt;/P&gt;&lt;P&gt;            outbox_flag                = outbox_flag&lt;/P&gt;&lt;P&gt;            link_folder_id             = link_folder_id&lt;/P&gt;&lt;P&gt;            owner                      = sy-uname&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            receivers                  = lt_rec_tab&lt;/P&gt;&lt;P&gt;            note_text                  = lt_note_text&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            active_user_not_exist      = 35&lt;/P&gt;&lt;P&gt;            communication_failure      = 71&lt;/P&gt;&lt;P&gt;            component_not_available    = 1&lt;/P&gt;&lt;P&gt;            folder_no_authorization    = 5&lt;/P&gt;&lt;P&gt;            folder_not_exist           = 6&lt;/P&gt;&lt;P&gt;            forwarder_not_exist        = 8&lt;/P&gt;&lt;P&gt;            object_no_authorization    = 13&lt;/P&gt;&lt;P&gt;            object_not_exist           = 14&lt;/P&gt;&lt;P&gt;            object_not_sent            = 15&lt;/P&gt;&lt;P&gt;            operation_no_authorization = 21&lt;/P&gt;&lt;P&gt;            owner_not_exist            = 22&lt;/P&gt;&lt;P&gt;            parameter_error            = 23&lt;/P&gt;&lt;P&gt;            substitute_not_active      = 31&lt;/P&gt;&lt;P&gt;            substitute_not_defined     = 32&lt;/P&gt;&lt;P&gt;            system_failure             = 72&lt;/P&gt;&lt;P&gt;            too_much_receivers         = 73&lt;/P&gt;&lt;P&gt;            user_not_exist             = 35.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=================================================================================&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 02 Dec 2007 07:06:11 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-02T07:06:11Z</dc:date>
    <item>
      <title>Report in Background</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090388#M733005</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I developing a report which has to run in background. The results have to be extracted to a excel file and mailed to the concerned user entered on the selection screen. How can i do that...? thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2007 15:29:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090388#M733005</guid>
      <dc:creator>SG141</dc:creator>
      <dc:date>2007-11-30T15:29:07Z</dc:date>
    </item>
    <item>
      <title>Re: Report in Background</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090389#M733006</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know little bit abt background job&lt;/P&gt;&lt;P&gt;To run the prog in bakbround..the following is the procedure..&lt;/P&gt;&lt;P&gt;Go to se38, open the program&lt;/P&gt;&lt;P&gt;Execute it (Press F8)&lt;/P&gt;&lt;P&gt;Enter values on selection screen and press F9&lt;/P&gt;&lt;P&gt;Enter output device&lt;/P&gt;&lt;P&gt;In spool option uncheck print immediately&lt;/P&gt;&lt;P&gt;Press enter, another screen appears with heading start time, u can press start immediately&lt;/P&gt;&lt;P&gt;Then save. Background job is scheduled.&lt;/P&gt;&lt;P&gt;You can check the status in sm37. Check the job log for the status.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpful..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Karthick.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Karthick&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2007 15:31:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090389#M733006</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-30T15:31:25Z</dc:date>
    </item>
    <item>
      <title>Re: Report in Background</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090390#M733007</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi There,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When you run the report in Background, don't try to download the file to PC, so use open dataset concept and download it to app. server. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regarding sending mail you can search in SDN, you will get good examples simply you can copy and paste with small changes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pavan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2007 15:36:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090390#M733007</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-30T15:36:03Z</dc:date>
    </item>
    <item>
      <title>Re: Report in Background</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090391#M733008</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Talk to basis guys or play around sm36 and sm37 transactions to do that.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2007 16:03:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090391#M733008</guid>
      <dc:creator>former_member191735</dc:creator>
      <dc:date>2007-11-30T16:03:55Z</dc:date>
    </item>
    <item>
      <title>Re: Report in Background</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090392#M733009</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess you will put all your results in the internal table.Then you can use following code for refernce.It sends  a pdf attachment to the mail user id mentioned in the select-options.you can convert spool to pdf and then send it as an attachment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZBP_BDCP_CLFO_UPLOAD                                           *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                        *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Created By      : Raghuram Devagiri.                                   *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zbp_bdcp_clfo_upload LINE-SIZE 255 LINE-COUNT 65&lt;/P&gt;&lt;P&gt;                        NO STANDARD PAGE HEADING MESSAGE-ID zcrm_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:bbp_iu01.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 Structure declarations                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Main Upload structure&lt;/P&gt;&lt;P&gt;TYPES:BEGIN OF w_data,&lt;/P&gt;&lt;P&gt;      cust_id             TYPE bu_id_number,           "Customer ID&lt;/P&gt;&lt;P&gt;      idnumber            TYPE bu_id_number,           "Investor ID&lt;/P&gt;&lt;P&gt;      tag_code(2)         TYPE c,                      "Tag code&lt;/P&gt;&lt;P&gt;      lob(3)              TYPE c,                      "Line of business&lt;/P&gt;&lt;P&gt;      matching_rule(255)  TYPE c,                      "Matching rule&lt;/P&gt;&lt;P&gt;      create_date         TYPE dats,                   "Creation date&lt;/P&gt;&lt;P&gt;      mod_date            TYPE dats,                   "Modified date&lt;/P&gt;&lt;P&gt;      crt_user_id(20)     TYPE c,                      "Creator User ID&lt;/P&gt;&lt;P&gt;      mod_user_id(20)     TYPE c,                      "Modifier USer ID&lt;/P&gt;&lt;P&gt;      END OF w_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Business partner&lt;/P&gt;&lt;P&gt;DATA:w_bp TYPE bu_partner.                       "Business partner number&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Structure of the Successful record&lt;/P&gt;&lt;P&gt;TYPES:BEGIN OF w_success ,&lt;/P&gt;&lt;P&gt;      custid TYPE bu_bpext,                           "Customer ID&lt;/P&gt;&lt;P&gt;      rec    TYPE i,                                  "Record Number&lt;/P&gt;&lt;P&gt;      bp     TYPE bu_partner,                         "Business Partner Number&lt;/P&gt;&lt;P&gt;      END OF w_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Structure of the Unsuccessful record&lt;/P&gt;&lt;P&gt;TYPES:BEGIN OF w_errors,&lt;/P&gt;&lt;P&gt;      rec(5)              TYPE c,                      "Record Number&lt;/P&gt;&lt;P&gt;      cust_id             TYPE bu_id_number,           "Customer ID&lt;/P&gt;&lt;P&gt;      idnumber            TYPE bu_id_number,           "Investor ID&lt;/P&gt;&lt;P&gt;      tag_code(2)         TYPE c,                      "Tag code&lt;/P&gt;&lt;P&gt;      lob(3)              TYPE c,                      "Line of business&lt;/P&gt;&lt;P&gt;      matching_rule(255)  TYPE c,                      "Matching rule&lt;/P&gt;&lt;P&gt;      create_date         TYPE dats,                   "Creation date&lt;/P&gt;&lt;P&gt;      mod_date            TYPE dats,                   "Modified date&lt;/P&gt;&lt;P&gt;      crt_user_id(20)     TYPE c,                      "Creator User ID&lt;/P&gt;&lt;P&gt;      mod_user_id(20)     TYPE c,                      "Modifier USer ID&lt;/P&gt;&lt;P&gt;      msg                 TYPE bapi_msg,&lt;/P&gt;&lt;P&gt;      END OF w_errors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Spool IDs&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF w_tbtcp.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE tbtcp.&lt;/P&gt;&lt;P&gt;TYPES: END OF w_tbtcp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Class for String processing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                Constant declarations                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Identification types&lt;/P&gt;&lt;P&gt;CONSTANTS:c_cust_id        TYPE bu_id_type VALUE 'ZID009',  "Customer id type&lt;/P&gt;&lt;P&gt;          c_folio_id_type  TYPE bu_id_type VALUE 'ZID001',  "Folio    id type&lt;/P&gt;&lt;P&gt;          c_client_id_type TYPE bu_id_type VALUE 'ZID002',  "Client   id type&lt;/P&gt;&lt;P&gt;          c_lob_mf(2)      TYPE c          VALUE 'MF',      "Line of business(MF)&lt;/P&gt;&lt;P&gt;          c_lob_pms(3)     TYPE c          VALUE 'PMS'.     "Line of business(PMS)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: con_tab  TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;/P&gt;&lt;P&gt;*Binary store for PDF&lt;/P&gt;&lt;P&gt;CONSTANTS:c_device(4) TYPE c VALUE 'LOCL',&lt;/P&gt;&lt;P&gt;          c_format(3) TYPE c VALUE 'PDF',&lt;/P&gt;&lt;P&gt;          c_no(1)     TYPE c VALUE ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              Internal Table declarations                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_data              TYPE STANDARD TABLE OF w_data    WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_success_records   TYPE STANDARD TABLE OF w_success WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_error_records     TYPE STANDARD TABLE OF w_errors  WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_bapiret2          LIKE bapiret2 OCCURS 0           WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Binary store for PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF i_pdf_output OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE tline.&lt;/P&gt;&lt;P&gt;DATA: END OF i_pdf_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_tbtcp     TYPE STANDARD TABLE OF w_tbtcp INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_mess_bod  LIKE solisti1   OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_mess_att  LIKE solisti1   OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                Data declarations                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:g_tabix          LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;     g_identification TYPE bapibus1006_identification,&lt;/P&gt;&lt;P&gt;     w1_tbtcp         TYPE w_tbtcp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Job Runtime Parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: g_eventid                  LIKE tbtcm-eventid,&lt;/P&gt;&lt;P&gt;      g_eventparm                LIKE tbtcm-eventparm,&lt;/P&gt;&lt;P&gt;      g_external_program_active  LIKE tbtcm-xpgactive,&lt;/P&gt;&lt;P&gt;      g_jobcount                 LIKE tbtcm-jobcount,&lt;/P&gt;&lt;P&gt;      g_jobname                  LIKE tbtcm-jobname,&lt;/P&gt;&lt;P&gt;      g_stepcount                LIKE tbtcm-stepcount,&lt;/P&gt;&lt;P&gt;      g_error                    LIKE sy-subrc,&lt;/P&gt;&lt;P&gt;      g_reciever                 LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Spool to PDF conversions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: g_spool_nr    LIKE tsp01-rqident,&lt;/P&gt;&lt;P&gt;      g_bytecount   LIKE tst01-dsize,&lt;/P&gt;&lt;P&gt;      g_buffer      TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*converting spool request to PDF and to trigger mail&lt;/P&gt;&lt;P&gt;DATA: g_recsize TYPE i,&lt;/P&gt;&lt;P&gt;      g_subject         LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;      g_sender_type     LIKE soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;      g_attachment_desc TYPE so_obj_nam,&lt;/P&gt;&lt;P&gt;      g_attachment_name TYPE so_obj_des.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Mail IDs&lt;/P&gt;&lt;P&gt;DATA: g_sender TYPE somlreci1-receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      Selection Screen Declaration                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***************************************************************************&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_file(1024)  TYPE c OBLIGATORY LOWER CASE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:s_email FOR bbp_iu01-email NO INTERVALS.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK blk3 WITH FRAME TITLE text-026.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-027.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-028.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(79) text-029.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT /1(72) text-030.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK blk3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START-OF-SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*To upload folio file data from application server&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM file_upload USING p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_data.&lt;/P&gt;&lt;P&gt;    g_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;    IF it_data-cust_id IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;*To get Business partner based on customer id.&lt;/P&gt;&lt;P&gt;      PERFORM get_bp.&lt;/P&gt;&lt;P&gt;*To add identification to the selected business partner&lt;/P&gt;&lt;P&gt;      IF it_data-lob EQ c_lob_mf.&lt;/P&gt;&lt;P&gt;        PERFORM add_identification TABLES it_data&lt;/P&gt;&lt;P&gt;                                   USING  c_folio_id_type&lt;/P&gt;&lt;P&gt;                                          w_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSEIF it_data-lob EQ c_lob_pms.&lt;/P&gt;&lt;P&gt;        PERFORM add_identification TABLES it_data&lt;/P&gt;&lt;P&gt;                                   USING  c_client_id_type&lt;/P&gt;&lt;P&gt;                                          w_bp.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MOVE-CORRESPONDING it_data TO it_error_records.&lt;/P&gt;&lt;P&gt;        it_error_records-rec = g_tabix.&lt;/P&gt;&lt;P&gt;        it_error_records-msg = text-005.&lt;/P&gt;&lt;P&gt;        APPEND it_error_records.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Constructing the Return Messages for the Job&lt;/P&gt;&lt;P&gt;  PERFORM job_status TABLES it_success_records it_error_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Converting the return messages into PDF file and trigerring a mail notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-batch EQ 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM get_job_details.                "To get job details&lt;/P&gt;&lt;P&gt;    PERFORM obtain_spool_id.                "To obtain spool id&lt;/P&gt;&lt;P&gt;    PERFORM convert_spool_to_pdf.           "To convert spool to pdf&lt;/P&gt;&lt;P&gt;    PERFORM process_email.                  "To process email&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WAIT UP TO 5 SECONDS.&lt;/P&gt;&lt;P&gt;    SUBMIT rsconn01 WITH mode   = 'INT'&lt;/P&gt;&lt;P&gt;                    WITH output = 'X'&lt;/P&gt;&lt;P&gt;                    AND RETURN.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  file_upload&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; To upload the file from Applcation server to internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM file_upload USING uv_filename TYPE any .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:l_filestr  TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_data.&lt;/P&gt;&lt;P&gt;  CLEAR it_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Uploading the file from application server.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  OPEN DATASET uv_filename FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET uv_filename INTO l_filestr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        SPLIT l_filestr  AT con_tab INTO:&lt;/P&gt;&lt;P&gt;            it_data-cust_id        it_data-idnumber&lt;/P&gt;&lt;P&gt;            it_data-tag_code       it_data-lob&lt;/P&gt;&lt;P&gt;            it_data-matching_rule it_data-create_date&lt;/P&gt;&lt;P&gt;            it_data-mod_date      it_data-crt_user_id&lt;/P&gt;&lt;P&gt;            it_data-mod_user_id.&lt;/P&gt;&lt;P&gt;        APPEND it_data.&lt;/P&gt;&lt;P&gt;        CLEAR it_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLOSE DATASET uv_filename.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR :it_data.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " file_upload&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_BP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; To obtain business partner based on customer id&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT SINGLE   partner FROM but0id&lt;/P&gt;&lt;P&gt;                  INTO   w_bp&lt;/P&gt;&lt;P&gt;                  WHERE&lt;/P&gt;&lt;P&gt;                  type = c_cust_id&lt;/P&gt;&lt;P&gt;                  AND&lt;/P&gt;&lt;P&gt;                  idnumber = it_data-cust_id.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If there is no BP number corresponding to the customer ID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    it_error_records-cust_id        = it_data-cust_id.&lt;/P&gt;&lt;P&gt;    it_error_records-rec            = g_tabix.&lt;/P&gt;&lt;P&gt;    it_error_records-msg            = text-007.&lt;/P&gt;&lt;P&gt;    it_error_records-idnumber       = it_data-idnumber.&lt;/P&gt;&lt;P&gt;    it_error_records-lob            = it_data-lob.&lt;/P&gt;&lt;P&gt;    it_error_records-tag_code       = it_data-tag_code.&lt;/P&gt;&lt;P&gt;    it_error_records-matching_rule  = it_data-matching_rule.&lt;/P&gt;&lt;P&gt;    it_error_records-create_date    = it_data-create_date.&lt;/P&gt;&lt;P&gt;    it_error_records-mod_date       = it_data-mod_date.&lt;/P&gt;&lt;P&gt;    it_error_records-crt_user_id    = it_data-crt_user_id.&lt;/P&gt;&lt;P&gt;    it_error_records-mod_user_id    = it_data-mod_user_id.&lt;/P&gt;&lt;P&gt;    APPEND it_error_records.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_BP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ADD_IDENTIFICATION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   * Adding up Identification numbers to the BP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM add_identification TABLES ut_data     STRUCTURE it_data&lt;/P&gt;&lt;P&gt;                         USING uv_id_type  TYPE bu_id_type&lt;/P&gt;&lt;P&gt;                               uv_bp       TYPE bu_partner.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_bapiret2.&lt;/P&gt;&lt;P&gt;  CLEAR it_bapiret2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BUPA_IDENTIFICATION_ADD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      iv_partner              = uv_bp&lt;/P&gt;&lt;P&gt;      iv_identificationnumber = ut_data-idnumber&lt;/P&gt;&lt;P&gt;      is_identification       = g_identification&lt;/P&gt;&lt;P&gt;      iv_identificationtype   = uv_id_type&lt;/P&gt;&lt;P&gt;      iv_x_save               = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      et_return               = it_bapiret2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*If there are no error messages Success internal table is updated&lt;/P&gt;&lt;P&gt;  IF it_bapiret2[] IS INITIAL.&lt;/P&gt;&lt;P&gt;*Commit bapi transaction&lt;/P&gt;&lt;P&gt;    PERFORM bapi_commit.&lt;/P&gt;&lt;P&gt;*Filling up success records table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    it_success_records-custid = ut_data-cust_id.&lt;/P&gt;&lt;P&gt;    it_success_records-rec    = g_tabix.&lt;/P&gt;&lt;P&gt;    it_success_records-bp     = uv_bp.&lt;/P&gt;&lt;P&gt;    APPEND it_success_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;*Filling up error records table&lt;/P&gt;&lt;P&gt;    READ TABLE it_bapiret2 INDEX 1.&lt;/P&gt;&lt;P&gt;    it_error_records-cust_id        = ut_data-cust_id.&lt;/P&gt;&lt;P&gt;    it_error_records-rec            = g_tabix.&lt;/P&gt;&lt;P&gt;    it_error_records-msg            = it_bapiret2-message.&lt;/P&gt;&lt;P&gt;    it_error_records-idnumber       = ut_data-idnumber.&lt;/P&gt;&lt;P&gt;    it_error_records-lob            = ut_data-lob.&lt;/P&gt;&lt;P&gt;    it_error_records-tag_code       = ut_data-tag_code.&lt;/P&gt;&lt;P&gt;    it_error_records-matching_rule  = ut_data-matching_rule.&lt;/P&gt;&lt;P&gt;    it_error_records-create_date    = ut_data-create_date.&lt;/P&gt;&lt;P&gt;    it_error_records-mod_date       = ut_data-mod_date.&lt;/P&gt;&lt;P&gt;    it_error_records-crt_user_id    = ut_data-crt_user_id.&lt;/P&gt;&lt;P&gt;    it_error_records-mod_user_id    = ut_data-mod_user_id.&lt;/P&gt;&lt;P&gt;    APPEND it_error_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "add_identification&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  show_status&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Show the statuses of all the records of the input file after&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the processing of each of the records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM job_status  TABLES ut_success_records  STRUCTURE it_success_records&lt;/P&gt;&lt;P&gt;                         ut_error_records   STRUCTURE it_error_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_success_lines TYPE i,&lt;/P&gt;&lt;P&gt;        l_error_lines   TYPE i,&lt;/P&gt;&lt;P&gt;        l_filename      TYPE string VALUE 'error_file.txt',&lt;/P&gt;&lt;P&gt;        l_filestring    TYPE string,&lt;/P&gt;&lt;P&gt;        l_lines         TYPE i,&lt;/P&gt;&lt;P&gt;        l_msg           TYPE string.&lt;/P&gt;&lt;P&gt;  WRITE: text-006.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_data[] IS NOT INITIAL.              "To check whether data is transferred from file&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE it_data LINES l_lines.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE ut_error_records LINES l_error_lines.&lt;/P&gt;&lt;P&gt;    l_success_lines = l_lines - l_error_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:/ text-008,  p_file, 40 text-009,l_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE: / text-010,l_success_lines.&lt;/P&gt;&lt;P&gt;    WRITE: / text-011,l_error_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF ut_error_records[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      REPLACE '.TXT' WITH '_ERROR.TXT' INTO p_file .&lt;/P&gt;&lt;P&gt;      REPLACE '.txt' WITH '_error.txt' INTO p_file.&lt;/P&gt;&lt;P&gt;      CONCATENATE  text-012 ' : ' p_file INTO l_msg.&lt;/P&gt;&lt;P&gt;      SKIP 2.&lt;/P&gt;&lt;P&gt;      WRITE:/ l_msg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  To create the error records file in application server&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      OPEN DATASET p_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;      IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;        LOOP AT ut_error_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          CONCATENATE ut_error_records-rec         ut_error_records-cust_id&lt;/P&gt;&lt;P&gt;                      ut_error_records-idnumber    ut_error_records-tag_code&lt;/P&gt;&lt;P&gt;                      ut_error_records-lob         ut_error_records-matching_rule&lt;/P&gt;&lt;P&gt;                      ut_error_records-create_date ut_error_records-mod_date&lt;/P&gt;&lt;P&gt;                      ut_error_records-crt_user_id ut_error_records-mod_user_id&lt;/P&gt;&lt;P&gt;                      ut_error_records-msg&lt;/P&gt;&lt;P&gt;                      INTO l_filestring SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          TRANSFER l_filestring TO p_file.&lt;/P&gt;&lt;P&gt;          CLEAR l_filestring.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLOSE DATASET l_filename.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF ut_success_records[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      WRITE: / text-015.&lt;/P&gt;&lt;P&gt;      WRITE: / '----&lt;/P&gt;&lt;HR originaltext="-----------------------------" /&gt;&lt;P&gt;'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE: /1 text-003,15 text-025, 35 text-004.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To display successful records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      LOOP AT ut_success_records.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        WRITE: /1 ut_success_records-rec CENTERED,&lt;/P&gt;&lt;P&gt;               15 ut_success_records-custid LEFT-JUSTIFIED,&lt;/P&gt;&lt;P&gt;               35 ut_success_records-bp  CENTERED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SKIP 2.&lt;/P&gt;&lt;P&gt;    WRITE: p_file,&lt;/P&gt;&lt;P&gt;          / text-013.  "If no file is found in application server&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For Spool request to be converted to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  NEW-PAGE.&lt;/P&gt;&lt;P&gt;  COMMIT WORK.&lt;/P&gt;&lt;P&gt;  NEW-PAGE PRINT OFF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "show_status&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_job_details&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get the Job details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_job_details .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get current job details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'GET_JOB_RUNTIME_INFO'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      eventid                 = g_eventid&lt;/P&gt;&lt;P&gt;      eventparm               = g_eventparm&lt;/P&gt;&lt;P&gt;      external_program_active = g_external_program_active&lt;/P&gt;&lt;P&gt;      jobcount                = g_jobcount&lt;/P&gt;&lt;P&gt;      jobname                 = g_jobname&lt;/P&gt;&lt;P&gt;      stepcount               = g_stepcount&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_runtime_info         = 1&lt;/P&gt;&lt;P&gt;      OTHERS                  = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_job_details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  obtain_spool_id                                          *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Get the Spool ID                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM obtain_spool_id .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT ( g_jobname IS INITIAL ).&lt;/P&gt;&lt;P&gt;  CHECK NOT ( g_jobcount IS INITIAL ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT * FROM  tbtcp&lt;/P&gt;&lt;P&gt;                 INTO TABLE it_tbtcp&lt;/P&gt;&lt;P&gt;                 WHERE      jobname     = g_jobname&lt;/P&gt;&lt;P&gt;                 AND        jobcount    = g_jobcount&lt;/P&gt;&lt;P&gt;                 AND        stepcount   = g_stepcount&lt;/P&gt;&lt;P&gt;                 AND        listident   &amp;lt;&amp;gt; '0000000000'&lt;/P&gt;&lt;P&gt;                 ORDER BY   jobname&lt;/P&gt;&lt;P&gt;                            jobcount&lt;/P&gt;&lt;P&gt;                            stepcount.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE it_tbtcp INTO w1_tbtcp INDEX 1.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_spool_nr = w1_tbtcp-listident.&lt;/P&gt;&lt;P&gt;    MESSAGE s004 WITH g_spool_nr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MESSAGE s005 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " obtain_spool_id&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  convert_spool_to_pdf                                     *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Convert the Spool to PDF                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM convert_spool_to_pdf .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      src_spoolid              = g_spool_nr&lt;/P&gt;&lt;P&gt;      no_dialog                = c_no&lt;/P&gt;&lt;P&gt;      dst_device               = c_device&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      pdf_bytecount            = g_bytecount&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      pdf                      = i_pdf_output&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      err_no_abap_spooljob     = 1&lt;/P&gt;&lt;P&gt;      err_no_spooljob          = 2&lt;/P&gt;&lt;P&gt;      err_no_permission        = 3&lt;/P&gt;&lt;P&gt;      err_conv_not_possible    = 4&lt;/P&gt;&lt;P&gt;      err_bad_destdevice       = 5&lt;/P&gt;&lt;P&gt;      user_cancelled           = 6&lt;/P&gt;&lt;P&gt;      err_spoolerror           = 7&lt;/P&gt;&lt;P&gt;      err_temseerror           = 8&lt;/P&gt;&lt;P&gt;      err_btcjob_open_failed   = 9&lt;/P&gt;&lt;P&gt;      err_btcjob_submit_failed = 10&lt;/P&gt;&lt;P&gt;      err_btcjob_close_failed  = 11&lt;/P&gt;&lt;P&gt;      OTHERS                   = 12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer the 132-long strings to 255-long strings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_pdf_output.&lt;/P&gt;&lt;P&gt;    TRANSLATE i_pdf_output USING ' ~'.&lt;/P&gt;&lt;P&gt;    CONCATENATE g_buffer i_pdf_output INTO g_buffer.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE g_buffer USING '~ '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    it_mess_att = g_buffer.&lt;/P&gt;&lt;P&gt;    APPEND it_mess_att.&lt;/P&gt;&lt;P&gt;    SHIFT g_buffer LEFT BY 255 PLACES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF g_buffer IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " convert_spool_to_pdf&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_email                                            *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Process the email                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM process_email .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_mess_att LINES g_recsize.&lt;/P&gt;&lt;P&gt;  CHECK g_recsize &amp;gt; 0.&lt;/P&gt;&lt;P&gt;  PERFORM send_email TABLES s_email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " process_email&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_email                                               *&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Send email to concerned recievers                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_email  TABLES ut_email STRUCTURE s_email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK NOT ( ut_email IS INITIAL ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_mess_bod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Default subject matter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  g_subject         = text-016.&lt;/P&gt;&lt;P&gt;  g_attachment_desc = text-017.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = text-018.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = text-019.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = text-020.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = text-021.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  CLEAR  it_mess_bod.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;  it_mess_bod        = text-022.&lt;/P&gt;&lt;P&gt;  APPEND it_mess_bod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If no sender specified - default blank&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF g_sender EQ space.&lt;/P&gt;&lt;P&gt;    g_sender_type  = space.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    g_sender_type  = 'INT'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send file by email as PDF document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;                               TABLES   it_mess_bod&lt;/P&gt;&lt;P&gt;                                        it_mess_att&lt;/P&gt;&lt;P&gt;                                        ut_email&lt;/P&gt;&lt;P&gt;                               USING    text-023&lt;/P&gt;&lt;P&gt;                                        c_format&lt;/P&gt;&lt;P&gt;                                        g_attachment_name&lt;/P&gt;&lt;P&gt;                                        g_attachment_desc&lt;/P&gt;&lt;P&gt;                                        g_sender&lt;/P&gt;&lt;P&gt;                                        g_sender_type&lt;/P&gt;&lt;P&gt;                               CHANGING g_error&lt;/P&gt;&lt;P&gt;                                        g_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_email&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This Subroutine is used to send the PDF file as attachment     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_file_as_email_attachment TABLES ut_message              STRUCTURE  it_mess_bod&lt;/P&gt;&lt;P&gt;                                          ut_attach               STRUCTURE  it_mess_att&lt;/P&gt;&lt;P&gt;                                          ut_mail                 STRUCTURE  s_email&lt;/P&gt;&lt;P&gt;                                  USING   uv_mtitle               TYPE       any&lt;/P&gt;&lt;P&gt;                                          uv_format               TYPE       any&lt;/P&gt;&lt;P&gt;                                          uv_filename             TYPE       so_obj_des&lt;/P&gt;&lt;P&gt;                                          uv_attdescription       TYPE       so_obj_nam&lt;/P&gt;&lt;P&gt;                                          uv_sender_address       TYPE       so_recname&lt;/P&gt;&lt;P&gt;                                          uv_sender_addres_type   TYPE       so_adr_typ&lt;/P&gt;&lt;P&gt;                                 CHANGING uv_error                TYPE       sysubrc&lt;/P&gt;&lt;P&gt;                                          uv_reciever             TYPE       sysubrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:  l_error                TYPE  sy-subrc,&lt;/P&gt;&lt;P&gt;         l_reciever             TYPE  sy-subrc,&lt;/P&gt;&lt;P&gt;         l_mtitle               LIKE  sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;         l_format               TYPE  so_obj_tp ,&lt;/P&gt;&lt;P&gt;         l_attdescription       TYPE  so_obj_nam ,&lt;/P&gt;&lt;P&gt;         l_attfilename          TYPE  so_obj_des ,&lt;/P&gt;&lt;P&gt;         l_sender_address       LIKE  soextreci1-receiver,&lt;/P&gt;&lt;P&gt;         l_sender_address_type  LIKE  soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;         l_cnt                  TYPE  i,&lt;/P&gt;&lt;P&gt;         l_sent_all(1)          TYPE  c,&lt;/P&gt;&lt;P&gt;         l_receiver             LIKE  sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:   lt_packing_list    LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;          lt_receivers       LIKE somlreci1  OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;          lt_attachment      LIKE solisti1   OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;          wa_doc_data        LIKE sodocchgi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_mtitle              = uv_mtitle.&lt;/P&gt;&lt;P&gt;  l_format              = uv_format.&lt;/P&gt;&lt;P&gt;  l_attdescription      = uv_attdescription.&lt;/P&gt;&lt;P&gt;  l_attfilename         = uv_filename.&lt;/P&gt;&lt;P&gt;  l_sender_address      = uv_sender_address.&lt;/P&gt;&lt;P&gt;  l_sender_address_type = uv_sender_addres_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_doc_data-doc_size = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_doc_data-obj_langu  = sy-langu.&lt;/P&gt;&lt;P&gt;  wa_doc_data-obj_name   = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;  wa_doc_data-obj_descr  = l_mtitle .&lt;/P&gt;&lt;P&gt;  wa_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR wa_doc_data.&lt;/P&gt;&lt;P&gt;  READ TABLE ut_attach INDEX l_cnt.&lt;/P&gt;&lt;P&gt;  wa_doc_data-doc_size =&lt;/P&gt;&lt;P&gt;     ( l_cnt - 1 ) * 255 + STRLEN( ut_attach ).&lt;/P&gt;&lt;P&gt;  wa_doc_data-obj_langu  = sy-langu.&lt;/P&gt;&lt;P&gt;  wa_doc_data-obj_name   = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;  wa_doc_data-obj_descr  = l_mtitle.&lt;/P&gt;&lt;P&gt;  wa_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;  CLEAR lt_attachment.&lt;/P&gt;&lt;P&gt;  REFRESH lt_attachment.&lt;/P&gt;&lt;P&gt;  lt_attachment[] = ut_attach[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR   lt_packing_list.&lt;/P&gt;&lt;P&gt;  REFRESH lt_packing_list.&lt;/P&gt;&lt;P&gt;  lt_packing_list-transf_bin = space.&lt;/P&gt;&lt;P&gt;  lt_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;  lt_packing_list-head_num   = 0.&lt;/P&gt;&lt;P&gt;  lt_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE ut_message LINES lt_packing_list-body_num.&lt;/P&gt;&lt;P&gt;  lt_packing_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;  APPEND lt_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lt_packing_list-transf_bin  = 'X'.&lt;/P&gt;&lt;P&gt;  lt_packing_list-head_start  = 1.&lt;/P&gt;&lt;P&gt;  lt_packing_list-head_num    = 1.&lt;/P&gt;&lt;P&gt;  lt_packing_list-body_start  = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lt_attachment LINES lt_packing_list-body_num.&lt;/P&gt;&lt;P&gt;  lt_packing_list-doc_type   =  l_format.&lt;/P&gt;&lt;P&gt;  lt_packing_list-obj_descr  =  l_attdescription.&lt;/P&gt;&lt;P&gt;  lt_packing_list-obj_name   =  l_attfilename.&lt;/P&gt;&lt;P&gt;  lt_packing_list-doc_size   =  lt_packing_list-body_num * 255.&lt;/P&gt;&lt;P&gt;  APPEND lt_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT ut_mail.&lt;/P&gt;&lt;P&gt;    CLEAR   lt_receivers.&lt;/P&gt;&lt;P&gt;    REFRESH lt_receivers.&lt;/P&gt;&lt;P&gt;    lt_receivers-receiver   = ut_mail-low.&lt;/P&gt;&lt;P&gt;    lt_receivers-rec_type   = 'U'.&lt;/P&gt;&lt;P&gt;    lt_receivers-com_type   = 'INT'.&lt;/P&gt;&lt;P&gt;    lt_receivers-notif_del  = 'X'.&lt;/P&gt;&lt;P&gt;    lt_receivers-notif_ndel = 'X'.&lt;/P&gt;&lt;P&gt;    APPEND lt_receivers.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      document_data              = wa_doc_data&lt;/P&gt;&lt;P&gt;      put_in_outbox              = 'X'&lt;/P&gt;&lt;P&gt;      commit_work                = 'X'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      sent_to_all                = l_sent_all&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      packing_list               = lt_packing_list&lt;/P&gt;&lt;P&gt;      contents_bin               = lt_attachment&lt;/P&gt;&lt;P&gt;      contents_txt               = ut_message&lt;/P&gt;&lt;P&gt;      receivers                  = lt_receivers&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      too_many_receivers         = 1&lt;/P&gt;&lt;P&gt;      document_not_sent          = 2&lt;/P&gt;&lt;P&gt;      document_type_not_exist    = 3&lt;/P&gt;&lt;P&gt;      operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;      parameter_error            = 5&lt;/P&gt;&lt;P&gt;      x_error                    = 6&lt;/P&gt;&lt;P&gt;      enqueue_error              = 7&lt;/P&gt;&lt;P&gt;      OTHERS                     = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zerror return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_error = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zreceiver return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT lt_receivers.&lt;/P&gt;&lt;P&gt;    l_receiver = lt_receivers-retrn_code.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bapi_commit&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To commit Bapi transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bapi_commit .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      wait = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bapi_commit&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 30 Nov 2007 16:10:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090392#M733009</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-11-30T16:10:40Z</dc:date>
    </item>
    <item>
      <title>Re: Report in Background</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090393#M733010</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sending mail with attachment report in Background &lt;/P&gt;&lt;P&gt;Content Author: Fernando Faian &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have read the hint about "Sending mail with attachment report". &lt;/P&gt;&lt;P&gt;It's great, but how can I make this function work in background?? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had that needed last year too. See attachment a function group with two functions. The second one has that functionality to send email or fax (SAP office) with attachment objects in background job using SO_ATTACHMENT_INSERT function.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pay attention because it&amp;#146;s working with output list from spool converted to pdf.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=================================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;z_send_email_fax_global&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION-POOL z_gfaian_mail_fax.            "MESSAGE-ID ..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WORK TABLE AREAS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;TABLES: tsp01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL TABLES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: lt_rec_tab LIKE STANDARD TABLE OF soos1 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      lt_note_text   LIKE STANDARD TABLE OF soli  WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      lt_attachments LIKE STANDARD TABLE OF sood5 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lt_objcont LIKE STANDARD TABLE OF soli WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      lt_objhead LIKE STANDARD TABLE OF soli WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: pdf_format LIKE STANDARD TABLE OF tline WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF y_files,&lt;/P&gt;&lt;P&gt;       file(60) TYPE c,&lt;/P&gt;&lt;P&gt;       END OF y_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lt_files TYPE STANDARD TABLE OF y_files WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: l_objcont     LIKE soli OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: l_objhead     LIKE soli OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STRUCTURES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: folder_id      LIKE soodk,&lt;/P&gt;&lt;P&gt;      object_id      LIKE soodk,&lt;/P&gt;&lt;P&gt;      link_folder_id LIKE soodk,&lt;/P&gt;&lt;P&gt;      g_document     LIKE sood4,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     g_header_data  LIKE sood2,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      g_folmem_data  LIKE sofm2,&lt;/P&gt;&lt;P&gt;      g_header_data  LIKE sood2,&lt;/P&gt;&lt;P&gt;      g_receive_data LIKE soos6,&lt;/P&gt;&lt;P&gt;      g_ref_document LIKE sood4,&lt;/P&gt;&lt;P&gt;      g_new_parent   LIKE soodk,&lt;/P&gt;&lt;P&gt;      l_folder_id    LIKE sofdk,&lt;/P&gt;&lt;P&gt;      v_email(50).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: hd_dat  like sood1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; VARIABLES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: client  LIKE tst01-dclient,&lt;/P&gt;&lt;P&gt;      name    LIKE tst01-dname,&lt;/P&gt;&lt;P&gt;      objtype LIKE rststype-type,&lt;/P&gt;&lt;P&gt;      type    LIKE rststype-type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: numbytes TYPE i,&lt;/P&gt;&lt;P&gt;      arc_idx LIKE toa_dara,&lt;/P&gt;&lt;P&gt;      pdfspoolid LIKE tsp01-rqident,&lt;/P&gt;&lt;P&gt;      jobname LIKE tbtcjob-jobname,&lt;/P&gt;&lt;P&gt;      jobcount LIKE tbtcjob-jobcount,&lt;/P&gt;&lt;P&gt;      is_otf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: outbox_flag LIKE sonv-flag VALUE 'X',&lt;/P&gt;&lt;P&gt;      store_flag  LIKE sonv-flag,&lt;/P&gt;&lt;P&gt;      delete_flag LIKE sonv-flag,&lt;/P&gt;&lt;P&gt;      owner       LIKE soud-usrnam,&lt;/P&gt;&lt;P&gt;      on          LIKE sonv-flag VALUE 'X',&lt;/P&gt;&lt;P&gt;      sent_to_all LIKE sonv-flag,&lt;/P&gt;&lt;P&gt;      g_authority LIKE sofa-usracc,&lt;/P&gt;&lt;P&gt;      w_objdes    LIKE sood4-objdes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: c_file LIKE rlgrap-filename,&lt;/P&gt;&lt;P&gt;      n_spool(6) TYPE n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: cancel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: desired_type  LIKE sood-objtp,&lt;/P&gt;&lt;P&gt;      real_type LIKE sood-objtp,&lt;/P&gt;&lt;P&gt;      attach_type LIKE sood-objtp,&lt;/P&gt;&lt;P&gt;      otf LIKE sood-objtp VALUE 'OTF', " SAPscript Ausgabeformat&lt;/P&gt;&lt;P&gt;      ali LIKE sood-objtp VALUE 'ALI'. " ABAP lists&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONSTANTS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;CONSTANTS: ou_fol LIKE sofh-folrg              VALUE 'O',&lt;/P&gt;&lt;P&gt;           c_objtp    LIKE g_document-objtp    VALUE 'RAW',&lt;/P&gt;&lt;P&gt;           c_file_ext LIKE g_document-file_ext VALUE 'TXT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=================================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;z_send_email_fax2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION z_faian_mail_fax2.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Interface local:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     REFERENCE(SRC_SPOOLID) LIKE  TSP01-RQIDENT&lt;/P&gt;&lt;P&gt;*"     REFERENCE(FAX_MAIL_NUMBER) TYPE  SO_NAME&lt;/P&gt;&lt;P&gt;*"     REFERENCE(HEADER_MAIL) TYPE  SO_OBJ_DES&lt;/P&gt;&lt;P&gt;*"     REFERENCE(OBJECT_TYPE) TYPE  SO_ESCAPE&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      LT_BODY_EMAIL STRUCTURE  SOLI&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      ERR_NO_ABAP_SPOOLJOB&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fist part: Verify if the spool really exists&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.&lt;/P&gt;&lt;P&gt;  IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    RAISE err_no_abap_spooljob. "doesn't exist&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    client = tsp01-rqclient.&lt;/P&gt;&lt;P&gt;    name   = tsp01-rqo1name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'RSTS_GET_ATTRIBUTES'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              authority     = 'SP01'&lt;/P&gt;&lt;P&gt;              client        = client&lt;/P&gt;&lt;P&gt;              name          = name&lt;/P&gt;&lt;P&gt;              part          = 1&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              type          = type&lt;/P&gt;&lt;P&gt;              objtype       = objtype&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              fb_error      = 1&lt;/P&gt;&lt;P&gt;              fb_rsts_other = 2&lt;/P&gt;&lt;P&gt;              no_object     = 3&lt;/P&gt;&lt;P&gt;              no_permission = 4&lt;/P&gt;&lt;P&gt;              OTHERS        = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF objtype(3) = 'OTF'.&lt;/P&gt;&lt;P&gt;      desired_type = otf.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      desired_type = ali.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              rqident              = src_spoolid&lt;/P&gt;&lt;P&gt;              desired_type         = desired_type&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              real_type            = real_type&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              buffer               = l_objcont&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              no_such_job          = 14&lt;/P&gt;&lt;P&gt;              type_no_match        = 94&lt;/P&gt;&lt;P&gt;              job_contains_no_data = 54&lt;/P&gt;&lt;P&gt;              no_permission        = 21&lt;/P&gt;&lt;P&gt;              can_not_access       = 21&lt;/P&gt;&lt;P&gt;              read_error           = 54.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      attach_type = real_type.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              owner     = sy-uname&lt;/P&gt;&lt;P&gt;              region    = ou_fol&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              folder_id = l_folder_id&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              OTHERS    = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill out informations about the header of the email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR: g_document.&lt;/P&gt;&lt;P&gt;    g_document-foltp     = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;    g_document-folyr     = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;    g_document-folno     = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_document-objtp     = c_objtp.&lt;/P&gt;&lt;P&gt;    g_document-objdes    = header_mail.&lt;/P&gt;&lt;P&gt;    g_document-file_ext  = c_file_ext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_header_data-objdes    = header_mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              method      = 'SAVE'&lt;/P&gt;&lt;P&gt;              office_user = sy-uname&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;              authority   = g_authority&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              objcont     = lt_body_email&lt;/P&gt;&lt;P&gt;              attachments = lt_attachments&lt;/P&gt;&lt;P&gt;         CHANGING&lt;/P&gt;&lt;P&gt;              document    = g_document&lt;/P&gt;&lt;P&gt;              header_data = g_header_data&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              OTHERS      = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    folder_id-objtp = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;    folder_id-objyr = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;    folder_id-objno = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    object_id-objtp = c_objtp.&lt;/P&gt;&lt;P&gt;    object_id-objyr = g_document-objyr.&lt;/P&gt;&lt;P&gt;    object_id-objno = g_document-objno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    link_folder_id-objtp = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;    link_folder_id-objyr = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;    link_folder_id-objno = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH lt_rec_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR lt_rec_tab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-sel        = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-recesc     = object_type.   "This field for FAX/MAIL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-recnam     = 'U-'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-deliver    = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-not_deli   = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-read       = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-mailstatus = 'E'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-adr_name   = fax_mail_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-sortfield  = fax_mail_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-recextnam  = fax_mail_number.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lt_rec_tab-sortclass  = '5'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND lt_rec_tab.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      lt_rec_tab-recextnam = fax_mail_number.&lt;/P&gt;&lt;P&gt;      lt_rec_tab-recesc = object_type.&lt;/P&gt;&lt;P&gt;      lt_rec_tab-sndart = 'INT'.&lt;/P&gt;&lt;P&gt;      lt_rec_tab-sndpri = 1.&lt;/P&gt;&lt;P&gt;      APPEND lt_rec_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    lt_files-file = c_file.&lt;/P&gt;&lt;P&gt;    APPEND lt_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;begin of insertion by faianf01&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    hd_dat-objdes = header_mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_ATTACHMENT_INSERT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              object_id                  = object_id&lt;/P&gt;&lt;P&gt;              attach_type                = attach_type&lt;/P&gt;&lt;P&gt;              object_hd_change           = hd_dat&lt;/P&gt;&lt;P&gt;              owner                      = sy-uname&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              objcont                    = l_objcont&lt;/P&gt;&lt;P&gt;              objhead                    = l_objhead&lt;/P&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              active_user_not_exist      = 35&lt;/P&gt;&lt;P&gt;              communication_failure      = 71&lt;/P&gt;&lt;P&gt;              object_type_not_exist      = 17&lt;/P&gt;&lt;P&gt;              operation_no_authorization = 21&lt;/P&gt;&lt;P&gt;              owner_not_exist            = 22&lt;/P&gt;&lt;P&gt;              parameter_error            = 23&lt;/P&gt;&lt;P&gt;              substitute_not_active      = 31&lt;/P&gt;&lt;P&gt;              substitute_not_defined     = 32&lt;/P&gt;&lt;P&gt;              system_failure             = 72&lt;/P&gt;&lt;P&gt;              x_error                    = 1000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of insertion by faianf01&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;send email from SAPOFFICE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'SO_OBJECT_SEND'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              folder_id                  = folder_id&lt;/P&gt;&lt;P&gt;              object_id                  = object_id&lt;/P&gt;&lt;P&gt;              outbox_flag                = outbox_flag&lt;/P&gt;&lt;P&gt;              link_folder_id             = link_folder_id&lt;/P&gt;&lt;P&gt;              owner                      = sy-uname&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             check_send_authority       = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              receivers                  = lt_rec_tab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             note_text                  = lt_note_text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         EXCEPTIONS&lt;/P&gt;&lt;P&gt;              active_user_not_exist      = 35&lt;/P&gt;&lt;P&gt;              communication_failure      = 71&lt;/P&gt;&lt;P&gt;              component_not_available    = 1&lt;/P&gt;&lt;P&gt;              folder_no_authorization    = 5&lt;/P&gt;&lt;P&gt;              folder_not_exist           = 6&lt;/P&gt;&lt;P&gt;              forwarder_not_exist        = 8&lt;/P&gt;&lt;P&gt;              object_no_authorization    = 13&lt;/P&gt;&lt;P&gt;              object_not_exist           = 14&lt;/P&gt;&lt;P&gt;              object_not_sent            = 15&lt;/P&gt;&lt;P&gt;              operation_no_authorization = 21&lt;/P&gt;&lt;P&gt;              owner_not_exist            = 22&lt;/P&gt;&lt;P&gt;              parameter_error            = 23&lt;/P&gt;&lt;P&gt;              substitute_not_active      = 31&lt;/P&gt;&lt;P&gt;              substitute_not_defined     = 32&lt;/P&gt;&lt;P&gt;              system_failure             = 72&lt;/P&gt;&lt;P&gt;              too_much_receivers         = 73&lt;/P&gt;&lt;P&gt;              user_not_exist             = 35.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=================================================================================&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;z_send_email_fax&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION ZCBFS_SEND_MAIL.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Interface local:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     REFERENCE(SRC_SPOOLID) LIKE  TSP01-RQIDENT&lt;/P&gt;&lt;P&gt;*"     REFERENCE(HEADER_MAIL) TYPE  SO_OBJ_DES&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      LIST_FAX_MAIL_NUMBER STRUCTURE  SOLI&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      ERR_NO_ABAP_SPOOLJOB&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;  DATA: vg_achou(1) TYPE n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fist part: Verify if the spool really exists&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  vg_achou = 1.&lt;/P&gt;&lt;P&gt;  DO 60 TIMES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.&lt;/P&gt;&lt;P&gt;    IF sy-subrc IS INITIAL.&lt;/P&gt;&lt;P&gt;      CLEAR vg_achou.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WAIT UP TO 1 SECONDS.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF vg_achou = 1.&lt;/P&gt;&lt;P&gt;    RAISE err_no_abap_spooljob. "doesn't exist&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  client = tsp01-rqclient.&lt;/P&gt;&lt;P&gt;  name   = tsp01-rqo1name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'RSTS_GET_ATTRIBUTES'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            authority     = 'SP01'&lt;/P&gt;&lt;P&gt;            client        = client&lt;/P&gt;&lt;P&gt;            name          = name&lt;/P&gt;&lt;P&gt;            part          = 1&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            type          = type&lt;/P&gt;&lt;P&gt;            objtype       = objtype&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            fb_error      = 1&lt;/P&gt;&lt;P&gt;            fb_rsts_other = 2&lt;/P&gt;&lt;P&gt;            no_object     = 3&lt;/P&gt;&lt;P&gt;            no_permission = 4&lt;/P&gt;&lt;P&gt;            OTHERS        = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF objtype(3) = 'OTF'.&lt;/P&gt;&lt;P&gt;    desired_type = otf.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    desired_type = ali.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            rqident              = src_spoolid&lt;/P&gt;&lt;P&gt;            desired_type         = desired_type&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            real_type            = real_type&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            buffer               = l_objcont&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            no_such_job          = 14&lt;/P&gt;&lt;P&gt;            type_no_match        = 94&lt;/P&gt;&lt;P&gt;            job_contains_no_data = 54&lt;/P&gt;&lt;P&gt;            no_permission        = 21&lt;/P&gt;&lt;P&gt;            can_not_access       = 21&lt;/P&gt;&lt;P&gt;            read_error           = 54.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    attach_type = real_type.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            owner     = sy-uname&lt;/P&gt;&lt;P&gt;            region    = ou_fol&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            folder_id = l_folder_id&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS    = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill out informations about the header of the email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR: g_document.&lt;/P&gt;&lt;P&gt;  g_document-foltp     = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;  g_document-folyr     = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;  g_document-folno     = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_document-objtp     = c_objtp.&lt;/P&gt;&lt;P&gt;  g_document-objdes    = header_mail.&lt;/P&gt;&lt;P&gt;  g_document-file_ext  = c_file_ext.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_header_data-objdes    = header_mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            method      = 'SAVE'&lt;/P&gt;&lt;P&gt;            office_user = sy-uname&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            authority   = g_authority&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            attachments = lt_attachments&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;            document    = g_document&lt;/P&gt;&lt;P&gt;            header_data = g_header_data&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            OTHERS      = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  folder_id-objtp = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;  folder_id-objyr = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;  folder_id-objno = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  object_id-objtp = c_objtp.&lt;/P&gt;&lt;P&gt;  object_id-objyr = g_document-objyr.&lt;/P&gt;&lt;P&gt;  object_id-objno = g_document-objno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  link_folder_id-objtp = l_folder_id-foltp.&lt;/P&gt;&lt;P&gt;  link_folder_id-objyr = l_folder_id-folyr.&lt;/P&gt;&lt;P&gt;  link_folder_id-objno = l_folder_id-folno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH lt_rec_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT LIST_FAX_MAIL_NUMBER.&lt;/P&gt;&lt;P&gt;    lt_rec_tab-recextnam = LIST_FAX_MAIL_NUMBER-LINE.&lt;/P&gt;&lt;P&gt;    lt_rec_tab-recesc = 'U'.&lt;/P&gt;&lt;P&gt;    lt_rec_tab-sndart = 'INT'.&lt;/P&gt;&lt;P&gt;    lt_rec_tab-sndpri = 1.&lt;/P&gt;&lt;P&gt;    APPEND lt_rec_tab.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lt_files-file = c_file.&lt;/P&gt;&lt;P&gt;  APPEND lt_files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  hd_dat-objdes = header_mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SO_ATTACHMENT_INSERT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            object_id                  = object_id&lt;/P&gt;&lt;P&gt;            attach_type                = attach_type&lt;/P&gt;&lt;P&gt;            object_hd_change           = hd_dat&lt;/P&gt;&lt;P&gt;            owner                      = sy-uname&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            objcont                    = l_objcont&lt;/P&gt;&lt;P&gt;            objhead                    = l_objhead&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            active_user_not_exist      = 35&lt;/P&gt;&lt;P&gt;            communication_failure      = 71&lt;/P&gt;&lt;P&gt;            object_type_not_exist      = 17&lt;/P&gt;&lt;P&gt;            operation_no_authorization = 21&lt;/P&gt;&lt;P&gt;            owner_not_exist            = 22&lt;/P&gt;&lt;P&gt;            parameter_error            = 23&lt;/P&gt;&lt;P&gt;            substitute_not_active      = 31&lt;/P&gt;&lt;P&gt;            substitute_not_defined     = 32&lt;/P&gt;&lt;P&gt;            system_failure             = 72&lt;/P&gt;&lt;P&gt;            x_error                    = 1000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;gt; 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;send email from SAPOFFICE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SO_OBJECT_SEND'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            folder_id                  = folder_id&lt;/P&gt;&lt;P&gt;            object_id                  = object_id&lt;/P&gt;&lt;P&gt;            outbox_flag                = outbox_flag&lt;/P&gt;&lt;P&gt;            link_folder_id             = link_folder_id&lt;/P&gt;&lt;P&gt;            owner                      = sy-uname&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            receivers                  = lt_rec_tab&lt;/P&gt;&lt;P&gt;            note_text                  = lt_note_text&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            active_user_not_exist      = 35&lt;/P&gt;&lt;P&gt;            communication_failure      = 71&lt;/P&gt;&lt;P&gt;            component_not_available    = 1&lt;/P&gt;&lt;P&gt;            folder_no_authorization    = 5&lt;/P&gt;&lt;P&gt;            folder_not_exist           = 6&lt;/P&gt;&lt;P&gt;            forwarder_not_exist        = 8&lt;/P&gt;&lt;P&gt;            object_no_authorization    = 13&lt;/P&gt;&lt;P&gt;            object_not_exist           = 14&lt;/P&gt;&lt;P&gt;            object_not_sent            = 15&lt;/P&gt;&lt;P&gt;            operation_no_authorization = 21&lt;/P&gt;&lt;P&gt;            owner_not_exist            = 22&lt;/P&gt;&lt;P&gt;            parameter_error            = 23&lt;/P&gt;&lt;P&gt;            substitute_not_active      = 31&lt;/P&gt;&lt;P&gt;            substitute_not_defined     = 32&lt;/P&gt;&lt;P&gt;            system_failure             = 72&lt;/P&gt;&lt;P&gt;            too_much_receivers         = 73&lt;/P&gt;&lt;P&gt;            user_not_exist             = 35.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=================================================================================&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 02 Dec 2007 07:06:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/report-in-background/m-p/3090393#M733010</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-02T07:06:11Z</dc:date>
    </item>
  </channel>
</rss>

