09-17-2008 12:25 PM
Hi experts,
I am sending external mail throuh FM so_object_send , the code is given below
The FM sy-subrc returning 0 but i am not getting mail. Is i am missing any thing to pass to FM
Please suggest
Thanks in advance
sai
code
DATA: i_receivers LIKE soos1 OCCURS 1 WITH HEADER LINE,
i_objpara LIKE selc OCCURS 1 WITH HEADER LINE,
i_objhead LIKE soli OCCURS 1 WITH HEADER LINE,
i_objcont LIKE soli OCCURS 1 WITH HEADER LINE.
DATA: r_object_hd_change LIKE sood1,
v_lineas TYPE i.
data : SUBJECT(10),
DIRECCION(80) type c.
URGENTE.
DIRECCION = 'email address.
SUBJECT = 'SUBJECT'.
CLEAR i_receivers.
i_receivers-recnam = direccion.
SEARCH direccion FOR '@'.
IF SY-SUBRC = 0.
i_receivers-recextnam = direccion.
i_receivers-recesc = 'U'.
ELSE.
i_receivers-recnam = direccion.
i_receivers-recesc = 'B'.
ENDIF.
i_receivers-rtunam = DIRECCION. " Nombre del Destinatario
i_receivers-recextnam = DIRECCION.
i_receivers-sndex = urgente. " Urgente
APPEND i_receivers.
Informamos el parámetro OBJECT_HD_CHANGE.
CLEAR r_object_hd_change.
r_object_hd_change-objla = sy-langu. " Idioma del documento
r_object_hd_change-objsns = 'F'. " Atributos del objeto
r_object_hd_change-objnam = SY-UNAME. " Nombre Documento
r_object_hd_change-objdes = subject. " Título
REFRESH i_objcont.
DESCRIBE TABLE texto LINES v_lineas.
IF v_lineas <> 0.
LOOP AT texto.
CLEAR i_objcont.
i_objcont-line = 'texto'.
APPEND i_objcont.
ENDLOOP.
ENDIF.
Envío del mensaje por SAPOffice
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
object_hd_change = r_object_hd_change
object_type = 'RAW' " Tipo Documento
outbox_flag = space
owner = SY-UNAME
delete_flag = 'X'
TABLES
objcont = i_objcont " Mensaje
objhead = i_objhead " Nº líneas objcont
objpara = i_objpara
receivers = i_receivers " Destinatario
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
x_error = 20
OTHERS = 21.
09-17-2008 12:41 PM
Hi
Normally the email will not come automatically in the development system.
Contact your BASIS person and ask them to check the SOST transaction and see, whether any emails are there pending for release.
Note - Release only the related emails in the SOST transaction
Regards
MD
09-17-2008 1:58 PM
Hi Madhan,
Thanks for reply, I didn't understand what is related mail to sost Is there any list
when i check in transaction sost there is no pending mail.
thanks
sai
09-17-2008 2:05 PM
09-17-2008 2:09 PM
hi ,
Try using the FM 'SO_NEW_DOCUMENT_ATT_SEND_API1'
DATA: LD_ERROR TYPE SY-SUBRC,
LD_RECIEVER TYPE SY-SUBRC,
LD_MTITLE LIKE SODOCCHGI1-OBJ_DESCR,
LD_EMAIL LIKE SOMLRECI1-RECEIVER,
LD_FORMAT TYPE SO_OBJ_TP ,
LD_ATTDESCRIPTION TYPE SO_OBJ_NAM ,
LD_ATTFILENAME TYPE SO_OBJ_DES ,
LD_SENDER_ADDRESS LIKE SOEXTRECI1-RECEIVER,
LD_SENDER_ADDRESS_TYPE LIKE SOEXTRECI1-ADR_TYP,
LD_RECEIVER LIKE SY-SUBRC.
DATA: 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.
LD_EMAIL = P_EMAIL.
LD_MTITLE = P_MTITLE.
LD_FORMAT = P_FORMAT.
LD_ATTDESCRIPTION = P_ATTDESCRIPTION.
LD_ATTFILENAME = P_FILENAME.
LD_SENDER_ADDRESS = P_SENDER.
LD_SENDER_ADDRESS_TYPE = P_SENDER_ADDRES_TYPE.
* 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.
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.
T_ATTACHMENT[] = IT_ATTACH[].
* 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.
LOOP AT TB_EMAIL.
T_RECEIVERS-RECEIVER = TB_EMAIL-EMAIL.
T_RECEIVERS-REC_TYPE = 'U'.
T_RECEIVERS-COM_TYPE = 'INT'.
T_RECEIVERS-NOTIF_DEL = 'X'.
T_RECEIVERS-NOTIF_NDEL = 'X'.
APPEND T_RECEIVERS.
ENDLOOP.
W_SENT_ALL = 'X'.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_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
OBJECT_HEADER = OBJHEAD
CONTENTS_BIN = T_ATTACHMENT
CONTENTS_TXT = IT_MESSAGE
RECEIVERS = T_RECEIVERS
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
OPERATION_NO_AUTHORIZATION = 4
OTHERS = 99.
*
SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.
IF SY-SUBRC NE 0.
MESSAGE E000 WITH 'Error occurred while sending'.
ELSE.
MESSAGE I000 WITH 'The document was sent'.
ENDIF.
hope this will help
09-24-2008 6:31 AM