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

Problem in Opening Excel file

Former Member
0 Likes
643

Hi......

I've written a logic for sending mail through FM SO_DOCUMENT_SEND_API1 every thing works fine a get a attachment of the excel file with all the data but when i open the file i get a pop message saying Worksheet setting problem.....and the file does'nt gets open........i'm just wondering what might be the problem.......it was working on well yesterday and now i get this....strange......what might be going wrong........Let me know and correct answers would be surely awarded.........

I use to get a same message for other program's excel file and it still opens the file......but this current excel file seems to be not opening.......

4 REPLIES 4
Read only

Former Member
0 Likes
618

hi check this code if u had changed any thing,

codeREPORT Z34332_MAIL_WITH_ATTACHMENT1.

types: begin of t_mara,

matnr type mara-matnr,

matkl type mara-matkl,

mtart type mara-mtart,

meins type mara-meins,

end of t_mara.

data: gt_mara type table of t_mara,

wa_mara like line of gt_mara,

it_packing_list type table of SOPCKLSTI1,

wa_packing_list like line of it_packing_list,

it_receivers type table of SOMLRECI1,

wa_receivers like line of it_receivers,

it_mailbody type table of SOLISTI1,

wa_mailbody like line of it_mailbody,

it_attachment type table of SOLISTI1,

wa_attachment like line of it_attachment.

data: la_doc type SODOCCHGI1.

constants:

con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,

con_cret type c value cl_abap_char_utilities=>CR_LF.

get material

select matnr matkl mtart meins

into table gt_mara

from mara

up to 25 rows.

Populate the subject/generic message attributes

la_doc-obj_langu = sy-langu.

la_doc-obj_descr = 'Material Details' . "Mail Header

la_doc-sensitivty = 'F'.

la_doc-doc_size = 1.

Add the recipients email address

CLEAR wa_receivers.

REFRESH it_receivers.

wa_receivers-receiver = 'PCSDEVL'.

wa_receivers-rec_type = 'U'.

wa_receivers-com_type = 'INT'.

wa_receivers-notif_del = 'X'.

wa_receivers-notif_ndel = 'X'.

APPEND wa_receivers to it_receivers.

Mail Body

CLEAR wa_mailbody.

REFRESH it_mailbody.

wa_mailbody-line = 'Please find the attachment'.

APPEND wa_mailbody to it_mailbody.

Mail attachmwnt

CLEAR wa_attachment.

REFRESH it_attachment.

CONCATENATE 'MATNR' 'MATKL' 'MTART' 'MEINS'

INTO wa_attachment SEPARATED BY con_tab.

CONCATENATE con_cret wa_attachment INTO wa_attachment.

APPEND wa_attachment to it_attachment.

LOOP AT gt_mara INTO wa_mara.

CONCATENATE wa_mara-matnr wa_mara-matkl

wa_mara-mtart wa_mara-meins

INTO wa_attachment SEPARATED BY con_tab.

CONCATENATE con_cret wa_attachment INTO wa_attachment.

APPEND wa_attachment to it_attachment.

ENDLOOP.

Describe the body of the message

CLEAR wa_packing_list.

REFRESH it_packing_list.

wa_packing_list-transf_bin = space.

wa_packing_list-head_start = 1.

wa_packing_list-head_num = 0.

wa_packing_list-body_start = 1.

wa_packing_list-body_num = 1.

wa_packing_list-doc_type = 'RAW'.

APPEND wa_packing_list to it_packing_list.

Create attachment notification

wa_packing_list-transf_bin = 'X'.

wa_packing_list-head_start = 1.

wa_packing_list-head_num = 1.

wa_packing_list-body_start = 1.

DESCRIBE TABLE it_attachment LINES wa_packing_list-body_num.

wa_packing_list-doc_type = 'XLS'. " To word attachment change this as 'DOC'

wa_packing_list-obj_descr = ' '.

concatenate wa_packing_list-doc_type 'file' into wa_packing_list-OBJ_DESCR

separated by space.

wa_packing_list-doc_size = wa_packing_list-body_num * 255.

APPEND wa_packing_list to it_packing_list.

CALL FUNCTION 'SO_DOCUMENT_SEND_API1'

EXPORTING

document_data = la_doc

PUT_IN_OUTBOX = 'X'

SENDER_ADDRESS = SY-UNAME

SENDER_ADDRESS_TYPE = 'B'

COMMIT_WORK = 'X'

IMPORTING

SENT_TO_ALL =

NEW_OBJECT_ID =

SENDER_ID =

tables

packing_list = it_packing_list

OBJECT_HEADER =

CONTENTS_BIN = it_attachment

CONTENTS_TXT = it_mailbody

CONTENTS_HEX =

OBJECT_PARA =

OBJECT_PARB =

receivers = it_receivers

EXCEPTIONS

TOO_MANY_RECEIVERS = 1

DOCUMENT_NOT_SENT = 2

DOCUMENT_TYPE_NOT_EXIST = 3

OPERATION_NO_AUTHORIZATION = 4

PARAMETER_ERROR = 5

X_ERROR = 6

