‎2006 Aug 29 4:11 PM
Guys,
my requirement is below line.
On completion of data upload, send a mail to user who run/scheduled this execution. The mail should be sent to the users outlook mail id.
please let me know how i can send email to user's outlook.
regards,
vijay
‎2006 Aug 29 4:12 PM
This has been covered a lot on SDN. You can find more info by searching the ABAP forum. This sample program should get you started.
report zrich_0003 .
* For API
data: maildata type sodocchgi1.
data: mailtxt type table of solisti1 with header line.
data: mailrec type table of somlrec90 with header line.
start-of-selection.
clear: maildata, mailtxt, mailrec.
refresh: mailtxt, mailrec.
maildata-obj_name = 'TEST'.
maildata-obj_descr = 'Test'.
maildata-obj_langu = sy-langu.
mailtxt-line = 'This is a test'.
append mailtxt.
mailrec-receiver = 'you@yourcompany.com'.
mailrec-rec_type = 'U'.
append mailrec.
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_data = maildata
document_type = 'RAW'
put_in_outbox = 'X'
tables
object_header = mailtxt
object_content = mailtxt
receivers = mailrec
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.
Regards,
Rich Heilman
‎2006 Aug 29 4:12 PM
This has been covered a lot on SDN. You can find more info by searching the ABAP forum. This sample program should get you started.
report zrich_0003 .
* For API
data: maildata type sodocchgi1.
data: mailtxt type table of solisti1 with header line.
data: mailrec type table of somlrec90 with header line.
start-of-selection.
clear: maildata, mailtxt, mailrec.
refresh: mailtxt, mailrec.
maildata-obj_name = 'TEST'.
maildata-obj_descr = 'Test'.
maildata-obj_langu = sy-langu.
mailtxt-line = 'This is a test'.
append mailtxt.
mailrec-receiver = 'you@yourcompany.com'.
mailrec-rec_type = 'U'.
append mailrec.
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_data = maildata
document_type = 'RAW'
put_in_outbox = 'X'
tables
object_header = mailtxt
object_content = mailtxt
receivers = mailrec
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.
Regards,
Rich Heilman
‎2006 Aug 29 4:14 PM
‎2006 Nov 13 5:20 AM
I used this sample code to trigger the email to Outlook email (internet email address) but it doesn't work. Is it has something to do with SAP release? The system that I'm working (SAP-APPL) on now is 4.7 and SAP-ABA & SAP-BASIS is 620.
‎2006 Aug 29 4:22 PM
REPORT ZSRIM_PRG_MAIL1 .
DATA : L_TABLE_LINES LIKE SY-TABIX, " table index
L_TAB TYPE X VALUE '09', " TAB value
L_MANDT TYPE SY-MANDT. " Client
DATA: X_DOC_CHNG LIKE SODOCCHGI1, " document attributes
IT_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
" attachment table
IT_OBJHEAD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
" object header table
IT_OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
" binary table
IT_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
IT_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE.
CLEAR IT_RECLIST.
REFRESH IT_RECLIST.
*-popualate email ids
IT_RECLIST-RECEIVER = 'ABC@YAHOO.com'.
IT_RECLIST-REC_TYPE = 'U'. "U means INTERNET ID
*-append receiver table
APPEND IT_RECLIST.
CLEAR IT_RECLIST.
*-populate document attributes
CLEAR: X_DOC_CHNG.
X_DOC_CHNG-OBJ_NAME = 'HEADING'.
X_DOC_CHNG-OBJ_DESCR = 'SOME DESCRIPTION'.
*-populate body text
IT_OBJTXT = 'ARCOS Reporting Extraction Error file is attached'.
APPEND IT_OBJTXT.
*-document size
CLEAR : L_TABLE_LINES.
DESCRIBE TABLE IT_OBJTXT LINES L_TABLE_LINES.
READ TABLE IT_OBJTXT INDEX L_TABLE_LINES.
X_DOC_CHNG-DOC_SIZE =
( L_TABLE_LINES - 1 ) * 255 + STRLEN( IT_OBJTXT ).
*-populate packing list for body text
CLEAR IT_OBJPACK-TRANSF_BIN.
IT_OBJPACK-HEAD_START = 1.
IT_OBJPACK-HEAD_NUM = 0.
IT_OBJPACK-BODY_START = 1.
IT_OBJPACK-BODY_NUM = L_TABLE_LINES.
IT_OBJPACK-DOC_TYPE = 'RAW'.
APPEND IT_OBJPACK.
CLEAR IT_OBJPACK.
*-populate object header
IT_OBJHEAD = 'Arcos Error Report'(057).
APPEND IT_OBJHEAD.
CLEAR IT_OBJHEAD.
*-Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = X_DOC_CHNG
PUT_IN_OUTBOX = 'X'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
TABLES
PACKING_LIST = IT_OBJPACK
OBJECT_HEADER = IT_OBJHEAD
CONTENTS_BIN = IT_OBJBIN
CONTENTS_TXT = IT_OBJTXT
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
RECEIVERS = IT_RECLIST
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.
COMMIT WORK.
*- buffered emails can be released via rsconn01.
<b>this calling of program RSCONN01 is to send the mails from the queue.</b>
SUBMIT rsconn01 USING SELECTION- SET 'SAP&CONNECTINT' AND RETURN.
else.
*-- MESSAGE s027(vv) WITH 'E-mail not sent'.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.Message was edited by: Srikanth Kidambi
‎2006 Aug 29 4:44 PM
Hi vijay,
try this:
here are 2 receivers inserted. If you want the
Outlook-email put this in the User (Su01) and read
it in the Report. In our company all SAP-User have an external email-address.
Regards, Dieter
REPORT ZGRO_EMAIL_ITAB_EINFACH.
*
--- Parameter für SO_DOCUMENT_SEND_API1
DATA: OBJ_PACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
OBJ_HEAD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
OBJ_BIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
OBJ_TXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
REC_LIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE,
DOC_DATA LIKE SODOCCHGI1.
*
DATA: BEGIN OF ITAB OCCURS 0,
TEXT(72),
END OF ITAB.
*
DATA: ITAB_LINE TYPE I.
*
START-OF-SELECTION.
*
PERFORM VERSORGEN_ITAB.
*
CHECK: ITAB_LINE > 1.
*
PERFORM EMAIL_ITAB_RAW.
*
PERFORM RSCONN01_EXECUTE.
*
END-OF-SELECTION.
*
FORM VERSORGEN_ITAB.
Fill itab as you like
READ REPORT SY-REPID INTO ITAB.
*
DESCRIBE TABLE ITAB LINES ITAB_LINE.
*
ENDFORM.
*
FORM EMAIL_ITAB_RAW.
*
CLEAR: DOC_DATA, OBJ_PACK, OBJ_HEAD, OBJ_BIN, OBJ_TXT, REC_LIST.
REFRESH: OBJ_PACK, OBJ_HEAD, OBJ_BIN, OBJ_TXT, REC_LIST.
email füllen
Betreff-Zeile
CLEAR: DOC_DATA.
DOC_DATA-OBJ_NAME = SY-REPID.
DOC_DATA-OBJ_DESCR = 'Send Abap via email RAW'.
Empfängerliste
email-User (U)
CLEAR REC_LIST.
REC_LIST-RECEIVER = 'test1@test.de'. "email address
REC_LIST-REC_TYPE = 'U'.
APPEND REC_LIST.
REC_LIST-RECEIVER = 'test2@test.de'. "email address
APPEND REC_LIST.
*
PACKING_LIST: 1. Zeile gilt immer für email-Inhalt
CLEAR OBJ_PACK.
OBJ_PACK-BODY_START = 01.
OBJ_PACK-BODY_NUM = 03.
OBJ_PACK-DOC_TYPE = 'RAW'.
APPEND OBJ_PACK.
*
PACKING_LIST: 2.
CLEAR OBJ_PACK.
OBJ_PACK-TRANSF_BIN = 'X'.
OBJ_PACK-BODY_START = 01.
OBJ_PACK-BODY_NUM = ITAB_LINE.
OBJ_PACK-DOC_TYPE = 'RAW'.
OBJ_PACK-OBJ_NAME = 'Anhang_RAW'.
OBJ_PACK-OBJ_DESCR = SY-REPID.
APPEND OBJ_PACK.
*
*emailinhalt
CLEAR: OBJ_TXT.
OBJ_TXT-LINE = 'Hallo,'.
APPEND OBJ_TXT.
CONCATENATE 'report:' SY-REPID 'als RAW' INTO OBJ_TXT-LINE
SEPARATED BY SPACE.
APPEND OBJ_TXT.
CONCATENATE 'Gruß' SY-UNAME INTO OBJ_TXT-LINE
SEPARATED BY SPACE.
APPEND OBJ_TXT.
*
CLEAR: OBJ_BIN.
LOOP AT ITAB.
OBJ_BIN = ITAB.
APPEND OBJ_BIN.
ENDLOOP.
*
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOC_DATA
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
TABLES
PACKING_LIST = OBJ_PACK
CONTENTS_TXT = OBJ_TXT
CONTENTS_BIN = OBJ_BIN
RECEIVERS = REC_LIST
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.
WRITE: / SY-SUBRC.
ENDIF.
*
ENDFORM.
*
FORM RSCONN01_EXECUTE.
Besser 2 Sekunden warten, damit alles versendet ist
WAIT UP TO 2 SECONDS.
*
SUBMIT RSCONN01 WITH MODE = 'INT'
WITH OUTPUT = ' '
AND RETURN.
*
ENDFORM.