03-03-2010 10:38 AM
Hi All,
I have a requirement that will send email, currently using FM SO_DOCUMENT_SEND_API1
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = w_doc_data "Email Subj
put_in_outbox = 'X'
sender_address = w_username "FROM EMAIL
sender_address_type = 'SMTP'
commit_work = 'X'
TABLES
packing_list = t_objpack
contents_txt = t_text "Email Body
receivers = t_users "TO EMAIL
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.
The email subject is being populated at parameter t_packing_list under structure SODOCCHGI1-OBJ_DESCR that can hold only up to 50 characters.
In my requirement, the email subject is up to 50+ characters.
Thanks All.
03-03-2010 10:44 AM
Hello,
Dont think you can use the FM SO_DOCUMENT_SEND_API1 to set the subject line with more than 50 characters. You will have to use the BCS classes.
Check my reply here for the correct note No
Vikranth
03-03-2010 11:17 AM
Hi Vikranth,
So does this mean that OSS note 698087 should first co-exist in my box/system right?
I check OSS note 698087 and it points me to other notes:
Note 732333 - Mail-Forms: Subject length of personalized mails
Note 860075 - E-mail reference limited to 50 characters
But when I check in SE24, Class CL_BCS is available though.
Question before I can use this class, I need to apply the OSS notes above right?
Thanks.
03-03-2010 11:55 AM
Hello Jaime,
You dont have to install the OSS note here. The OSS note just suggests the solution for extending the subject line greater than 50 characters.
Check this thread as to how to set the subject line greater than 50 characters
And these demo programs as to how to use BCS classes
BCS_EXAMPLE_1
BCS_EXAMPLE_2
BCS_EXAMPLE_5
Vikranth
03-03-2010 5:52 PM
Hi Vikranth,
Thanks, problem solved - 10pts. rewarded.
Answer: Use class CL_BCS, method create_document
* -------- create and set document -------------------------------
* create document from internal table with text
APPEND 'Hello world!' TO text.
document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = text
i_length = '12'
i_subject = 'test created by BCS_EXAMPLE_1' ).
For more details, see sample program: BCS_EXAMPLE_1 to BCS_EXAMPLE_6.
03-03-2010 11:29 AM
Hi,
Try below code:
DATA: X_OBJECT_TYPE LIKE SOOD-OBJTP.
DATA: BEGIN OF X_OBJECT_HD_CHANGE.
INCLUDE STRUCTURE SOOD1.
DATA: END OF X_OBJECT_HD_CHANGE.
DATA: BEGIN OF X_OBJCONT OCCURS 10.
INCLUDE STRUCTURE SOLI.
DATA: END OF X_OBJCONT.
DATA: BEGIN OF X_OBJHEAD OCCURS 0.
INCLUDE STRUCTURE SOLI.
DATA: END OF X_OBJHEAD.
DATA: BEGIN OF RAW_HEAD.
INCLUDE STRUCTURE SORH.
DATA: END OF RAW_HEAD.
DATA: BEGIN OF X_RECEIVERS OCCURS 0.
INCLUDE STRUCTURE SOOS1.
DATA: END OF X_RECEIVERS.
PARAMETERS: RECEIVER LIKE X_RECEIVERS-RECNAM. " Name
*BUILD MESSAGE HEADER
MOVE 'Sort field goes here' TO X_OBJECT_HD_CHANGE-OBJSRT. " Sort field
MOVE 'Name of the object goes here' TO X_OBJECT_HD_CHANGE-OBJNAM. " Name
MOVE 'Document title goes here' TO X_OBJECT_HD_CHANGE-OBJDES. " Title
MOVE 'F' TO X_OBJECT_HD_CHANGE-OBJSNS. " Functional OBJECT
MOVE 'E' TO X_OBJECT_HD_CHANGE-OBJLA. " Language
Object type of the new document
MOVE 'RAW' TO X_OBJECT_TYPE.
CLEAR X_OBJCONT.
MOVE 'Contents of mail' TO X_OBJCONT-LINE.
APPEND X_OBJCONT.
CLEAR X_OBJCONT-LINE. APPEND X_OBJCONT.
MOVE 'More contents' TO X_OBJCONT-LINE.
APPEND X_OBJCONT.
MOVE 'Still more contents'
to x_objcont-line.
APPEND X_OBJCONT.
MOVE ' ' TO X_OBJCONT-LINE.
APPEND X_OBJCONT.
Specific header (Dependent on the object type, here RAW)
REFRESH X_OBJHEAD.
DESCRIBE TABLE X_OBJCONT LINES RAW_HEAD-RAWSIZ.
MOVE RAW_HEAD TO X_OBJHEAD.
APPEND X_OBJHEAD.
*RECEIVERS table
CLEAR X_RECEIVERS.
REFRESH X_RECEIVERS.
MOVE RECEIVER TO X_RECEIVERS-RECNAM. " Name
MOVE 'B' TO X_RECEIVERS-RECESC. " Receiver type
MOVE 'X' TO X_RECEIVERS-SNDCP. " Send as a copy
MOVE 'X' TO X_RECEIVERS-SNDEX. " EXPRESS DOCUMENT
APPEND X_RECEIVERS.
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
folder_id = 'OUTBOX'
forwarder = x_forwarder
object_fl_change = x_object_fl_change
OBJECT_HD_CHANGE = X_OBJECT_HD_CHANGE
object_id = x_object_id
OBJECT_TYPE = X_OBJECT_TYPE
OUTBOX_FLAG = 'X'
OWNER = SY-UNAME
store_flag = x_store_flag
importing
object_id_new = x_object_id_new
sent_to_all = x_sent_to_all "May need to use
TABLES
OBJCONT = X_OBJCONT
OBJHEAD = X_OBJHEAD
objpara = x_objpara
objparb = x_objparb
RECEIVERS = X_RECEIVERS.
Regards,
venkat.