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

smartforms

Former Member
0 Likes
543

Hi

After getting output for smartforms i want it in PDF format

How to do this

Help me on this .

Points will be definately rewarded

Thanxs & Regrds

Rajan Mehta

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
512

Have a look at the sample code to convert to PDF

*Call the smartform function module

CALL FUNCTION v_fm_name

PARAMETER-TABLE

ptab

EXCEPTION-TABLE

etab.

*Convert to PDF if required

lt_otf] = job_output_info-otfdata[.

IF LINES( lt_otf ) GT 0.

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

format = 'PDF'

max_linewidth = 132

ARCHIVE_INDEX = ' '

COPYNUMBER = 0

ASCII_BIDI_VIS2LOG = ' '

PDF_DELETE_OTFTAB = ' '

IMPORTING

bin_filesize = v_binfilesize

BIN_FILE =

TABLES

otf = lt_otf

lines = lt_pdf_tab

EXCEPTIONS

err_max_linewidth = 1

err_format = 2

err_conv_not_possible = 3

err_bad_otf = 4

OTHERS = 5

.

IF sy-subrc 0.

*Raise exceptions in case OTF is not generated

CASE sy-subrc.

WHEN 1.

RAISE err_max_linewidth.

WHEN 2.

RAISE err_format.

WHEN 3.

RAISE err_conv_not_possible.

WHEN 4.

RAISE err_bad_otf.

WHEN OTHERS.

RAISE unknown_exception.

ENDCASE.

ELSE.

*Download the converted PDF data to your local PC.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

bin_filesize = v_binfilesize

filename = filename

filetype = 'BIN'

APPEND = ' '

WRITE_FIELD_SEPARATOR = ' '

HEADER = '00'

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = ' '

NO_AUTH_CHECK = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

WRITE_BOM = ' '

TRUNC_TRAILING_BLANKS_EOL = 'X'

WK1_N_FORMAT = ' '

WK1_N_SIZE = ' '

WK1_T_FORMAT = ' '

WK1_T_SIZE = ' '

IMPORTING

filelength = file_size

TABLES

data_tab = lt_pdf_tab

FIELDNAMES =

EXCEPTIONS

file_write_error = 1

no_batch = 2

gui_refuse_filetransfer = 3

invalid_type = 4

no_authority = 5

unknown_error = 6

header_not_allowed = 7

separator_not_allowed = 8

filesize_not_allowed = 9

header_too_long = 10

dp_error_create = 11

dp_error_send = 12

dp_error_write = 13

unknown_dp_error = 14

access_denied = 15

dp_out_of_memory = 16

disk_full = 17

dp_timeout = 18

file_not_found = 19

dataprovider_exception = 20

control_flush_error = 21

OTHERS = 22

.

IF sy-subrc NE 0.

RAISE file_write_error.

ENDIF.

ENDIF.

ENDIF.

This code is to send pdf as a Email

FORM sub_send_mail .

LOOP AT s_pernr.

REFRESH p0105.

PERFORM sub_read_info_type TABLES p0105

USING s_pernr-low

'0105'

pn-begda

pn-endda.

SORT p0105 BY pernr subty endda DESCENDING.

READ TABLE p0105 WITH KEY pernr = s_pernr-low

subty = '0010'

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_receivers-receiver = p0105-usrid_long.

wa_receivers-rec_type = 'U'.

wa_receivers-com_type = 'INT'.

wa_receivers-express = c_x.

wa_receivers-rec_date = sy-datum.

APPEND wa_receivers TO it_receivers.

CLEAR wa_receivers.

ENDIF.

ENDLOOP.

*Preparing the e-mail subject

CLEAR g_mail_subject.

g_mail_subject = 'Spectera Vision'(t35).

CLEAR wa_docu_data.

wa_docu_data-obj_name = 'MESSAGE' .

wa_docu_data-obj_descr = g_mail_subject.

wa_docu_data-no_change = c_x.

wa_docu_data-obj_langu = 'E'.

*Prepare the e-mail message(body)

IF g_subrc EQ 0.

wa_message = text-b01.

ELSE.

wa_message = text-b02.

ENDIF.

APPEND wa_message TO it_message.

DESCRIBE TABLE it_message LINES g_tab_lines.

READ TABLE it_message INTO wa_message

INDEX g_tab_lines.

wa_docu_data-doc_size = ( g_tab_lines - 1 ) * 255 + STRLEN( wa_message ).

CLEAR g_tab_lines.

*

DESCRIBE TABLE it_objcont LINES g_tab_lines.

*

CLEAR wa_pack_list-transf_bin.

*

wa_pack_list-head_start = 1.

wa_pack_list-head_num = 0.

wa_pack_list-body_start = 1.

wa_pack_list-body_num = g_tab_lines.

wa_pack_list-doc_type = 'TXT'.

APPEND wa_pack_list TO it_pack_list.

CLEAR wa_pack_list.

*

wa_pack_list-transf_bin = c_x.

wa_pack_list-head_start = 1.

wa_pack_list-head_num = 1.

wa_pack_list-body_start = 1.

wa_pack_list-body_num = g_tab_lines.

wa_pack_list-doc_type = 'TXT'.

wa_pack_list-obj_name = 'ATTACHMENT'.

wa_pack_list-obj_descr = text-b03.

wa_pack_list-doc_size = g_tab_lines * 255.

*

APPEND wa_pack_list TO it_pack_list.

CLEAR wa_pack_list.

wa_objconth = 'ATTACH'.

*

APPEND wa_objconth TO it_objconth.

CLEAR wa_objconth.

*Function Module to send an email attachment

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

document_data = wa_docu_data

put_in_outbox = c_x

commit_work = c_x

TABLES

packing_list = it_pack_list

object_header = it_objconth

contents_bin = it_objcont

contents_txt = it_message

receivers = it_receivers

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

document_type_not_exist = 3

operation_no_authorization = 4

OTHERS = 99

.

IF sy-subrc EQ 0.

MESSAGE i167(37) WITH 'E-mail sent successfully'(i39).

ELSE.

MESSAGE i167(37) WITH 'Error while sending E-mail'(i40).

ENDIF.

ENDFORM. " sub_send_mail

Reward points if useful.

5 REPLIES 5
Read only

Former Member
0 Likes
512

Hi

check this link

http://saptechnical.com/Tutorials/Smartforms/OTF2PDF.htm

Use the FM CONVERT_OTF_2_PDF

Reward if helpful

Gaurav J.

Edited by: Gaurav Juneja on Feb 5, 2008 8:22 AM

Read only

amit_khare
Active Contributor
0 Likes
512

Refer the thread -

Read only

former_member188829
Active Contributor
0 Likes
512

Hi,

RSTXPDFT4 is used to download your form into pdf format.you can give spool number and the path where you want to save that pdf file (on local drive) give as input in RSTXPDFT4 Program.

Read only

Former Member
0 Likes
513

Have a look at the sample code to convert to PDF

*Call the smartform function module

CALL FUNCTION v_fm_name

PARAMETER-TABLE

ptab

EXCEPTION-TABLE

etab.

*Convert to PDF if required

lt_otf] = job_output_info-otfdata[.

IF LINES( lt_otf ) GT 0.

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

format = 'PDF'

max_linewidth = 132

ARCHIVE_INDEX = ' '

COPYNUMBER = 0

ASCII_BIDI_VIS2LOG = ' '

PDF_DELETE_OTFTAB = ' '

IMPORTING

bin_filesize = v_binfilesize

BIN_FILE =

TABLES

otf = lt_otf

lines = lt_pdf_tab

EXCEPTIONS

err_max_linewidth = 1

err_format = 2

err_conv_not_possible = 3

err_bad_otf = 4

OTHERS = 5

.

IF sy-subrc 0.

*Raise exceptions in case OTF is not generated

CASE sy-subrc.

WHEN 1.

RAISE err_max_linewidth.

WHEN 2.

RAISE err_format.

WHEN 3.

RAISE err_conv_not_possible.

WHEN 4.

RAISE err_bad_otf.

WHEN OTHERS.

RAISE unknown_exception.

ENDCASE.

ELSE.

*Download the converted PDF data to your local PC.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

bin_filesize = v_binfilesize

filename = filename

filetype = 'BIN'

APPEND = ' '

WRITE_FIELD_SEPARATOR = ' '

HEADER = '00'

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = ' '

NO_AUTH_CHECK = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

WRITE_BOM = ' '

TRUNC_TRAILING_BLANKS_EOL = 'X'

WK1_N_FORMAT = ' '

WK1_N_SIZE = ' '

WK1_T_FORMAT = ' '

WK1_T_SIZE = ' '

IMPORTING

filelength = file_size

TABLES

data_tab = lt_pdf_tab

FIELDNAMES =

EXCEPTIONS

file_write_error = 1

no_batch = 2

gui_refuse_filetransfer = 3

invalid_type = 4

no_authority = 5

unknown_error = 6

header_not_allowed = 7

separator_not_allowed = 8

filesize_not_allowed = 9

header_too_long = 10

dp_error_create = 11

dp_error_send = 12

dp_error_write = 13

unknown_dp_error = 14

access_denied = 15

dp_out_of_memory = 16

disk_full = 17

dp_timeout = 18

file_not_found = 19

dataprovider_exception = 20

control_flush_error = 21

OTHERS = 22

.

IF sy-subrc NE 0.

RAISE file_write_error.

ENDIF.

ENDIF.

ENDIF.

This code is to send pdf as a Email

FORM sub_send_mail .

LOOP AT s_pernr.

REFRESH p0105.

PERFORM sub_read_info_type TABLES p0105

USING s_pernr-low

'0105'

pn-begda

pn-endda.

SORT p0105 BY pernr subty endda DESCENDING.

READ TABLE p0105 WITH KEY pernr = s_pernr-low

subty = '0010'

BINARY SEARCH.

IF sy-subrc EQ 0.

wa_receivers-receiver = p0105-usrid_long.

wa_receivers-rec_type = 'U'.

wa_receivers-com_type = 'INT'.

wa_receivers-express = c_x.

wa_receivers-rec_date = sy-datum.

APPEND wa_receivers TO it_receivers.

CLEAR wa_receivers.

ENDIF.

ENDLOOP.

*Preparing the e-mail subject

CLEAR g_mail_subject.

g_mail_subject = 'Spectera Vision'(t35).

CLEAR wa_docu_data.

wa_docu_data-obj_name = 'MESSAGE' .

wa_docu_data-obj_descr = g_mail_subject.

wa_docu_data-no_change = c_x.

wa_docu_data-obj_langu = 'E'.

*Prepare the e-mail message(body)

IF g_subrc EQ 0.

wa_message = text-b01.

ELSE.

wa_message = text-b02.

ENDIF.

APPEND wa_message TO it_message.

DESCRIBE TABLE it_message LINES g_tab_lines.

READ TABLE it_message INTO wa_message

INDEX g_tab_lines.

wa_docu_data-doc_size = ( g_tab_lines - 1 ) * 255 + STRLEN( wa_message ).

CLEAR g_tab_lines.

*

DESCRIBE TABLE it_objcont LINES g_tab_lines.

*

CLEAR wa_pack_list-transf_bin.

*

wa_pack_list-head_start = 1.

wa_pack_list-head_num = 0.

wa_pack_list-body_start = 1.

wa_pack_list-body_num = g_tab_lines.

wa_pack_list-doc_type = 'TXT'.

APPEND wa_pack_list TO it_pack_list.

CLEAR wa_pack_list.

*

wa_pack_list-transf_bin = c_x.

wa_pack_list-head_start = 1.

wa_pack_list-head_num = 1.

wa_pack_list-body_start = 1.

wa_pack_list-body_num = g_tab_lines.

wa_pack_list-doc_type = 'TXT'.

wa_pack_list-obj_name = 'ATTACHMENT'.

wa_pack_list-obj_descr = text-b03.

wa_pack_list-doc_size = g_tab_lines * 255.

*

APPEND wa_pack_list TO it_pack_list.

CLEAR wa_pack_list.

wa_objconth = 'ATTACH'.

*

APPEND wa_objconth TO it_objconth.

CLEAR wa_objconth.

*Function Module to send an email attachment

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

document_data = wa_docu_data

put_in_outbox = c_x

commit_work = c_x

TABLES

packing_list = it_pack_list

object_header = it_objconth

contents_bin = it_objcont

contents_txt = it_message

receivers = it_receivers

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

document_type_not_exist = 3

operation_no_authorization = 4

OTHERS = 99

.

IF sy-subrc EQ 0.

MESSAGE i167(37) WITH 'E-mail sent successfully'(i39).

ELSE.

MESSAGE i167(37) WITH 'Error while sending E-mail'(i40).

ENDIF.

ENDFORM. " sub_send_mail

Reward points if useful.

Read only

mahaboob_pathan
Contributor
0 Likes
512

hi,

check this one.

FUNCTION ZSENDPDF_BASSO.

*"----


""Local Interface:

*" IMPORTING

*" VALUE(OBJECTGUID) TYPE DNOS_BOR_KEY-GUID OPTIONAL

*" VALUE(PARTNERNO) TYPE CRMT_PARTNER_NO OPTIONAL

*"----


tables: crmd_orderadm_i,crmd_schedlin,crmd_order_index.

data: i_lines TYPE tline OCCURS 0 WITH HEADER LINE.

DATA: tb_pdf LIKE tline OCCURS 0.

DATA: tb_pdf255 TYPE so_text255 OCCURS 0.

DATA: lw_subject TYPE so_obj_des.

DATA: lwa_body TYPE solisti1.

DATA: ltb_body TYPE TABLE OF solisti1.

DATA: lw_filename TYPE char100.

DATA: ltb_recipients TYPE TABLE OF somlreci1.

DATA: lwa_recipients TYPE somlreci1.

data addrnumber type but000-addrcomm.

data email type adr6-smtp_addr.

data email1 type SOMLRECI1-RECEIVER.

data p_guid type CRMT_OBJECT_GUID.

p_guid = OBJECTGUID.

*parameters: p_guid type crmd_order_index-guid.

data:

fm_name TYPE RS38L_FNAM, "Smart Forms: FM Name

*sf_name TYPE TDSFNAME

*value 'YOUR_FORM_NAME', "Smart Forms: Form Name

P_OUTPUT_OPTIONS TYPE SSFCOMPOP,

P_JOB_OUTPUT_INFO TYPE SSFCRESCL,

P_CONTROL_PARAMETERS TYPE SSFCTRLOP,

P_LANGUAGE TYPE SFLANGU value 'E',

P_E_DEVTYPE TYPE RSPOPTYPE.

data:

P_BIN_FILESIZE TYPE I,

P_BIN_FILE TYPE XSTRING,

P_OTF type table of ITCOO,

P_DOCS type table of DOCS,

P_LINES type table of TLINE,

name type string,

path type string,

fullpath type string,

filter type string,

guiobj type ref to cl_gui_frontend_services,

uact type i,

filename(128).

*"----


GET SMARTFORM FUNCTION MODULE NAME ---

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

FORMNAME = 'ZBASO_CREATION'

IMPORTING

FM_NAME = fm_name

EXCEPTIONS

NO_FORM = 1

NO_FUNCTION_MODULE = 2

*OTHERS = 3

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CALL FUNCTION 'SSF_GET_DEVICE_TYPE'

EXPORTING

I_LANGUAGE = P_LANGUAGE

I_APPLICATION = 'SAPDEFAULT'

IMPORTING

E_DEVTYPE = P_E_DEVTYPE.

P_OUTPUT_OPTIONS-XSFCMODE = 'X'.

P_OUTPUT_OPTIONS-XSF = SPACE.

P_OUTPUT_OPTIONS-XDFCMODE = 'X'.

P_OUTPUT_OPTIONS-XDF = SPACE.

P_OUTPUT_OPTIONS-TDPRINTER = P_E_DEVTYPE.

P_CONTROL_PARAMETERS-NO_DIALOG = 'X'.

P_CONTROL_PARAMETERS-GETOTF = 'X'.

*

****...................................PRINTING.........................

*CALL FUNCTION fm_name

*EXPORTING

*CONTROL_PARAMETERS = P_CONTROL_PARAMETERS

*OUTPUT_OPTIONS = P_OUTPUT_OPTIONS

(....) <--- your form import parameters

*IMPORTING

*JOB_OUTPUT_INFO = P_JOB_OUTPUT_INFO.

*

*IF SY-SUBRC <> 0.

*MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

*WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ENDIF.

CALL FUNCTION fm_name "'/1BCDWB/SF00000019'

EXPORTING

ARCHIVE_INDEX =

ARCHIVE_INDEX_TAB =

ARCHIVE_PARAMETERS =

CONTROL_PARAMETERS = P_CONTROL_PARAMETERS

MAIL_APPL_OBJ =

MAIL_RECIPIENT =

MAIL_SENDER =

OUTPUT_OPTIONS = P_OUTPUT_OPTIONS

USER_SETTINGS = 'X'

*I_GUID = '4344382C5A9B77438A20F480E833CDF8'

I_GUID = p_guid

IMPORTING

DOCUMENT_OUTPUT_INFO =

JOB_OUTPUT_INFO = P_JOB_OUTPUT_INFO

JOB_OUTPUT_OPTIONS =

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

P_OTF[] = P_JOB_OUTPUT_INFO-OTFDATA.

****...................................CONVERT TO PDF...............

CALL FUNCTION 'CONVERT_OTF_2_PDF'

IMPORTING

BIN_FILESIZE = P_BIN_FILESIZE

TABLES

OTF = P_OTF

DOCTAB_ARCHIVE = P_DOCS

LINES = P_LINES

EXCEPTIONS

ERR_CONV_NOT_POSSIBLE = 1

ERR_OTF_MC_NOENDMARKER = 2

OTHERS = 3.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*

Change the PDF format from 132 to 255.

CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'

EXPORTING

line_width_src = 134

line_width_dst = 255.............................

transfer_bin = 'X'

TABLES

content_in = P_LINES

content_out = tb_pdf255

EXCEPTIONS

err_line_width_src_too_long = 1

err_line_width_dst_too_long = 2

err_conv_failed = 3

OTHERS = 4

.

lw_subject = '<Subject>'.

lwa_body-line = 'This is the email body - Line1'.

APPEND lwa_body TO ltb_body.

lwa_body-line = 'This is the email body - Line2'.

APPEND lwa_body TO ltb_body.

*lwa_body-line = 'This is the email body - Line3'.

*APPEND lwa_body TO ltb_body.

*lwa_body-line = 'This is the email body - Line4'.

*APPEND lwa_body TO ltb_body.

lw_filename = '<File Name>'.

*RECIPIENTS

lwa_recipients-rec_type = 'B'.

lwa_recipients-express = 'X'.

lwa_recipients-receiver = 'SAPUSER'.

lwa_recipients-copy = ''.

APPEND lwa_recipients TO ltb_recipients.

*RECIPIENTS

*lwa_recipients-rec_type = 'U'.

*lwa_recipients-express = 'X'.

*lwa_recipients-receiver = '<email-id1>'.

*lwa_recipients-copy = ''.

*APPEND lwa_recipients TO ltb_recipients.

RECIPIENTS

lwa_recipients-rec_type = 'U'.

lwa_recipients-express = 'X'.

lwa_recipients-receiver = <email-id2>.

lwa_recipients-copy = ''.

APPEND lwa_recipients TO ltb_recipients.

Sends the PDF by email.

PERFORM f_send_pdf_by_email

TABLES

tb_pdf255

ltb_body

ltb_recipients

USING

lw_subject

lw_filename.

*

ENDFUNCTION.

FORM f_send_pdf_by_email

TABLES

ptb_pdf255 STRUCTURE solisti1

ptb_body STRUCTURE solisti1

ptb_recipients STRUCTURE somlreci1

USING

pw_subject TYPE so_obj_des

pw_filename TYPE char100.

*-DATA DECLARATION----


Variables y tablas internas.

DATA: BEGIN OF ltb_objbin OCCURS 0.

INCLUDE STRUCTURE solisti1.

DATA: END OF ltb_objbin.

DATA: lwa_doc_chng LIKE sodocchgi1,

lw_tab_lines LIKE sy-tabix,

ltb_objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,

ltb_objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.

*-MAIN PROCESSING SECTION----


clear: ltb_objbin, ltb_objtxt, ltb_objpack, lwa_doc_chng.

refresh: ltb_objbin, ltb_objtxt, ltb_objpack.

Control Data

lwa_doc_chng-obj_name = 'URGENT'.

lwa_doc_chng-sensitivty = 'P'.

lwa_doc_chng-no_change = 'X'.

lwa_doc_chng-priority = '1'.

lwa_doc_chng-obj_prio = '1'.

lwa_doc_chng-obj_langu = sy-langu.

lwa_doc_chng-no_change = 'X'.

Email Subject

lwa_doc_chng-obj_descr = pw_subject.

Email Body

ltb_objtxt] = ptb_body[.

CLEAR ltb_objtxt.

DESCRIBE TABLE ltb_objtxt LINES lw_tab_lines.

IF lw_tab_lines GT 0.

READ TABLE ltb_objtxt INDEX lw_tab_lines.

lwa_doc_chng-doc_size =

( lw_tab_lines - 1 ) * 255 + STRLEN( ltb_objtxt ).

CLEAR ltb_objpack-transf_bin.

ltb_objpack-body_start = 1.

ltb_objpack-body_num = lw_tab_lines.

ltb_objpack-doc_type = 'RAW'.

APPEND ltb_objpack.

ENDIF.

Attachment

Move the binary attachment to other internal table.

ltb_objbin] = ptb_pdf255[.

ltb_objpack-transf_bin = 'X'.

ltb_objpack-body_start = 1.

Get the number of lines in the Attachment (PDF FILE)

DESCRIBE TABLE ltb_objbin LINES lw_tab_lines.

ltb_objpack-body_num = lw_tab_lines.

ltb_objpack-doc_type = 'PDF'.

ltb_objpack-obj_descr = pw_filename.

ltb_objpack-obj_name = pw_filename.

ltb_objpack-doc_size = lw_tab_lines * 255.

APPEND ltb_objpack.

Call the function to send the PDF file by email

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = lwa_doc_chng

put_in_outbox = 'X'

TABLES

packing_list = ltb_objpack

contents_bin = ltb_objbin

contents_txt = ltb_objtxt

receivers = ptb_recipients

EXCEPTIONS

too_many_receivers = 1

document_not_sent = 2

document_type_not_exist = 3

operation_no_authorization = 4

parameter_error = 5

x_error = 6

enqueue_error = 7

OTHERS = 8.

CASE sy-subrc.

WHEN 0.

WHEN 1. RAISE too_many_receivers.

WHEN 2. RAISE document_not_sent .

WHEN 3. RAISE document_type_not_exist.

WHEN 4. RAISE operation_no_authorization.

WHEN 5. RAISE parameter_error.

WHEN 7. RAISE enqueue_error .

WHEN OTHERS. RAISE x_error.

ENDCASE.

COMMIT WORK.

ENDFORM.