Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

SEND SPOOL REPORT AS E-MAIL

Former Member
0 Kudos

Hi,

How do I send a spool report as an e-mail?

NOT as PDF file.

If we can send it as a text file that would also be fine, but preferably as a Spool report as it is (non-editable).

3 REPLIES 3

Former Member
0 Kudos

Hi,

Use this Fm by passing appropriate parameters...

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = maildata

put_in_outbox = 'X'

TABLES

packing_list = mailpack

object_header = mailhead

contents_bin = mailbin

contents_txt = mailtxt

receivers = mailrec

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

operation_no_authorization = 4

OTHERS = 99.

commit work.

ENDFORM. "SEND_FORM_VIA_EMAIL

Regards,

Sankar

Former Member
0 Kudos

Hi,

Have a look at this code...

z_send_email_fax_global

FUNCTION-POOL z_gfaian_mail_fax. "MESSAGE-ID ..

*----


  • WORK TABLE AREAS

*----


TABLES: tsp01.

*----


  • INTERNAL TABLES

*----


DATA: lt_rec_tab LIKE STANDARD TABLE OF soos1 WITH HEADER LINE,

lt_note_text LIKE STANDARD TABLE OF soli WITH HEADER LINE,

lt_attachments LIKE STANDARD TABLE OF sood5 WITH HEADER LINE.

DATA: lt_objcont LIKE STANDARD TABLE OF soli WITH HEADER LINE,

lt_objhead LIKE STANDARD TABLE OF soli WITH HEADER LINE.

DATA: pdf_format LIKE STANDARD TABLE OF tline WITH HEADER LINE.

TYPES: BEGIN OF y_files,

file(60) TYPE c,

END OF y_files.

DATA: lt_files TYPE STANDARD TABLE OF y_files WITH HEADER LINE.

DATA: l_objcont LIKE soli OCCURS 0 WITH HEADER LINE.

DATA: l_objhead LIKE soli OCCURS 0 WITH HEADER LINE.

*----


  • STRUCTURES

*----


DATA: folder_id LIKE soodk,

object_id LIKE soodk,

link_folder_id LIKE soodk,

g_document LIKE sood4,

  • g_header_data LIKE sood2,

g_folmem_data LIKE sofm2,

g_header_data LIKE sood2,

g_receive_data LIKE soos6,

g_ref_document LIKE sood4,

g_new_parent LIKE soodk,

l_folder_id LIKE sofdk,

v_email(50).

DATA: hd_dat like sood1.

*----


  • VARIABLES

*----


DATA: client LIKE tst01-dclient,

name LIKE tst01-dname,

objtype LIKE rststype-type,

type LIKE rststype-type.

DATA: numbytes TYPE i,

arc_idx LIKE toa_dara,

pdfspoolid LIKE tsp01-rqident,

jobname LIKE tbtcjob-jobname,

jobcount LIKE tbtcjob-jobcount,

is_otf.

DATA: outbox_flag LIKE sonv-flag VALUE 'X',

store_flag LIKE sonv-flag,

delete_flag LIKE sonv-flag,

owner LIKE soud-usrnam,

on LIKE sonv-flag VALUE 'X',

sent_to_all LIKE sonv-flag,

g_authority LIKE sofa-usracc,

w_objdes LIKE sood4-objdes.

DATA: c_file LIKE rlgrap-filename,

n_spool(6) TYPE n.

DATA: cancel.

DATA: desired_type LIKE sood-objtp,

real_type LIKE sood-objtp,

attach_type LIKE sood-objtp,

otf LIKE sood-objtp VALUE 'OTF', " SAPscript Ausgabeformat

ali LIKE sood-objtp VALUE 'ALI'. " ABAP lists

*----


  • CONSTANTS

*----


CONSTANTS: ou_fol LIKE sofh-folrg VALUE 'O',

c_objtp LIKE g_document-objtp VALUE 'RAW',

c_file_ext LIKE g_document-file_ext VALUE 'TXT'.

=================================================================================

z_send_email_fax2

FUNCTION z_faian_mail_fax2.

*"----


""Interface local:

*" IMPORTING

*" REFERENCE(SRC_SPOOLID) LIKE TSP01-RQIDENT

*" REFERENCE(FAX_MAIL_NUMBER) TYPE SO_NAME

*" REFERENCE(HEADER_MAIL) TYPE SO_OBJ_DES

*" REFERENCE(OBJECT_TYPE) TYPE SO_ESCAPE

*" TABLES

*" LT_BODY_EMAIL STRUCTURE SOLI

*" EXCEPTIONS

*" ERR_NO_ABAP_SPOOLJOB

*"----


  • Fist part: Verify if the spool really exists

SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.

IF sy-subrc NE 0.

RAISE err_no_abap_spooljob. "doesn't exist

ELSE.

client = tsp01-rqclient.

name = tsp01-rqo1name.

CALL FUNCTION 'RSTS_GET_ATTRIBUTES'

EXPORTING

authority = 'SP01'

client = client

name = name

part = 1

IMPORTING

type = type