ENQUEUE_ERROR = 7

OTHERS = 8

.

IF sy-subrc 0.

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

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

endif.[/code]

regards,

venkat.

Read only

0 Likes
618

Hey Guys......

I dont have any problem absouletly in the coding of mail........every thing seem to be ok........if i have any problem then why on earth this wud have opened properly yesterday........so apart from logic what seems to be the other problem.........

Read only

Former Member
0 Likes
618

Hi,

Better use 'SO_OBJECT_SEND' FM .

Sample code:

  • Declaration

DATA: lwa_hd_change TYPE sood1,

lt_objcont TYPE STANDARD TABLE OF soli,

lwa_objcont TYPE soli,

lt_receivers TYPE STANDARD TABLE OF soos1,

lwa_receivers TYPE soos1 ,

lt_att_cont TYPE STANDARD TABLE OF soli,

lwa_att_cont TYPE soli,

lt_packing TYPE STANDARD TABLE OF soxpl,

lwa_packing TYPE soxpl,

lf_sent TYPE sonv-flag,

lf_size TYPE i.

CONSTANTS: lc_obj(11) TYPE c VALUE 'BOMSouthco',

lc_desc(20) TYPE c VALUE 'BOM Download',

lc_lang(1) TYPE c VALUE 'E',

lc_raw(3) TYPE c VALUE 'RAW',

lc_net(1) TYPE c VALUE 'U',

lc_mail(4) TYPE c VALUE 'MAIL',

lc_xls(3) TYPE c VALUE 'XLS',

lc_ext(3) TYPE c VALUE 'EXT'.

  • Passing values to the strutures used in SO_OBJECT_SEND function module

lwa_hd_change-objla = lc_lang.

lwa_hd_change-objnam = lc_obj.

lwa_hd_change-objdes = lc_desc.

lwa_hd_change-objlen = 255.

lwa_objcont-line = text-t29.

APPEND lwa_objcont TO lt_objcont.

CLEAR lwa_objcont.

lwa_receivers-recextnam = text-t31.

lwa_receivers-recesc = lc_net.

lwa_receivers-sndart = lc_mail.

lwa_receivers-sndex = 'X'.

lwa_receivers-sndpri = 1.

lwa_receivers-mailstatus = 'E'.

APPEND lwa_receivers TO lt_receivers.

CLEAR lwa_receivers.

lwa_receivers-recextnam = text-t30.

lwa_receivers-recesc = lc_net.

lwa_receivers-sndart = lc_mail.

lwa_receivers-sndex = 'X'.

lwa_receivers-sndpri = 1.

lwa_receivers-mailstatus = 'E'.

APPEND lwa_receivers TO lt_receivers.

CLEAR lwa_receivers.

  • Passing values for the attachment file

LOOP AT gt_output INTO gwa_output.

CONCATENATE gf_lf gwa_output-matnr gf_etb gwa_output-idnrk gf_etb

gwa_output-type gf_etb gwa_output-menge gf_etb

gwa_output-meins gf_etb gwa_output-comp gf_etb

INTO lwa_att_cont-line.

APPEND lwa_att_cont TO lt_att_cont.

CLEAR lwa_att_cont.

ENDLOOP.

CHECK lt_att_cont IS NOT INITIAL.

DESCRIBE TABLE lt_att_cont LINES lf_size.

lwa_packing-transf_bin = ' '.

lwa_packing-head_start = 1.

lwa_packing-head_num = 0.

lwa_packing-body_start = 1.

lwa_packing-body_num = lf_size.

lwa_packing-file_ext = lc_xls.

lwa_packing-objlen = lf_size * 255.

lwa_packing-objtp = lc_ext.

lwa_packing-objdes = lc_desc.

lwa_packing-objnam = lc_obj.

APPEND lwa_packing TO lt_packing.

CLEAR lwa_packing.

CHECK gf_error IS NOT INITIAL. "Check if unix file is written

  • FM to send email to the intended recipients

CALL FUNCTION 'SO_OBJECT_SEND'

EXPORTING

object_hd_change = lwa_hd_change

object_type = lc_raw

IMPORTING

sent_to_all = lf_sent

TABLES

objcont = lt_objcont

receivers = lt_receivers

packing_list = lt_packing

att_cont = lt_att_cont

EXCEPTIONS

active_user_not_exist = 1

communication_failure = 2

component_not_available = 3

folder_not_exist = 4

folder_no_authorization = 5

forwarder_not_exist = 6

note_not_exist = 7

object_not_exist = 8

object_not_sent = 9

object_no_authorization = 10

object_type_not_exist = 11

operation_no_authorization = 12

owner_not_exist = 13

parameter_error = 14

substitute_not_active = 15

substitute_not_defined = 16

system_failure = 17

too_much_receivers = 18

user_not_exist = 19

originator_not_exist = 20

x_error = 21

OTHERS = 22.

IF sy-subrc = 0.

MESSAGE s004 WITH text-t34.

ENDIF.

COMMIT WORK.

Reward if helpful.

Regards,

Ramya

Read only

Former Member
0 Likes
618

I've resolved it