send mail with attached objects
Daniel Fernández
wfdfl1975 at yahoo.es
Wed Feb 27 09:59:03 EST 2002
Hi Jocelyn,
Thanks for your answer.
I have folowed your instructions and It4s work fine.
I suposse that after send the message to my inbox
folder, I must to delete it in private folder.
is there a better way to send this type of message
(with a attached object) ????
The final code is this:
REPORT Z_MAIL .
data: S_MESSAGE type SODOCCHGI1,
S_LIST_OBJ type SOLISTI1 occurs 0,
S_USER_DATS type SOUDATAI1,
S_USER type SOUDNAMEI1,
S_DOCUMENT type SOFOLENTI1,
S_TASK_DESCR TYPE TLINE OCCURS 0,
S_TASK_DESCR_C TYPE SOLISTI1 OCCURS 0,
S_OBJECT type soxobj,
S_DESCR_ATTACH type SOATTCHGI1 occurs 0 with
header line,
S_RECEIVERS TYPE SOMLRECI1 OCCURS 0 WITH HEADER
LINE.
* SAP folders of user that receive the mail.
S_USER-SAPNAME = 'DFERNANDEZ'. "(User)
CALL FUNCTION 'SO_USER_READ_API1'
EXPORTING
USER = S_USER
IMPORTING
USER_DATA = S_USER_DATS
EXCEPTIONS
USER_NOT_EXIST = 1
PARAMETER_ERROR = 2
X_ERROR = 3
OTHERS = 4.
* Obtain Task description
CALL FUNCTION 'SWU_GET_TASK_TEXTLINES'
EXPORTING
TASK = 'TS99900015' "(Your
task)
* WI_ID =
* WIHEADER =
USAGE = 'W'
LINEWIDTH = 75
LANGUAGE = SY-LANGU
TABLES
ASCII_TEXT_LINES = S_TASK_DESCR
* CONTAINER =
* HTML_TEXT_LINES =
EXCEPTIONS
WRONG_USAGE = 1
TEXT_NOT_FOUND = 2
TEXT_SYSTEM_ERROR = 3
OTHERS = 4.
* obtain the subject message
S_MESSAGE-OBJ_DESCR = 'message Subject'.
* We will create the 'text' message with the task
description and the
* subject IN PRIVATE FOLDER
S_TASK_DESCR_C[] = S_TASK_DESCR[].
CALL FUNCTION 'SO_DOCUMENT_INSERT_API1'
EXPORTING
FOLDER_ID =
S_USER_DATS-INBOXFOL
DOCUMENT_DATA = S_MESSAGE
DOCUMENT_TYPE = 'RAW'
IMPORTING
DOCUMENT_INFO = S_DOCUMENT
TABLES
OBJECT_HEADER = S_TASK_DESCR_C
OBJECT_CONTENT = S_TASK_DESCR_C
EXCEPTIONS
FOLDER_NOT_EXIST = 1
DOCUMENT_TYPE_NOT_EXIST = 2
OPERATION_NO_AUTHORIZATION = 3
PARAMETER_ERROR = 4
X_ERROR = 5
ENQUEUE_ERROR = 6
OTHERS = 7.
* object dats
S_OBJECT-LOGSYS = 'SAPI'. "(your logic system)
S_OBJECT-OBJTYPE = 'BKPF'.
S_OBJECT-OBJKEY = 'ES0100190000012002'. "(Object key)
S_OBJECT-DESCRIBE = 'Description'.
S_OBJECT-METHOD = 'DISPLAY'.
append S_OBJECT to S_LIST_OBJ.
* We write de object description
S_DESCR_ATTACH-OBJ_DESCR = 'Factura'.
* Add the object to the mail.
CALL FUNCTION 'SO_ATTACHMENT_INSERT_API1'
EXPORTING
DOCUMENT_ID =
S_DOCUMENT-DOC_ID
ATTACHMENT_DATA = S_DESCR_ATTACH
ATTACHMENT_TYPE = 'OBJ'
* IMPORTING
* ATTACHMENT_INFO =
TABLES
ATTACHMENT_HEADER = S_LIST_OBJ
ATTACHMENT_CONTENT = S_LIST_OBJ
* CONTENTS_HEX =
EXCEPTIONS
DOCUMENT_NOT_EXIST = 1
ATTACHMENT_TYPE_NOT_EXIST = 2
OPERATION_NO_AUTHORIZATION = 3
PARAMETER_ERROR = 4
X_ERROR = 5
ENQUEUE_ERROR = 6
OTHERS = 7.
* Send the mail to inbox.
S_RECEIVERS-RECEIVER = 'DFERNANDEZ'.
S_RECEIVERS-REC_TYPE = 'B'.
S_RECEIVERS-EXPRESS = 'X'.
APPEND S_RECEIVERS.
CALL FUNCTION 'SO_OLD_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_ID =
S_DOCUMENT-DOC_ID
* PUT_IN_OUTBOX = 'X'
* IMPORTING
* SENT_TO_ALL =
TABLES
RECEIVERS = S_RECEIVERS
EXCEPTIONS
TOO_MANY_RECEIVER = 1
DOCUMENT_NOT_SENT = 2
DOCUMENT_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.
* delete the document of the private folder.
CALL FUNCTION 'SO_DOCUMENT_DELETE_API1'
EXPORTING
DOCUMENT_ID =
S_DOCUMENT-DOC_ID
* UNREAD_DELETE =
* PUT_IN_TRASH = 'X'
EXCEPTIONS
DOCUMENT_NOT_EXIST = 1
OPERATION_NO_AUTHORIZATION = 2
PARAMETER_ERROR = 3
X_ERROR = 4
ENQUEUE_ERROR = 5
OTHERS = 6.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Best regards,
Daniel
--- "Dart, Jocelyn" <jocelyn.dart at sap.com> escribis:
> Hi Daniel,
> That's correct. You create the document in the
> private folder
> and then send it on to the inbox (either of the same
> user or another
> user). It's a two part process.
>
> FM SO_OLD_DOCUMENT_SEND_API1 should suit your
> design.
>
> Regards,
> Jocelyn Dart
> Consultant (EBP, BBP, Ecommerce, Internet
> Transaction Server, Workflow)
> SAP Australia
> Email jocelyn.dart at sap.com
> <mailto:jocelyn.dart at sap.com>
> Tel: +61 412 390 267
> Fax: +61 2 9935 4880
>
>
> -----Original Message-----
>> From: Daniel Fernandez [mailto:wfdfl1975 at yahoo.es]
> Sent: Tuesday, 26 February 2002 7:45 PM
> To: SAP-WUG at MITVMA.MIT.EDU
> Subject: Re: send mail with attached objects
>
>
> Hi Govind,Raskin, Hi all,
>
> I have investigated the API functions for to send
> mail
> with attached objects (like a invoice or a purchase
> order) and I have a problem.
>
> I I try to add a sap office mail in the private
> folder, all works Ok, but if I try to add it in the
> inbox folder an error of authoritation is showed.
>
> I4m the SAP_ALL and SAP_NEW in development system
>
> The code (it works for de private folder) is:
>
> data: S_MESSAGE type SODOCCHGI1,
> S_LIST_OBJ type SOLISTI1 occurs 0,
> S_USER_DATS type SOUDATAI1,
> S_USER type SOUDNAMEI1,
> S_DOCUMENT type SOFOLENTI1,
> S_TASK_DESCR TYPE TLINE OCCURS 0,
> S_TASK_DESCR_C TYPE SOLISTI1 OCCURS 0,
> S_OBJECT type soxobj,
> S_DESCR_ATTACH type SOATTCHGI1 occurs 0 with
> header line.
>
>
> * SAP folders of user that receive the mail.
>
>
> S_USER-SAPNAME = 'DFERNANDEZ'. "(User)
>
> CALL FUNCTION 'SO_USER_READ_API1'
> EXPORTING
> USER = S_USER
> IMPORTING
> USER_DATA = S_USER_DATS
> EXCEPTIONS
> USER_NOT_EXIST = 1
> PARAMETER_ERROR = 2
> X_ERROR = 3
> OTHERS = 4.
>
>
> * Obtain Task description
>
> CALL FUNCTION 'SWU_GET_TASK_TEXTLINES'
> EXPORTING
> TASK = 'TS99900015' "(Your
> task)
> * WI_ID =
> * WIHEADER =
> USAGE = 'W'
> LINEWIDTH = 75
> LANGUAGE = SY-LANGU
> TABLES
> ASCII_TEXT_LINES = S_TASK_DESCR
> * CONTAINER =
> * HTML_TEXT_LINES =
> EXCEPTIONS
> WRONG_USAGE = 1
> TEXT_NOT_FOUND = 2
> TEXT_SYSTEM_ERROR = 3
> OTHERS = 4.
>
> * obtain the subject message
>
> S_MESSAGE-OBJ_DESCR = 'message Subject'.
>
> * We will create the 'text' message with the task
> description and the
> * subject
>
> * If The field S_USER_DATS-INBOXFOL is changed for
> * S_USER_DATS-PRIVATFOL the message is correctly
> sended to the user
>
> S_TASK_DESCR_C[] = S_TASK_DESCR[].
>
> CALL FUNCTION 'SO_DOCUMENT_INSERT_API1'
> EXPORTING
> FOLDER_ID =
> S_USER_DATS-INBOXFOL
> DOCUMENT_DATA = S_MESSAGE
> DOCUMENT_TYPE = 'RAW'
> IMPORTING
> DOCUMENT_INFO = S_DOCUMENT
> TABLES
> OBJECT_HEADER = S_TASK_DESCR_C
> OBJECT_CONTENT = S_TASK_DESCR_C
> EXCEPTIONS
> FOLDER_NOT_EXIST = 1
> DOCUMENT_TYPE_NOT_EXIST = 2
> OPERATION_NO_AUTHORIZATION = 3
> PARAMETER_ERROR = 4
> X_ERROR = 5
> ENQUEUE_ERROR = 6
> OTHERS = 7.
>
>
> * object dats
>
> S_OBJECT-LOGSYS = 'SAPI'. "(your logic system)
> S_OBJECT-OBJTYPE = 'BKPF'.
> S_OBJECT-OBJKEY = 'ES0100190000012002'. "(Object
> key)
> S_OBJECT-DESCRIBE = 'Description'.
> S_OBJECT-METHOD = 'DISPLAY'.
>
> append S_OBJECT to S_LIST_OBJ.
>
>
> * We write de object description
>
> S_DESCR_ATTACH-OBJ_DESCR = 'Factura'.
>
> * Add the object to the mail.
>
> CALL FUNCTION 'SO_ATTACHMENT_INSERT_API1'
> EXPORTING
> DOCUMENT_ID =
> S_DOCUMENT-DOC_ID
> ATTACHMENT_DATA =
> S_DESCR_ATTACH
> ATTACHMENT_TYPE = 'OBJ'
> * IMPORTING
> * ATTACHMENT_INFO =
> TABLES
> ATTACHMENT_HEADER = S_LIST_OBJ
> ATTACHMENT_CONTENT = S_LIST_OBJ
> * CONTENTS_HEX =
> EXCEPTIONS
> DOCUMENT_NOT_EXIST = 1
> ATTACHMENT_TYPE_NOT_EXIST = 2
> OPERATION_NO_AUTHORIZATION = 3
> PARAMETER_ERROR = 4
> X_ERROR = 5
> ENQUEUE_ERROR = 6
> OTHERS = 7.
>
> Regards,
>
>
> Daniel.
>
>
> --- "Raskin, Alon (Soliance)"
> <ARaskin at cps-satx.com>
> escribis: > Hi Daviel,
> >
> > Here is an old email that Jocelyn Dart (thanks
> > Jocelyn!) sent me a while
> > back regarding this issue.
> >
> > Regards,
> >
> > Alon Raskin
> >
> >
> > Hi Alon,
> > There are a series of API function modules for
> > SAPOffice that you can
> > use to do this. e.g. SO_DOCUMENT_INSERT_API.
> >
> > You need as a minimum a folder, the document type
> > and the document data.
> >
> > For an object the document type is OBJ.
> >
> > Fill the document_data parameter, field
> description
> > with the title of the
> > document.
>
=== message truncated ===
_______________________________________________________________
Do You Yahoo!?
Yahoo! Messenger
Comunicacisn instantanea gratis con tu gente.
http://messenger.yahoo.es
More information about the SAP-WUG
mailing list