objtype = objtype

EXCEPTIONS

fb_error = 1

fb_rsts_other = 2

no_object = 3

no_permission = 4

OTHERS = 5.

IF objtype(3) = 'OTF'.

desired_type = otf.

ELSE.

desired_type = ali.

ENDIF.

CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'

EXPORTING

rqident = src_spoolid

desired_type = desired_type

IMPORTING

real_type = real_type

TABLES

buffer = l_objcont

EXCEPTIONS

no_such_job = 14

type_no_match = 94

job_contains_no_data = 54

no_permission = 21

can_not_access = 21

read_error = 54.

IF sy-subrc EQ 0.

attach_type = real_type.

ENDIF.

CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'

EXPORTING

owner = sy-uname

region = ou_fol

IMPORTING

folder_id = l_folder_id

EXCEPTIONS

OTHERS = 5.

  • fill out informations about the header of the email

CLEAR: g_document.

g_document-foltp = l_folder_id-foltp.

g_document-folyr = l_folder_id-folyr.

g_document-folno = l_folder_id-folno.

g_document-objtp = c_objtp.

g_document-objdes = header_mail.

g_document-file_ext = c_file_ext.

g_header_data-objdes = header_mail.

CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'

EXPORTING

method = 'SAVE'

office_user = sy-uname

IMPORTING

authority = g_authority

TABLES

objcont = lt_body_email

attachments = lt_attachments

CHANGING

document = g_document

header_data = g_header_data

EXCEPTIONS

OTHERS = 1.

folder_id-objtp = l_folder_id-foltp.

folder_id-objyr = l_folder_id-folyr.

folder_id-objno = l_folder_id-folno.

object_id-objtp = c_objtp.

object_id-objyr = g_document-objyr.

object_id-objno = g_document-objno.

link_folder_id-objtp = l_folder_id-foltp.

link_folder_id-objyr = l_folder_id-folyr.

link_folder_id-objno = l_folder_id-folno.

REFRESH lt_rec_tab.

  • CLEAR lt_rec_tab.

  • lt_rec_tab-sel = 'X'.

  • lt_rec_tab-recesc = object_type. "This field for FAX/MAIL

  • lt_rec_tab-recnam = 'U-'.

  • lt_rec_tab-deliver = 'X'.

  • lt_rec_tab-not_deli = 'X'.

  • lt_rec_tab-read = 'X'.

  • lt_rec_tab-mailstatus = 'E'.

  • lt_rec_tab-adr_name = fax_mail_number.

  • lt_rec_tab-sortfield = fax_mail_number.

  • lt_rec_tab-recextnam = fax_mail_number.

  • lt_rec_tab-sortclass = '5'.

  • APPEND lt_rec_tab.

lt_rec_tab-recextnam = fax_mail_number.

lt_rec_tab-recesc = object_type.

lt_rec_tab-sndart = 'INT'.

lt_rec_tab-sndpri = 1.

APPEND lt_rec_tab.

lt_files-file = c_file.

APPEND lt_files.

  • begin of insertion by faianf01

hd_dat-objdes = header_mail.

CALL FUNCTION 'SO_ATTACHMENT_INSERT'

EXPORTING

object_id = object_id

attach_type = attach_type

object_hd_change = hd_dat

owner = sy-uname

TABLES

objcont = l_objcont

objhead = l_objhead

EXCEPTIONS

active_user_not_exist = 35

communication_failure = 71

object_type_not_exist = 17

operation_no_authorization = 21

owner_not_exist = 22

parameter_error = 23

substitute_not_active = 31

substitute_not_defined = 32

system_failure = 72

x_error = 1000.

IF sy-subrc > 0.

ENDIF.

  • end of insertion by faianf01

  • send email from SAPOFFICE

CALL FUNCTION 'SO_OBJECT_SEND'

EXPORTING

folder_id = folder_id

object_id = object_id

outbox_flag = outbox_flag

link_folder_id = link_folder_id

owner = sy-uname

  • check_send_authority = 'X'

TABLES

receivers = lt_rec_tab

  • note_text = lt_note_text

EXCEPTIONS

active_user_not_exist = 35

communication_failure = 71

component_not_available = 1

folder_no_authorization = 5

folder_not_exist = 6

forwarder_not_exist = 8

object_no_authorization = 13

object_not_exist = 14

object_not_sent = 15

operation_no_authorization = 21

owner_not_exist = 22

parameter_error = 23

substitute_not_active = 31

substitute_not_defined = 32

system_failure = 72

too_much_receivers = 73

user_not_exist = 35.

ENDIF.

ENDFUNCTION.

=================================================================================

z_send_email_fax

FUNCTION ZCBFS_SEND_MAIL.

*"----


""Interface local:

*" IMPORTING

*" REFERENCE(SRC_SPOOLID) LIKE TSP01-RQIDENT

*" REFERENCE(HEADER_MAIL) TYPE SO_OBJ_DES

*" TABLES

*" LIST_FAX_MAIL_NUMBER STRUCTURE SOLI

*" EXCEPTIONS

