Application Development and Automation 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: 
Read only

Converting Internal table to PDF format.

Former Member
0 Likes
2,483

Hi All,

I need to convert the contents of my Internal table into PDF format, then need to send mail as attachment..

I tried to convert my internal table to PDF format using creating the spool by function modules...RSPO_OPEN_SPOOLREQUEST, RSPO_WRITE_SPOOLREQUEST, RSPO_CLOSE_SPOOLREQUEST.

The spool is getting created by the values in the internal table. But if I read that spool number using program RSTXPDFT4, I am getting a message "There is an error in Opening the document.The file cannot be opened because it has no pages". The same result I am getting when I use the FM 'CONVERT_ABAPSPOOLJOB_2_PDF'

Should I need to mention additional things,, Please help..

Regards,

Philip

2 REPLIES 2
Read only

Former Member
0 Likes
638

Please refer to this link.

Regards

Vasu

Read only

Former Member
0 Likes
638

Pay attention because it’s working with output list from spool converted to pdf.

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

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.

**************************************************************************

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

Check the links -

Regards

Vasu