10-02-2008 8:51 AM
I am sending Email of XLS Document thru my program,
but in SOST i got Error Message cannot be processed as it cannot be converted.
i used FM SO_DOCUMENT_SEND_API1 and after Sy-subrc of Fm is = 0
i used SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
Can any one guide me on the finding out the error in this?
10-02-2008 9:41 AM
Check the below code. It may help you. First you need to convert the file into OTF.
DATA: NUMBYTES TYPE TST01-DSIZE,
PDFSPOOLID TYPE TSP01-RQIDENT.
DATA: BEGIN OF PDFDATA OCCURS 0.
INCLUDE STRUCTURE TLINE.
DATA: END OF PDFDATA.
DATA: G1_LINES_TXT TYPE I.
DATA : L_DOCUMENT_DATA TYPE SODOCCHGI1,
T_PACKING_LIST TYPE STANDARD TABLE OF SOPCKLSTI1,
W_OBJHEAD TYPE SOLI_TAB,
T_OBJBIN TYPE STANDARD TABLE OF SOLISTI1,
T_OBJTXT TYPE STANDARD TABLE OF SOLISTI1,
LW_PACKING_LIST TYPE SOPCKLSTI1,
L_LINES TYPE I,
W_RECEIVER TYPE SOMLRECI1,
T_RECEIVER TYPE STANDARD TABLE OF SOMLRECI1.
DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
DATA: OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
DATA: DOC_CHNG LIKE SODOCCHGI1.
DATA: TAB_LINES LIKE SY-TABIX.
SELECT MAX( RQIDENT ) INTO G_SPOOL_NUM
FROM TSP01
WHERE RQCLIENT = SY-MANDT AND
RQOWNER = SY-UNAME.
*....Convert Spool to PDF
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = G_SPOOL_NUM
NO_DIALOG = 'X'
DST_DEVICE = G_PDEST
IMPORTING
PDF_BYTECOUNT = NUMBYTES
TABLES
PDF = PDFDATA
EXCEPTIONS
ERR_NO_ABAP_SPOOLJOB = 1
ERR_NO_SPOOLJOB = 2
ERR_NO_PERMISSION = 3
ERR_CONV_NOT_POSSIBLE = 4
ERR_BAD_DESTDEVICE = 5
USER_CANCELLED = 6
ERR_SPOOLERROR = 7
ERR_TEMSEERROR = 8
ERR_BTCJOB_OPEN_FAILED = 9
ERR_BTCJOB_SUBMIT_FAILED = 10
ERR_BTCJOB_CLOSE_FAILED = 11
OTHERS = 12.
*...Convert 132 char to 255 char
LOOP AT PDFDATA.
TRANSLATE PDFDATA USING ' ~'.
CONCATENATE GD_BUFFER PDFDATA INTO GD_BUFFER.
ENDLOOP.
TRANSLATE GD_BUFFER USING '~ '.
DO.
IT_MESS_ATT = GD_BUFFER.
APPEND IT_MESS_ATT.
SHIFT GD_BUFFER LEFT BY 255 PLACES.
IF GD_BUFFER IS INITIAL.
EXIT.
ENDIF.
ENDDO.
Creating the document attachment
LOOP AT IT_MESS_ATT.
OBJBIN = IT_MESS_ATT.
APPEND OBJBIN.
CLEAR: OBJBIN,
IT_MESS_ATT.
ENDLOOP.
Creating the document to be sent
DOC_CHNG-OBJ_NAME = 'IG Balance'.
*.....Subject of the email.
CONCATENATE 'Intragroup Confirmation from AoO: ' P_ZAOO INTO DOC_CHNG-OBJ_DESCR.
DOC_CHNG-OBJ_DESCR = 'Intragroup Confirmation from AoO '.
*...Body of the email
OBJTXT = 'Please find attached a summary and details for intragroup transactions for the referenced AoOs.'.
APPEND OBJTXT.
OBJTXT = 'Any queries regarding the attached should be addressed to the contact names on the Summary Report.'.
APPEND OBJTXT.
DESCRIBE TABLE OBJTXT LINES TAB_LINES.
READ TABLE OBJTXT INDEX TAB_LINES.
DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
Creating the entry for the compressed document
CLEAR OBJPACK-TRANSF_BIN.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 0.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'RAW'.
APPEND OBJPACK.
DESCRIBE TABLE OBJBIN LINES TAB_LINES.
OBJHEAD = 'IG Balace.PDF'. APPEND OBJHEAD.
Creating the entry for the compressed attachment
OBJPACK-TRANSF_BIN = 'X'.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 1.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'PDF'.
OBJPACK-OBJ_NAME = 'ATTACHMENT'.
OBJPACK-OBJ_DESCR = 'IG Balance Report'.
OBJPACK-DOC_SIZE = TAB_LINES * 255.
APPEND OBJPACK..
Entering names in the distribution list
DATA: L_CNT TYPE I.
LOOP AT T_EMAIL INTO W_EMAIL.
IF W_EMAIL-ZCONTACT1 IS NOT INITIAL.
RECLIST-RECEIVER = W_EMAIL-ZCONTACT1.
RECLIST-REC_TYPE = 'U'.
L_CNT = L_CNT + 1.
ELSEIF W_EMAIL-ZCONTACT2 IS NOT INITIAL.
RECLIST-RECEIVER = W_EMAIL-ZCONTACT2.
RECLIST-REC_TYPE = 'U'.
L_CNT = L_CNT + 1.
ENDIF.
APPEND RECLIST.
CLEAR: RECLIST,
W_EMAIL.
ENDLOOP.
SELECT SINGLE ZAOO
ZCONTACT1
ZCONTACT2 FROM ZFI_MT_RPTRMAP INTO W_EMAIL
WHERE ZAOO EQ P_ZAOO.
IF W_EMAIL-ZCONTACT1 IS NOT INITIAL.
RECLIST-RECEIVER = W_EMAIL-ZCONTACT1.
RECLIST-REC_TYPE = 'U'.
L_CNT = L_CNT + 1.
APPEND RECLIST.
ELSEIF W_EMAIL-ZCONTACT2 IS NOT INITIAL.
RECLIST-RECEIVER = W_EMAIL-ZCONTACT2.
RECLIST-REC_TYPE = 'U'.
L_CNT = L_CNT + 1.
APPEND RECLIST.
ENDIF.
Sending the document
IF L_CNT > 0.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOC_CHNG
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
TABLES
PACKING_LIST = OBJPACK
OBJECT_HEADER = OBJHEAD
CONTENTS_BIN = OBJBIN
CONTENTS_TXT = OBJTXT
RECEIVERS = RECLIST
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
OPERATION_NO_AUTHORIZATION = 4
OTHERS = 99.
CASE SY-SUBRC.
WHEN 0.
WRITE 'Email sent successfully'.
WHEN 1.
WRITE: / 'no authorization to send to the specified number of recipients!'.
WHEN 2.
WRITE: / 'document could not be sent to any of the recipients!'.
WHEN 4.
WRITE: / 'no authorization to send !'.
WHEN OTHERS.
WRITE: / 'error occurred during sending !'.
ENDCASE.
ELSE.
MESSAGE S000 WITH TEXT-018.
STOP.
ENDIF.
*...Delete Spool Request.
DATA: SPOOLID TYPE TSP01_SP0R-RQID_CHAR.
SPOOLID = G_SPOOL_NUM.
CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
EXPORTING
SPOOLID = SPOOLID
IMPORTING
RC =
STATUS =
ERROR_MESSAGE =
.
10-02-2008 9:41 AM
Check the below code. It may help you. First you need to convert the file into OTF.
DATA: NUMBYTES TYPE TST01-DSIZE,
PDFSPOOLID TYPE TSP01-RQIDENT.
DATA: BEGIN OF PDFDATA OCCURS 0.
INCLUDE STRUCTURE TLINE.
DATA: END OF PDFDATA.
DATA: G1_LINES_TXT TYPE I.
DATA : L_DOCUMENT_DATA TYPE SODOCCHGI1,
T_PACKING_LIST TYPE STANDARD TABLE OF SOPCKLSTI1,
W_OBJHEAD TYPE SOLI_TAB,
T_OBJBIN TYPE STANDARD TABLE OF SOLISTI1,
T_OBJTXT TYPE STANDARD TABLE OF SOLISTI1,
LW_PACKING_LIST TYPE SOPCKLSTI1,
L_LINES TYPE I,
W_RECEIVER TYPE SOMLRECI1,
T_RECEIVER TYPE STANDARD TABLE OF SOMLRECI1.
DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
DATA: OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
DATA: DOC_CHNG LIKE SODOCCHGI1.
DATA: TAB_LINES LIKE SY-TABIX.
SELECT MAX( RQIDENT ) INTO G_SPOOL_NUM
FROM TSP01
WHERE RQCLIENT = SY-MANDT AND
RQOWNER = SY-UNAME.
*....Convert Spool to PDF
CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
EXPORTING
SRC_SPOOLID = G_SPOOL_NUM
NO_DIALOG = 'X'
DST_DEVICE = G_PDEST
IMPORTING
PDF_BYTECOUNT = NUMBYTES
TABLES
PDF = PDFDATA
EXCEPTIONS
ERR_NO_ABAP_SPOOLJOB = 1
ERR_NO_SPOOLJOB = 2
ERR_NO_PERMISSION = 3
ERR_CONV_NOT_POSSIBLE = 4
ERR_BAD_DESTDEVICE = 5
USER_CANCELLED = 6
ERR_SPOOLERROR = 7
ERR_TEMSEERROR = 8
ERR_BTCJOB_OPEN_FAILED = 9
ERR_BTCJOB_SUBMIT_FAILED = 10
ERR_BTCJOB_CLOSE_FAILED = 11
OTHERS = 12.
*...Convert 132 char to 255 char
LOOP AT PDFDATA.
TRANSLATE PDFDATA USING ' ~'.
CONCATENATE GD_BUFFER PDFDATA INTO GD_BUFFER.
ENDLOOP.
TRANSLATE GD_BUFFER USING '~ '.
DO.
IT_MESS_ATT = GD_BUFFER.
APPEND IT_MESS_ATT.
SHIFT GD_BUFFER LEFT BY 255 PLACES.
IF GD_BUFFER IS INITIAL.
EXIT.
ENDIF.
ENDDO.
Creating the document attachment
LOOP AT IT_MESS_ATT.
OBJBIN = IT_MESS_ATT.
APPEND OBJBIN.
CLEAR: OBJBIN,
IT_MESS_ATT.
ENDLOOP.
Creating the document to be sent
DOC_CHNG-OBJ_NAME = 'IG Balance'.
*.....Subject of the email.
CONCATENATE 'Intragroup Confirmation from AoO: ' P_ZAOO INTO DOC_CHNG-OBJ_DESCR.
DOC_CHNG-OBJ_DESCR = 'Intragroup Confirmation from AoO '.
*...Body of the email
OBJTXT = 'Please find attached a summary and details for intragroup transactions for the referenced AoOs.'.
APPEND OBJTXT.
OBJTXT = 'Any queries regarding the attached should be addressed to the contact names on the Summary Report.'.
APPEND OBJTXT.
DESCRIBE TABLE OBJTXT LINES TAB_LINES.
READ TABLE OBJTXT INDEX TAB_LINES.
DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
Creating the entry for the compressed document
CLEAR OBJPACK-TRANSF_BIN.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 0.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'RAW'.
APPEND OBJPACK.
DESCRIBE TABLE OBJBIN LINES TAB_LINES.
OBJHEAD = 'IG Balace.PDF'. APPEND OBJHEAD.
Creating the entry for the compressed attachment
OBJPACK-TRANSF_BIN = 'X'.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 1.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'PDF'.
OBJPACK-OBJ_NAME = 'ATTACHMENT'.
OBJPACK-OBJ_DESCR = 'IG Balance Report'.
OBJPACK-DOC_SIZE = TAB_LINES * 255.
APPEND OBJPACK..
Entering names in the distribution list
DATA: L_CNT TYPE I.
LOOP AT T_EMAIL INTO W_EMAIL.
IF W_EMAIL-ZCONTACT1 IS NOT INITIAL.
RECLIST-RECEIVER = W_EMAIL-ZCONTACT1.
RECLIST-REC_TYPE = 'U'.
L_CNT = L_CNT + 1.
ELSEIF W_EMAIL-ZCONTACT2 IS NOT INITIAL.
RECLIST-RECEIVER = W_EMAIL-ZCONTACT2.
RECLIST-REC_TYPE = 'U'.
L_CNT = L_CNT + 1.
ENDIF.
APPEND RECLIST.
CLEAR: RECLIST,
W_EMAIL.
ENDLOOP.
SELECT SINGLE ZAOO
ZCONTACT1
ZCONTACT2 FROM ZFI_MT_RPTRMAP INTO W_EMAIL
WHERE ZAOO EQ P_ZAOO.
IF W_EMAIL-ZCONTACT1 IS NOT INITIAL.
RECLIST-RECEIVER = W_EMAIL-ZCONTACT1.
RECLIST-REC_TYPE = 'U'.
L_CNT = L_CNT + 1.
APPEND RECLIST.
ELSEIF W_EMAIL-ZCONTACT2 IS NOT INITIAL.
RECLIST-RECEIVER = W_EMAIL-ZCONTACT2.
RECLIST-REC_TYPE = 'U'.
L_CNT = L_CNT + 1.
APPEND RECLIST.
ENDIF.
Sending the document
IF L_CNT > 0.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOC_CHNG
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
TABLES
PACKING_LIST = OBJPACK
OBJECT_HEADER = OBJHEAD
CONTENTS_BIN = OBJBIN
CONTENTS_TXT = OBJTXT
RECEIVERS = RECLIST
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
OPERATION_NO_AUTHORIZATION = 4
OTHERS = 99.
CASE SY-SUBRC.
WHEN 0.
WRITE 'Email sent successfully'.
WHEN 1.
WRITE: / 'no authorization to send to the specified number of recipients!'.
WHEN 2.
WRITE: / 'document could not be sent to any of the recipients!'.
WHEN 4.
WRITE: / 'no authorization to send !'.
WHEN OTHERS.
WRITE: / 'error occurred during sending !'.
ENDCASE.
ELSE.
MESSAGE S000 WITH TEXT-018.
STOP.
ENDIF.
*...Delete Spool Request.
DATA: SPOOLID TYPE TSP01_SP0R-RQID_CHAR.
SPOOLID = G_SPOOL_NUM.
CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
EXPORTING
SPOOLID = SPOOLID
IMPORTING
RC =
STATUS =
ERROR_MESSAGE =
.
10-02-2008 2:20 PM
I Sending XLS document to Email...using 4.6C version..
I am getting sy-subrc returned as Zero from FM SO_DOCUMENT_SEND_API1
But still I gettting Error message : Message cannot be processed as it cannot be converted in SOST.
and Email could not be sent.
Please guide..
Edited by: ksiva on Oct 2, 2008 6:56 PM
10-02-2008 4:04 PM
Here is my code: Cna anyone find the error for sending XLS ..using here 4.6C..
*******Data Declarations*******************
DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE...
DATA: it_attach TYPE STANDARD TABLE OF ldbpsjtab3000 INITIAL SIZE 0
WITH HEADER LINE.
DATA: lv_date(10),
lv_time(8).
DATA: BEGIN OF i_spreadsheet1 OCCURS 0,
field1(4), " Company Code
field2(60), " Profit Center
field3(100), " Cost Center
field4(15), " G/L Account
field5(11), " Invoice doc. number
field6(11), " Line item
field7(5), " Vendor
field8(8), " Name
field9(8), " Currency
field10(8), " Loc.curr.amount
field11(12), " Tax Code
END OF i_spreadsheet1.
CONSTANTS: con_tab TYPE x VALUE 'OA', "Horizontal tab
con_cret TYPE x VALUE 'OD'. "Carriage return
DATA: no TYPE i,
t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
w_cnt TYPE i,
w_sent_all(1) TYPE c,
w_doc_data LIKE sodocchgi1,
gd_error TYPE sy-subrc,
gd_reciever TYPE sy-subrc,
ld_error TYPE sy-subrc,
ld_reciever TYPE sy-subrc,
ld_mtitle LIKE sodocchgi1-obj_descr,
ld_email LIKE somlreci1-receiver VALUE 'sKXXXX@BCDF',
ld_format TYPE so_obj_tp ,
ld_attdescription TYPE so_obj_des, "so_obj_nam ,
ld_attfilename TYPE so_obj_nam, "so_obj_des ,
ld_sender_address LIKE soextreci1-receiver,
ld_sender_address_type LIKE soextreci1-adr_typ,
ld_receiver LIKE sy-subrc.
FIELD-SYMBOLS <fs> TYPE ANY.
FIELD-SYMBOLS <fs1> TYPE ANY.
DATA: temp(500) TYPE c,
gd_attachment_desc TYPE so_obj_nam,
gd_attachment_name TYPE so_obj_des,
p_email1 LIKE somlreci1-receiver
VALUE 'SXXX@ABCDF',
p_sender LIKE somlreci1-receiver.
LOOP AT i_final INTO wa_final.
CLEAR: i_spreadsheet1.
AT FIRST.
CLEAR: i_spreadsheet1.
APPEND i_spreadsheet1.
CONCATENATE sy-datum+6(02)
'.'
sy-datum+4(02)
'.'
sy-datum+0(04) INTO lv_date.
i_spreadsheet1-field1 = 'Run Date'.
MOVE: lv_date TO i_spreadsheet1-field2.
APPEND i_spreadsheet1.
CLEAR: i_spreadsheet1.
CONCATENATE sy-uzeit+0(02)
':'
sy-uzeit+2(02)
':'
sy-uzeit+4(02) INTO lv_time.
i_spreadsheet1-field1 = 'Run Time'.
MOVE: lv_time TO i_spreadsheet1-field2.
APPEND i_spreadsheet1.
CLEAR: i_spreadsheet1.
APPEND i_spreadsheet1.
CLEAR: i_spreadsheet1.
Report output list coloums details
i_spreadsheet1-field1 = 'Condition Type'.
i_spreadsheet1-field2 = 'Access Sequence Description'.
i_spreadsheet1-field3 = 'Access Sequence Values'.
i_spreadsheet1-field4 = 'Scale Qty'.
i_spreadsheet1-field5 = 'Prev Value'.
i_spreadsheet1-field6 = 'Curr Value'.
i_spreadsheet1-field7 = 'Curr'.
i_spreadsheet1-field8 = 'Valid From'.
i_spreadsheet1-field9 = 'Valid To'.
i_spreadsheet1-field10 = 'Created Date'.
i_spreadsheet1-field11 = 'USER ID'.
APPEND i_spreadsheet1.
CLEAR: i_spreadsheet1.
APPEND i_spreadsheet1.
CLEAR: i_spreadsheet1.
ENDAT.
Output details records moving to excel sheet
MOVE wa_final-kschl TO i_spreadsheet1-field1.
MOVE wa_final-ddtext TO i_spreadsheet1-field2.
MOVE wa_final-reqvakey TO i_spreadsheet1-field3.
MOVE wa_final-kstbm TO i_spreadsheet1-field4.
MOVE wa_final-prevkbetr TO i_spreadsheet1-field5.
MOVE wa_final-kbetr TO i_spreadsheet1-field6.
MOVE wa_final-konwa TO i_spreadsheet1-field7.
MOVE wa_final-datab TO i_spreadsheet1-field8.
MOVE wa_final-datbi TO i_spreadsheet1-field9.
MOVE wa_final-erdat TO i_spreadsheet1-field10.
MOVE wa_final-ernam TO i_spreadsheet1-field11.
APPEND i_spreadsheet1.
ENDLOOP.
LOOP AT i_spreadsheet1.
CLEAR: temp, no.
DO 255 TIMES.
ADD 1 TO no.
ASSIGN COMPONENT no OF STRUCTURE i_spreadsheet1 TO <fs>.
CONCATENATE temp <fs> con_tab INTO temp.
CLEAR <fs>.
ENDDO.
MOVE temp TO it_attach-tabname3000.
CONCATENATE con_cret it_attach INTO it_attach.
APPEND it_attach.
CLEAR it_attach.
ENDLOOP.
***********************************
populate the email header message.
DATA: message TYPE char256.
message = 'Please find enclosed the output document'.
REFRESH it_message.
it_message = message.
APPEND it_message.
ld_mtitle = 'SAP Sample ouptut'.
ld_attdescription = 'SAP Output'.
ld_format = 'XLS'.
ld_attfilename = 'filename'.
ld_sender_address = space.
ld_sender_address_type = space.
ld_attfilename = 'filename'.
Fill the document data.
w_doc_data-doc_size = 1.
Populate the subject/generic message attributes
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle .
w_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR w_doc_data.
DO 10 TIMES.
w_cnt = w_cnt + 1.
READ TABLE it_attach INDEX w_cnt.
w_doc_data-doc_size =
( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
w_doc_data-obj_langu = sy-langu.
w_doc_data-obj_name = 'SAPRPT'.
w_doc_data-obj_descr = ld_mtitle.
w_doc_data-sensitivty = 'F'.
CLEAR t_attachment.
REFRESH t_attachment.
ENDDO.
t_attachment[] = it_attach[].
gd_attachment_desc = 'Attachname'.
Describe the body of the message
CLEAR t_packing_list.
REFRESH t_packing_list.
t_packing_list-transf_bin = space.
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES t_packing_list-body_num.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
Create attachment notification
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
t_packing_list-doc_type = ld_format.
t_packing_list-obj_descr = ld_attdescription.
t_packing_list-obj_name = ld_attfilename.
t_packing_list-doc_size = t_packing_list-body_num * 255.
APPEND t_packing_list.
Add the recipients email address
CLEAR t_receivers.
REFRESH t_receivers.
t_receivers-receiver = ld_email.
t_receivers-rec_type = 'U'.
t_receivers-com_type = 'INT'.
t_receivers-notif_del = 'X'.
t_receivers-notif_ndel = 'X'.
APPEND t_receivers.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data
put_in_outbox = 'X'
sender_address = ld_sender_address
sender_address_type = ld_sender_address_type
commit_work = 'X'
IMPORTING
sent_to_all = w_sent_all
TABLES
packing_list = t_packing_list
contents_bin = t_attachment
contents_txt = it_message
receivers = t_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.
WAIT UP TO 2 SECONDS.
SUBMIT rsconn01 WITH mode = 'INT'
WITH output = 'X'
AND RETURN.
ENDIF.
10-02-2008 4:37 PM
Hi Siva,
Checkout whether your services are maintained or not in the Txcode - SICF. That might help you.
Cheers!!