*" ERR_NO_ABAP_SPOOLJOB

*"----


DATA: vg_achou(1) TYPE n.

  • Fist part: Verify if the spool really exists

vg_achou = 1.

DO 60 TIMES.

SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.

IF sy-subrc IS INITIAL.

CLEAR vg_achou.

EXIT.

ELSE.

WAIT UP TO 1 SECONDS.

ENDIF.

ENDDO.

IF vg_achou = 1.

RAISE err_no_abap_spooljob. "doesn't exist

ENDIF.

client = tsp01-rqclient.

name = tsp01-rqo1name.

CALL FUNCTION 'RSTS_GET_ATTRIBUTES'

EXPORTING

authority = 'SP01'

client = client

name = name

part = 1

IMPORTING

type = type

objtype = objtype

EXCEPTIONS

fb_error = 1

fb_rsts_other = 2

no_object = 3

no_permission = 4

OTHERS = 5.

IF objtype(3) = 'OTF'.

desired_type = otf.

ELSE.

desired_type = ali.

ENDIF.

CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'

EXPORTING

rqident = src_spoolid

desired_type = desired_type

IMPORTING

real_type = real_type

TABLES

buffer = l_objcont

EXCEPTIONS

no_such_job = 14

type_no_match = 94

job_contains_no_data = 54

no_permission = 21

can_not_access = 21

read_error = 54.

IF sy-subrc EQ 0.

attach_type = real_type.

ENDIF.

CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'

EXPORTING

owner = sy-uname

region = ou_fol

IMPORTING

folder_id = l_folder_id

EXCEPTIONS

OTHERS = 5.

  • fill out informations about the header of the email

CLEAR: g_document.

g_document-foltp = l_folder_id-foltp.

g_document-folyr = l_folder_id-folyr.

g_document-folno = l_folder_id-folno.

g_document-objtp = c_objtp.

g_document-objdes = header_mail.

g_document-file_ext = c_file_ext.

g_header_data-objdes = header_mail.

CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'

EXPORTING

method = 'SAVE'

office_user = sy-uname

IMPORTING

authority = g_authority

TABLES

attachments = lt_attachments

CHANGING

document = g_document

header_data = g_header_data

EXCEPTIONS

OTHERS = 1.

folder_id-objtp = l_folder_id-foltp.

folder_id-objyr = l_folder_id-folyr.

folder_id-objno = l_folder_id-folno.

object_id-objtp = c_objtp.

object_id-objyr = g_document-objyr.

object_id-objno = g_document-objno.

link_folder_id-objtp = l_folder_id-foltp.

link_folder_id-objyr = l_folder_id-folyr.

link_folder_id-objno = l_folder_id-folno.

REFRESH lt_rec_tab.

LOOP AT LIST_FAX_MAIL_NUMBER.

lt_rec_tab-recextnam = LIST_FAX_MAIL_NUMBER-LINE.

lt_rec_tab-recesc = 'U'.

lt_rec_tab-sndart = 'INT'.

lt_rec_tab-sndpri = 1.

APPEND lt_rec_tab.

ENDLOOP.

lt_files-file = c_file.

APPEND lt_files.

hd_dat-objdes = header_mail.

CALL FUNCTION 'SO_ATTACHMENT_INSERT'

EXPORTING

object_id = object_id

attach_type = attach_type

object_hd_change = hd_dat

owner = sy-uname

TABLES

objcont = l_objcont

objhead = l_objhead

EXCEPTIONS

active_user_not_exist = 35

communication_failure = 71

object_type_not_exist = 17

operation_no_authorization = 21

owner_not_exist = 22

parameter_error = 23

substitute_not_active = 31

substitute_not_defined = 32

system_failure = 72

x_error = 1000.

IF sy-subrc > 0.

ENDIF.

  • send email from SAPOFFICE

CALL FUNCTION 'SO_OBJECT_SEND'

EXPORTING

folder_id = folder_id

object_id = object_id

outbox_flag = outbox_flag

link_folder_id = link_folder_id

owner = sy-uname

TABLES

receivers = lt_rec_tab

note_text = lt_note_text

EXCEPTIONS

active_user_not_exist = 35

communication_failure = 71

component_not_available = 1

folder_no_authorization = 5

folder_not_exist = 6

forwarder_not_exist = 8

object_no_authorization = 13

object_not_exist = 14

object_not_sent = 15

operation_no_authorization = 21

owner_not_exist = 22

parameter_error = 23

substitute_not_active = 31

substitute_not_defined = 32

system_failure = 72

too_much_receivers = 73

user_not_exist = 35.

ENDFUNCTION.

Please check this links for sample code.

http://www.sap-basis-abap.com/sapac018.htm

http://www.sapdevelopment.co.uk/reporting/rep_spooltopdf.htm

http://www.sapdevelopment.co.uk/reporting/email/emailhome.htm

http://www.sap-img.com/abap/sending-mail-with-attachment-report-in-background.htm

Regards

Former Member
0 Kudos

Hi Anand,

Check out the thread,

hope this helps.