QM06_FM_TASK_SEND_PAPER_ATTACH / SO_OBJECT_SEND
I am using an action box linked to service notifications. One action box item is to send notification information and some text as an e-mail to the users. The action box item uses fm QM06_FM_TASK_SEND_PAPER_ATTACH which displays a dialog screen where I can enter my text and select the e-mail recipients.
The functional module subsequently calls fm SO_OBJECT_SEND to add my text as e-mail body plus it automatically adds the notification details as a .pdf attachment. The process works just fine.
My problem is that the subject of the e-mail is Note and that I cant pass my own subject text (something more meaningful) to the FM (the attachment has a proper name from my configuration). As soon as I pass the additional parameter OBJECT_HD_CHANGE with field OBJDES containing the subject text I would like to use the FM return a parameter error (triggered in subroutine CHECK_FB_INPUT of fm SO_OBJECT_SEND).
Anybody has an idea what I need to change to get my own subject text? I already would be happy if the subject line of the e-mail would have the same name as the attachment.
Please have a look at below links which will give you idea abt how to use this particular FM according to the requirement that you have specified.
http://www.thespot4sap.com/Articles/SAP_Mail_SO_Object_Send.asp
http://www.sap-img.com/fu016.htm
I hope it helps.
Best Regards,
Vibha
*Please mark all the helpful answers
Similar Messages
-
Runtime Error in execution of 'SO_OBJECT_SEND' function module
Hi friends,
We are going for upgradation from 4.6c to ECC6.0. There is one program which is used to send external mails thru 'SO_OBJECT_SEND', but the function module is giving runtime error(line no:515) in ECC6.
what could be the reason?
rewarded,
SteveHi,
Plz check if any latest release notes of SAP for the function module 'SO_OBJECT_SEND' are available. If so you may apply those.
If you have valid SAP service username and password you can get the notes from service.sap.com. Else your BASIS people can help you.
Which is the highest patch level you have applied?
Regards,
Renjith Michael. -
Reg : Issue for Sending of external email using SO_OBJECT_SEND
There is one issue while sending external email using SO_OBJECT_SEND functional module.
1. The body of the mail is also included as attachment.
I want to avoid the same.
Please anyone can give the solution.hi check this example ,
Sending mail with attachment report in Background
Content Author: Fernando Faian
I have read the hint about "Sending mail with attachment report".
It's great, but how can I make this function work in background??
I had that needed last year too. See attachment a function group with two functions. The second one has that functionality to send email or fax (SAP office) with attachment objects in background job using SO_ATTACHMENT_INSERT function.
Pay attention because its working with output list from spool converted to pdf.
=================================================================================
z_send_email_fax_global
FUNCTION-POOL z_gfaian_mail_fax. "MESSAGE-ID ..
WORK TABLE AREAS
TABLES: tsp01.
INTERNAL TABLES
DATA: lt_rec_tab LIKE STANDARD TABLE OF soos1 WITH HEADER LINE,
lt_note_text LIKE STANDARD TABLE OF soli WITH HEADER LINE,
lt_attachments LIKE STANDARD TABLE OF sood5 WITH HEADER LINE.
DATA: lt_objcont LIKE STANDARD TABLE OF soli WITH HEADER LINE,
lt_objhead LIKE STANDARD TABLE OF soli WITH HEADER LINE.
DATA: pdf_format LIKE STANDARD TABLE OF tline WITH HEADER LINE.
TYPES: BEGIN OF y_files,
file(60) TYPE c,
END OF y_files.
DATA: lt_files TYPE STANDARD TABLE OF y_files WITH HEADER LINE.
DATA: l_objcont LIKE soli OCCURS 0 WITH HEADER LINE.
DATA: l_objhead LIKE soli OCCURS 0 WITH HEADER LINE.
STRUCTURES
DATA: folder_id LIKE soodk,
object_id LIKE soodk,
link_folder_id LIKE soodk,
g_document LIKE sood4,
g_header_data LIKE sood2,
g_folmem_data LIKE sofm2,
g_header_data LIKE sood2,
g_receive_data LIKE soos6,
g_ref_document LIKE sood4,
g_new_parent LIKE soodk,
l_folder_id LIKE sofdk,
v_email(50).
DATA: hd_dat like sood1.
VARIABLES
DATA: client LIKE tst01-dclient,
name LIKE tst01-dname,
objtype LIKE rststype-type,
type LIKE rststype-type.
DATA: numbytes TYPE i,
arc_idx LIKE toa_dara,
pdfspoolid LIKE tsp01-rqident,
jobname LIKE tbtcjob-jobname,
jobcount LIKE tbtcjob-jobcount,
is_otf.
DATA: outbox_flag LIKE sonv-flag VALUE 'X',
store_flag LIKE sonv-flag,
delete_flag LIKE sonv-flag,
owner LIKE soud-usrnam,
on LIKE sonv-flag VALUE 'X',
sent_to_all LIKE sonv-flag,
g_authority LIKE sofa-usracc,
w_objdes LIKE sood4-objdes.
DATA: c_file LIKE rlgrap-filename,
n_spool(6) TYPE n.
DATA: cancel.
DATA: desired_type LIKE sood-objtp,
real_type LIKE sood-objtp,
attach_type LIKE sood-objtp,
otf LIKE sood-objtp VALUE 'OTF', " SAPscript Ausgabeformat
ali LIKE sood-objtp VALUE 'ALI'. " ABAP lists
CONSTANTS
CONSTANTS: ou_fol LIKE sofh-folrg VALUE 'O',
c_objtp LIKE g_document-objtp VALUE 'RAW',
c_file_ext LIKE g_document-file_ext VALUE 'TXT'.
=================================================================================
z_send_email_fax2
FUNCTION z_faian_mail_fax2.
""Interface local:
*" IMPORTING
*" REFERENCE(SRC_SPOOLID) LIKE TSP01-RQIDENT
*" REFERENCE(FAX_MAIL_NUMBER) TYPE SO_NAME
*" REFERENCE(HEADER_MAIL) TYPE SO_OBJ_DES
*" REFERENCE(OBJECT_TYPE) TYPE SO_ESCAPE
*" TABLES
*" LT_BODY_EMAIL STRUCTURE SOLI
*" EXCEPTIONS
*" ERR_NO_ABAP_SPOOLJOB
Fist part: Verify if the spool really exists
SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.
IF sy-subrc NE 0.
RAISE err_no_abap_spooljob. "doesn't exist
ELSE.
client = tsp01-rqclient.
name = tsp01-rqo1name.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
authority = 'SP01'
client = client
name = name
part = 1
IMPORTING
type = type
objtype = objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4
OTHERS = 5.
IF objtype(3) = 'OTF'.
desired_type = otf.
ELSE.
desired_type = ali.
ENDIF.
CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'
EXPORTING
rqident = src_spoolid
desired_type = desired_type
IMPORTING
real_type = real_type
TABLES
buffer = l_objcont
EXCEPTIONS
no_such_job = 14
type_no_match = 94
job_contains_no_data = 54
no_permission = 21
can_not_access = 21
read_error = 54.
IF sy-subrc EQ 0.
attach_type = real_type.
ENDIF.
CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
EXPORTING
owner = sy-uname
region = ou_fol
IMPORTING
folder_id = l_folder_id
EXCEPTIONS
OTHERS = 5.
fill out informations about the header of the email
CLEAR: g_document.
g_document-foltp = l_folder_id-foltp.
g_document-folyr = l_folder_id-folyr.
g_document-folno = l_folder_id-folno.
g_document-objtp = c_objtp.
g_document-objdes = header_mail.
g_document-file_ext = c_file_ext.
g_header_data-objdes = header_mail.
CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'
EXPORTING
method = 'SAVE'
office_user = sy-uname
IMPORTING
authority = g_authority
TABLES
objcont = lt_body_email
attachments = lt_attachments
CHANGING
document = g_document
header_data = g_header_data
EXCEPTIONS
OTHERS = 1.
folder_id-objtp = l_folder_id-foltp.
folder_id-objyr = l_folder_id-folyr.
folder_id-objno = l_folder_id-folno.
object_id-objtp = c_objtp.
object_id-objyr = g_document-objyr.
object_id-objno = g_document-objno.
link_folder_id-objtp = l_folder_id-foltp.
link_folder_id-objyr = l_folder_id-folyr.
link_folder_id-objno = l_folder_id-folno.
REFRESH lt_rec_tab.
CLEAR lt_rec_tab.
lt_rec_tab-sel = 'X'.
lt_rec_tab-recesc = object_type. "This field for FAX/MAIL
lt_rec_tab-recnam = 'U-'.
lt_rec_tab-deliver = 'X'.
lt_rec_tab-not_deli = 'X'.
lt_rec_tab-read = 'X'.
lt_rec_tab-mailstatus = 'E'.
lt_rec_tab-adr_name = fax_mail_number.
lt_rec_tab-sortfield = fax_mail_number.
lt_rec_tab-recextnam = fax_mail_number.
lt_rec_tab-sortclass = '5'.
APPEND lt_rec_tab.
lt_rec_tab-recextnam = fax_mail_number.
lt_rec_tab-recesc = object_type.
lt_rec_tab-sndart = 'INT'.
lt_rec_tab-sndpri = 1.
APPEND lt_rec_tab.
lt_files-file = c_file.
APPEND lt_files.
begin of insertion by faianf01
hd_dat-objdes = header_mail.
CALL FUNCTION 'SO_ATTACHMENT_INSERT'
EXPORTING
object_id = object_id
attach_type = attach_type
object_hd_change = hd_dat
owner = sy-uname
TABLES
objcont = l_objcont
objhead = l_objhead
EXCEPTIONS
active_user_not_exist = 35
communication_failure = 71
object_type_not_exist = 17
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
x_error = 1000.
IF sy-subrc > 0.
ENDIF.
end of insertion by faianf01
send email from SAPOFFICE
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
folder_id = folder_id
object_id = object_id
outbox_flag = outbox_flag
link_folder_id = link_folder_id
owner = sy-uname
check_send_authority = 'X'
TABLES
receivers = lt_rec_tab
note_text = lt_note_text
EXCEPTIONS
active_user_not_exist = 35
communication_failure = 71
component_not_available = 1
folder_no_authorization = 5
folder_not_exist = 6
forwarder_not_exist = 8
object_no_authorization = 13
object_not_exist = 14
object_not_sent = 15
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
too_much_receivers = 73
user_not_exist = 35.
ENDIF.
ENDFUNCTION.
=================================================================================
z_send_email_fax
FUNCTION ZCBFS_SEND_MAIL.
""Interface local:
*" IMPORTING
*" REFERENCE(SRC_SPOOLID) LIKE TSP01-RQIDENT
*" REFERENCE(HEADER_MAIL) TYPE SO_OBJ_DES
*" TABLES
*" LIST_FAX_MAIL_NUMBER STRUCTURE SOLI
*" EXCEPTIONS
*" ERR_NO_ABAP_SPOOLJOB
DATA: vg_achou(1) TYPE n.
Fist part: Verify if the spool really exists
vg_achou = 1.
DO 60 TIMES.
SELECT SINGLE * FROM tsp01 WHERE rqident = src_spoolid.
IF sy-subrc IS INITIAL.
CLEAR vg_achou.
EXIT.
ELSE.
WAIT UP TO 1 SECONDS.
ENDIF.
ENDDO.
IF vg_achou = 1.
RAISE err_no_abap_spooljob. "doesn't exist
ENDIF.
client = tsp01-rqclient.
name = tsp01-rqo1name.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
authority = 'SP01'
client = client
name = name
part = 1
IMPORTING
type = type
objtype = objtype
EXCEPTIONS
fb_error = 1
fb_rsts_other = 2
no_object = 3
no_permission = 4
OTHERS = 5.
IF objtype(3) = 'OTF'.
desired_type = otf.
ELSE.
desired_type = ali.
ENDIF.
CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'
EXPORTING
rqident = src_spoolid
desired_type = desired_type
IMPORTING
real_type = real_type
TABLES
buffer = l_objcont
EXCEPTIONS
no_such_job = 14
type_no_match = 94
job_contains_no_data = 54
no_permission = 21
can_not_access = 21
read_error = 54.
IF sy-subrc EQ 0.
attach_type = real_type.
ENDIF.
CALL FUNCTION 'SO_FOLDER_ROOT_ID_GET'
EXPORTING
owner = sy-uname
region = ou_fol
IMPORTING
folder_id = l_folder_id
EXCEPTIONS
OTHERS = 5.
fill out informations about the header of the email
CLEAR: g_document.
g_document-foltp = l_folder_id-foltp.
g_document-folyr = l_folder_id-folyr.
g_document-folno = l_folder_id-folno.
g_document-objtp = c_objtp.
g_document-objdes = header_mail.
g_document-file_ext = c_file_ext.
g_header_data-objdes = header_mail.
CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'
EXPORTING
method = 'SAVE'
office_user = sy-uname
IMPORTING
authority = g_authority
TABLES
attachments = lt_attachments
CHANGING
document = g_document
header_data = g_header_data
EXCEPTIONS
OTHERS = 1.
folder_id-objtp = l_folder_id-foltp.
folder_id-objyr = l_folder_id-folyr.
folder_id-objno = l_folder_id-folno.
object_id-objtp = c_objtp.
object_id-objyr = g_document-objyr.
object_id-objno = g_document-objno.
link_folder_id-objtp = l_folder_id-foltp.
link_folder_id-objyr = l_folder_id-folyr.
link_folder_id-objno = l_folder_id-folno.
REFRESH lt_rec_tab.
LOOP AT LIST_FAX_MAIL_NUMBER.
lt_rec_tab-recextnam = LIST_FAX_MAIL_NUMBER-LINE.
lt_rec_tab-recesc = 'U'.
lt_rec_tab-sndart = 'INT'.
lt_rec_tab-sndpri = 1.
APPEND lt_rec_tab.
ENDLOOP.
lt_files-file = c_file.
APPEND lt_files.
hd_dat-objdes = header_mail.
CALL FUNCTION 'SO_ATTACHMENT_INSERT'
EXPORTING
object_id = object_id
attach_type = attach_type
object_hd_change = hd_dat
owner = sy-uname
TABLES
objcont = l_objcont
objhead = l_objhead
EXCEPTIONS
active_user_not_exist = 35
communication_failure = 71
object_type_not_exist = 17
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
x_error = 1000.
IF sy-subrc > 0.
ENDIF.
send email from SAPOFFICE
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
folder_id = folder_id
object_id = object_id
outbox_flag = outbox_flag
link_folder_id = link_folder_id
owner = sy-uname
TABLES
receivers = lt_rec_tab
note_text = lt_note_text
EXCEPTIONS
active_user_not_exist = 35
communication_failure = 71
component_not_available = 1
folder_no_authorization = 5
folder_not_exist = 6
forwarder_not_exist = 8
object_no_authorization = 13
object_not_exist = 14
object_not_sent = 15
operation_no_authorization = 21
owner_not_exist = 22
parameter_error = 23
substitute_not_active = 31
substitute_not_defined = 32
system_failure = 72
too_much_receivers = 73
user_not_exist = 35.
ENDFUNCTION.
=================================================================================
regards,
venkat. -
Using so_object_send twice in the same report
Hello All,
I have a requirement in which i need to send a mail with a certain text to a receiver1. Then in the same report i need to send another text to another receiver2.
I am calling the function module so_object_send twice to do this.But only one mail is sent with both the receivers in the same mail.But the requirement is that two seperate mails should go to two different receivers.What can be the problem?
Kindly help,Points will be rewarded graciously..
Regards,
Anuj.Hi,
I hope you are clearing the work areas & Internal table after the 1st FM SO_OBJECT_SEND is called.
Flow should be as follows:
1) Populate 1st receiver & Email details
2) Call FM "SO_OBJECT_SEND"
3) Clear Work area & Refresh Internal tables
3) Populate 2nd receive & Email details
3) Call FM "SO_OBJECT_SEND".
Best regards,
Prashant
Best regards,
Prashant -
How to use SO_OBJECT_SEND function module
Hi friends,
how to use SO_OBJECT_SEND function module in 4.0B Server .hi
good
check this code
REPORT ZTSAPMAIL.
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.
reward point if hlepful.
thanks
mrutyun^ -
SO_OBJECT_SEND??
HI
I want to know that what exactly is the purpose of the function module --> SO_OBJECT_SEND.
And how can I test this FM in my server?
Also where to check the e-mails of a person in SAP?
ThanksHi,
SO_OBJECT_SEND is used to send the messages / mails to SAP users as well as the external mail ids.
Please go thru the article / example below
SAP supplies a function module 'SO_OBJECT_SEND' to allow you send SAPOffice mails from within your ABAP programs. However, using that function module is complex and takes a lot of time to understand the usage of it.
The following function module is just a wrap around for SO_OBJECT_SEND and takes away much of the complexity out of the process. This function module not only sends a SAPOffice mail but also points to the current spool list. As you can see, many of the parameters have their defaults.
Parameter Descriptions
Either RECEPIENT or DLI must be specified. If the mail should be sent to several people, create a distribution list and supply its name for DLI.
Internal table TEXT should contain the body of the mail message.
While this function module can be used as it is, it is just an example. SO_OBJECT_SEND is very comprehensive and many of the features are omitted from this example. You are encouraged to examine SO_OBJECT_SEND, see all the available features, and change this function module to suit your requirements.
FUNCTION Z_SEND_MAIL_FOR_SPOOLLIST.
""Local interface:
*" IMPORTING
*" VALUE(SPOOLNUMBER) LIKE SY-SPONO DEFAULT SY-SPONO
*" VALUE(MAILNAME) LIKE SOOD1-OBJNAM DEFAULT 'NOTE'
*" VALUE(SUBJECT) LIKE SOOD1-OBJDES
*" VALUE(RECEPIENT) LIKE SY-UNAME OPTIONAL
*" VALUE(DLI) LIKE SOOS1-DLINAM OPTIONAL
*" TABLES
*" TEXT STRUCTURE SOLI OPTIONAL
*" EXCEPTIONS
*" ERROR
DATA: OBJECT_HD_CHANGE LIKE SOOD1 OCCURS 0 WITH HEADER LINE,
OBJPARA LIKE SELC OCCURS 0 WITH HEADER LINE,
RECEIVERS LIKE SOOS1 OCCURS 0 WITH HEADER LINE.
OBJECT_HD_CHANGE-OBJLA = SY-LANGU.
OBJECT_HD_CHANGE-OBJNAM = MAILNAME.
OBJECT_HD_CHANGE-OBJDES = SUBJECT.
OBJECT_HD_CHANGE-OBJSNS = 'F'.
OBJECT_HD_CHANGE-VMTYP = 'T'.
OBJECT_HD_CHANGE-SKIPS = 'X'.
OBJECT_HD_CHANGE-ACNAM = 'SP01'.
OBJECT_HD_CHANGE-OBJCP = 'X'.
RECEIVERS-RCDAT = SY-DATUM.
RECEIVERS-RCTIM = SY-UZEIT.
IF DLI IS INITIAL.
RECEIVERS-RECNAM = RECEPIENT.
RECEIVERS-RTUNAM = RECEPIENT.
ELSE.
RECEIVERS-RECNAM = DLI.
RECEIVERS-ADR_NAME = DLI.
RECEIVERS-RECESC = 'C'.
ENDIF.
RECEIVERS-SNDEX = 'X'. " Express-Mail
APPEND RECEIVERS.
OBJPARA-NAME = 'SPI'.
OBJPARA-LOW = SPOOLNUMBER.
APPEND OBJPARA.
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
OBJECT_HD_CHANGE = OBJECT_HD_CHANGE
OBJECT_TYPE = 'RAW'
OWNER = SY-UNAME
TABLES
OBJCONT = TEXT
OBJPARA = OBJPARA
RECEIVERS = RECEIVERS
EXCEPTIONS
OTHERS = 01.
IF SY-SUBRC NE 0.
RAISE ERROR.
ENDIF.
ENDFUNCTION.
You can check the messages sent from SAP in trx SCOT / SOST.
Hope it helps.
Regards,
Shashank -
SO_OBJECT_SEND Title issue
Hi,
I am using SO_OBJECT_SEND to send outlookmail in my function module.
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
object_hd_change = ps_hd_change
object_type = p_object_type
owner = p_owner
originator = p_originator
originator_type = p_orig_type
TABLES
objcont = t_content
receivers = t_receivers
ps_hd_change-objla = 'E'.
ps_hd_change-objnam = 'Service Contract Status Change'.
ps_hd_change-objsns = 'O'.
ps_hd_change-file_ext = 'HTM'.
In ps_hd_change-objdes i am passing the title of the mail - "Service contract <VBELN> changed in <ESTAT> status."
the size of objdes is 50 characters only and the title is truncating at "Service contract <VBELN> changed in".
Please guide me how i can display the complete title.
thanks in advance.
ajayHi,
ps_hd_change-objla = 'E'.
ps_hd_change-objnam = text-001.
ps_hd_change-objsns = 'O'.
ps_hd_change-file_ext = 'HTM'.
double click in the text-001.it goes to text elements and write 'Service Contract Status Change'.
save and activate.
Regards,
Raj. -
SO_OBJECT_SEND,what are the input parameters ,how topass is it right
SO_OBJECT_SEND,
can any one tell how to use this function module to download the data from internal table to pdf file,i have just debugg, it
SO_NEW_DOCUMENT_ATT_SEND_API1, and found it, it may be correct or not i dont klnow, if there is some thing other plz tell me, its an urgent one, i need deatil parameters to be input , so that i can achieve to download information in pdfHi,
Good ex: for you...
REPORT zmbundal_email_out .
DATA BEGIN OF object_hd_change. "SAPoffice: object definition,
INCLUDE STRUCTURE sood1. "change attributes
DATA END OF object_hd_change.
DATA BEGIN OF object_content OCCURS 5. "SAPoffice: Single List with
INCLUDE STRUCTURE solisti1. "Column Length 255
DATA END OF object_content.
DATA BEGIN OF rec_table OCCURS 1. "SAPoffice: recipient with
INCLUDE STRUCTURE soos1. "attributes
DATA END OF rec_table.
Build email recipient table...........................................
CLEAR rec_table.
rec_table-sel = 'X'.
rec_table-recesc = 'B'.
rec_table-recesc = 'U'.
rec_table-recnam = 'U-'.
rec_table-recextnam = '[email protected]'.
rec_table-adr_name = '[email protected]'.
rec_table-sndex = 'X'.
rec_table-sndpri = '1'.
rec_table-mailstatus = 'E'.
rec_table-SNDSPO = 442355.
rec_table-SNDCP = 'X'.
COLLECT rec_table.
*.Email.content.........................................................
object_content = 'dannyboy baboy'. APPEND object_content.
object_content = 'dannyboy pogi'. APPEND object_content.
object_content = 'dannyboy fagg*t'. APPEND object_content.
*...Subject.Line........................................................
object_hd_change-objnam = 'Test email'.
object_hd_change-objdes = ' Email for Baboy'.
Send Email............................................................
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
object_hd_change = object_hd_change
object_type = 'RAW'
outbox_flag = 'X'
TABLES
objcont = object_content
receivers = rec_table
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
originator_not_exist = 20
x_error = 21
OTHERS = 22.
*...SAPconnect..........................................................
SUBMIT rsconn01 "SAPconnect Start Send Process
WITH mode EQ '*'
WITH output EQ ''
TO SAP-SPOOL
DESTINATION 'LOCAL'
IMMEDIATELY ' '
KEEP IN SPOOL 'X'
WITHOUT SPOOL DYNPRO
AND RETURN. -
Exits in the function module - SO_OBJECT_SEND
Hi,
As per my requirement, I need to add a common line to the body of the E-mail that is sent via the function module SO_OBJECT_SEND.
So please let me know if any Exit/BADI exists that I can use to modify the body of the E-mail.
Thanks & Regargs,
Madhuri.USER EXIT
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sapgenie.com/abap/code/abap26.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
http://wiki.ittoolbox.com/index.php/HOWTO:Implement_a_screen_exit_to_a_standard_SAP_transaction
http://www.easymarketplace.de/userexit.php
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sappoint.com/abap/userexit.pdfUser-Exit
http://www.sap-img.com/ab038.htm
http://help.sap.com/saphelp_46c/helpdata/en/64/72369adc56d11195100060b03c6b76/frameset.htm
http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
http://www.sap-img.com/abap/what-is-user-exits.htm
http://expertanswercenter.techtarget.com/eac/knowledgebaseAnswer/0,295199,sid63_gci982756,00.html
BADI
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40921dd7-d5cf-2910-1894-bb62316afbd1
http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
http://support.sas.com/rnd/papers/sugi30/SAP.ppt
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://members.aol.com/_ht_a/skarkada/sap/
http://www.ct-software.com/reportpool_frame.htm
http://www.saphelp.com/SAP_Technical.htm
http://www.kabai.com/abaps/q.htm
http://www.guidancetech.com/people/holland/sap/abap/
http://www.planetsap.com/download_abap_programs.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
/people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
/people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
http://esnips.com/doc/e06e4171-29df-462f-b857-54fac19a9d8e/ppt-on-badis.ppt
http://esnips.com/doc/43a58f51-5d92-4213-913a-de05e9faac0d/Business-Addin.doc
http://esnips.com/doc/10016c34-55a7-4b13-8f5f-bf720422d265/BADIs.pdf
http://esnips.com/doc/1e10392e-64d8-4181-b2a5-5f04d8f87839/badi.doc
http://esnips.com/doc/365d4c4d-9fcb-4189-85fd-866b7bf25257/customer-exits--badi.zip
http://esnips.com/doc/3b7bbc09-c095-45a0-9e89-91f2f86ee8e9/BADI-Introduction.ppt
http://help.sap.com//saphelp_470/helpdata/EN/eb/3e7cee940e11d295df0000e82de14a/frameset.htm
Rewards if useful.........
Minal -
Hello,
we want to send an e-mail from ABAP during the inbound processing of IDocs. We use the function module SO_OBJECT_SEND. During the perform CHECK_USER_ROLE the exception SUBSTITUTE_NOT_DEFINED is raised. Because of this error the mail is not sent. What does this mean? What do we have to do to finally send the mail?
Best regards,
Davidthis might help:
http://help.sap.com/saphelp_nw70/helpdata/EN/8d/25f558454311d189430000e829fbbd/frameset.htm
Or, go to your (or the person responsible in the Idoc processing) SAP inbox (SBWP transaction). Via the menu you can maintain a substitute (Menu->Settings->Workflow settings->Maintain Substitute. -
Error raise OPERATION_NO_AUTHORIZATION. in FM SO_OBJECT_SEND
Hi Experts,
Any idea why the FM is raising an exception OPERATION_NO_AUTHORIZATION.
I have coded :
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
FOLDER_ID = FOLDER_ID
FORWARDER = ' '
OBJECT_FL_CHANGE =
OBJECT_HD_CHANGE = ' '
OBJECT_ID = object_id
OBJECT_TYPE = ' '
OUTBOX_FLAG = 'X'
OWNER = sy-uname
STORE_FLAG = ' '
DELETE_FLAG = ' '
SENDER = ' '
CHECK_SEND_AUTHORITY = 'X'
CHECK_ALREADY_SENT = ' '
GIVE_OBJECT_BACK =
ORIGINATOR = ''
ORIGINATOR_TYPE = 'J'
LINK_FOLDER_ID = link_folder_id
SEND_REQUEST_OID = ' '
IP_ENCRYPT = 'U'
IP_SIGN = 'U'
IP_REC_COUNT_ADD =
IMPORTING
OBJECT_ID_NEW =
SENT_TO_ALL =
ALL_BINDING_DONE =
OFFICE_OBJECT_KEY =
ORIGINATOR_ID =
E_SEND_REQUEST_OID =
TABLES
OBJCONT =
OBJHEAD =
OBJPARA =
OBJPARB =
RECEIVERS = it_RECEIVERS
PACKING_LIST =
ATT_CONT =
ATT_HEAD =
NOTE_TEXT =
LINK_LIST =
APPLICATION_OBJECT =
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
ORIGINATOR_NOT_EXIST = 20
X_ERROR = 21
OTHERS = 22
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Thanks
PapiyaHi,
I presume you dont have authorization to access the particular object. -
Mail sending using sender importing parameter using so_object_send function
Hi all,
I using so_object_send function module to send mail. My requirement is with respect to any user
logged in the sender mail address should be taken by V_SENDER parameter in exporting
parameter.
<code>
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
folder_id = wa_folder_id
forwarder = w_forwarder
object_fl_change = wa_object_fl_change
object_hd_change = wa_object_hd_change
object_id = wa_object_id
object_type = w_object_type
outbox_flag = w_outbox_flag
owner = w_owner
store_flag = w_store_flag
IMPORTING
object_id_new = wa_object_id_new
sent_to_all = w_sent_to_all
sender = v_sender
TABLES
objcont = i_objcont
objhead = i_objhead
objpara = i_objpara
objparb = i_objparb
receivers = i_receivers
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
originator_not_exist = 20
x_error = 21
OTHERS = 22.
IF sy-subrc 0.
ENDIF.
</code>
My Requirement is V_SENDER can be any user of that SAP system,noot particularly logged in user.
I tried using this functionality my sy-subrc is zero. but i am not able to get any mails with that user name in V_SENDER.
Do i need to do any further settings or any more code is required.
Even i tired giving SUBMIT rsconn01 .
still its not working.
Please suggest any solutions if we have.
Thanks,
satishHi,
to send mails check this:
FORM docu_send_email USING pv_otfdata TYPE tsfotf
pv_emailid TYPE any
pv_formname TYPE any.
DATA: lv_filesize TYPE i,
lv_buffer TYPE string,
lv_attachment TYPE i,
lv_testo TYPE i.
DATA: li_pdfdata TYPE STANDARD TABLE OF tline,
li_mess_att TYPE STANDARD TABLE OF solisti1,
li_mtab_pdf TYPE STANDARD TABLE OF tline,
li_objpack TYPE STANDARD TABLE OF sopcklsti1,
li_objtxt TYPE STANDARD TABLE OF solisti1,
li_objbin TYPE STANDARD TABLE OF solisti1,
li_reclist TYPE STANDARD TABLE OF somlreci1,
li_objhead TYPE soli_tab.
DATA: lwa_pdfdata TYPE tline,
lwa_objpack TYPE sopcklsti1,
lwa_mess_att TYPE solisti1,
lwa_objtxt TYPE solisti1,
lwa_objbin TYPE solisti1,
lwa_reclist TYPE somlreci1,
lwa_doc_chng TYPE sodocchgi1.
CONSTANTS: lc_u TYPE char1 VALUE 'U',
lc_0 TYPE char1 VALUE '0',
lc_1 TYPE char1 VALUE '1',
lc_pdf TYPE char3 VALUE 'PDF',
lc_raw TYPE char3 VALUE 'RAW',
lc_ordform TYPE char15 VALUE 'ZORDCONFIRM_01',
lc_attachment TYPE char10 VALUE 'ATTACHMENT'.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = lc_pdf
max_linewidth = 132
IMPORTING
bin_filesize = lv_filesize
TABLES
otf = pv_otfdata
lines = li_pdfdata
EXCEPTIONS
err_max_linewidth = 1
err_format = 2
err_conv_not_possible = 3
err_bad_otf = 4
OTHERS = 5.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT li_pdfdata INTO lwa_pdfdata.
TRANSLATE lwa_pdfdata USING ' ~'.
CONCATENATE lv_buffer lwa_pdfdata INTO lv_buffer.
CLEAR lwa_pdfdata.
ENDLOOP.
TRANSLATE lv_buffer USING '~ '.
DO.
lwa_mess_att = lv_buffer.
APPEND lwa_mess_att TO li_mess_att.
CLEAR lwa_mess_att.
SHIFT lv_buffer LEFT BY 255 PLACES.
IF lv_buffer IS INITIAL.
EXIT.
ENDIF.
ENDDO.
Object with PDF.
REFRESH li_objbin.
li_objbin] = li_mess_att[.
DESCRIBE TABLE li_objbin LINES lv_attachment.
Object with main text of the mail.
lwa_objtxt = space.
APPEND lwa_objtxt TO li_objtxt.
CLEAR lwa_objtxt.
DESCRIBE TABLE li_objtxt LINES lv_testo.
Create the document which is to be sent
lwa_doc_chng-obj_name = text-008.
lwa_doc_chng-obj_descr = text-008.
lwa_doc_chng-sensitivty = lc_0.
lwa_doc_chng-obj_prio = lc_1.
lwa_doc_chng-doc_size = lv_testo * 225.
Pack to main body.
CLEAR lwa_objpack-transf_bin.
header
lwa_objpack-head_start = 1.
The document needs no header (head_num = 0)
lwa_objpack-head_num = 0.
body
lwa_objpack-body_start = 1.
lwa_objpack-body_num = lv_testo.
lwa_objpack-doc_type = lc_raw.
APPEND lwa_objpack TO li_objpack.
CLEAR lwa_objpack.
Create the attachment.
Fill the fields of the packing_list for the attachment:
lwa_objpack-transf_bin = gc_x .
header
lwa_objpack-head_start = 1.
lwa_objpack-head_num = 1.
body
lwa_objpack-body_start = 1.
lwa_objpack-body_num = lv_attachment.
lwa_objpack-doc_type = lc_pdf.
lwa_objpack-obj_name = lc_attachment.
lwa_objpack-obj_descr = text-008.
lwa_objpack-doc_size = lv_attachment * 255.
APPEND lwa_objpack TO li_objpack.
CLEAR lwa_objpack.
lwa_reclist-receiver = pv_emailid.
lwa_reclist-rec_type = lc_u.
lwa_reclist-notif_del = gc_x.
lwa_reclist-notif_ndel = gc_x.
APPEND lwa_reclist TO li_reclist.
IF li_reclist IS NOT INITIAL.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = lwa_doc_chng
put_in_outbox = gc_x
TABLES
packing_list = li_objpack
object_header = li_objhead
contents_bin = li_objbin
contents_txt = li_objtxt
receivers = li_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.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDFORM. " DOCU_SEND_EMAIL -
SO_OBJECT_SEND function does not work without an explicit COMMIT WORK
Hi,
We have used this Function module (SO_OBJECT_SEND) inside a custom BAdI Implementation , which sends e-mails when some of the fields inside an infotype are modified using transaction PA30 (HR-Maintain master data).
After the system was upgraded to BASIS version 7.0 , as per SAP note 489286 ,the calling program of the send interface must execute an explicit COMMIT WORK.But inside an update , COMMIT WORK should not be executed.
So we did not execute explicit COMMIT WORK inside BAdI.
But after this upgrade, the emails are not sent out of R/3 , and the status message 672 (Still no entry in queue) is displayed on the program 'Administration of External Send Processes' - Transaction SOST.
Can anyone suggest a solution , if you have used this Function module (SO_OBJECT_SEND) inside a BAdI during update?
Thanks,
KiranHi Kiran,
create one remote enable function module, write your required logic in this remote enableD function module.
Now call this function module in Badi as below,
eg. suppose Remote enable function module created is 'ztest'.
then,
In BadI write logic,
CALL FUNCTION 'ZTEST' SEPARATE TASK 'T'
EXPORTING ......
IMPORTING.......
also inside this function module
call function 'SO_OBJECT_SEND' separate task 'T'
exporting....
importing....
committwork.
after doing this what will happen is your mail logic will be in saperate session, so your current program will pass the data and execution of this RFC and Program having BADI, will be in two saperate sessions, so although you are using committ work standred program will not get affected.
This will improve performance too...:)
Please Give points if it is going to help you. -
SO_OBJECT_SEND Function Module
Hello All,
I am using this function module to send mails to the users. When i run the program that uses the function module its working fine and when i run the program in bacground its giving me a short dump saying
The termination occurred in the ABAP/4 program "SAPLZMAIL " in
"SEND_MAIL".
The main program was "ZMDI0090 ".
The termination occurred in line 53
of the source code of program "LZMAILS01 " (when calling the editor 530).
The program "SAPLZMAIL " was started as a background job.
This function module is used internally by another function module in my program..
Please suggest or clarify me wat is that i have to do to avoid this error..
Thank You,
SureshCALL FUNCTION 'Z_TABLE_ERR_RTN'
EXPORTING
Z_PGM = z_jobname "Jobname for Tivoli
Z_FLG1 = p_o_tpm "TPM for Table Owner
Z_FLG2 = p_o_eml "Email for Table Owner
Z_FLG3 = p_i_eml "Email Interface Owner
Z_SVRITY = p_o_svr "TPM Severity
IMPORTING
Z_RETCODE = z_g_subrc
Z_ERRMSG = z_g_submsg
TABLES
a00_CONTENTS = a01_err_itab"Error Table
a00_EMAILS = s_email. "Email recipients
The function module internally calls SO_OBJECT_SEND. -
Error occured while sending mail SO_OBJECT_SEND
Hi all,
While using ME23n for print preview of a PO I m getting the below error :
Error occured while sending mail SO_OBJECT_SEND,return code Z8.
The problem is this FM : SO_OBJECT_SEND is not explicitly used in the Driver program.
In debugging mode if I set a Break-point at SO_OBJECT_SEND, it shows BREAKPOINT set,
but doesnt stop at that place.
If any one of you know the solution or if you can suggest some points regarding this problem,
it will be of great help...
Thanks & Regards,
RamyaHi,
If it is not stoping means may be the so_document_object is calling based on any condtion.
Y u can't you go ur driver program and search for the FM.
Otherwise put the break point at the statement 'CALL FUNCTION'.
Thanks,
Maybe you are looking for
-
Error: ORA-16532: Data Guard broker configuration does not exist
Hi there folks. Hope everyone is having a nice weekend. Anyways, we have a 10.2.0.4 rac primary and a 10.2.0.4 standby physical standby. We recently did a switchover and the dgbroker files automatically got created in the Oracle_home/dbs location of
-
I am in need of a Oracle DBA w/Peoplesoft experience.
I have a opportunity available in Washington DC. I am looking for someone with Heavy Oracle DBA and Strong People Soft skills. Below is a description of what I am looking for. If you feel this is an opportunity that you are interested in please give
-
Iphone not showing up in devices in itunes
My iPhone is plugged into my computer, but it isn't showing up as a device in my iTunes menu down the left hand side. Why is this?
-
Scripting settings - How do i change these settings
I need to change these settings to allow a section of a autocad program that I use.
-
After I closed Firefox it seems to be still running in the background.
So it is said if I trie to open it again later. I have to restart the PC, to be able to open it up again. Then the system seems to close down Firefox before restarting.