Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Sending PO to multiple email addresses

Former Member
0 Kudos

Hi Gurus,

The requirement is the PO needs to send to multiple email addresses in the same vendor. Currently this is going to one email address only. They do not have EDI, but they have workflow.

Thanks in advance.

Thanks and regards

Durai

1 ACCEPTED SOLUTION

Former Member
0 Kudos

hi,

FORM send_mail .

DATA: l_tcode TYPE char10,

l_tablines TYPE i.

CONSTANTS: con_tab TYPE c VALUE cl_abap_char_utilities=>horizontal_tab,

con_cret TYPE c VALUE cl_abap_char_utilities=>cr_lf.

REFRESH: git_objpack[],

git_objhead[],

git_objbin[],

git_objtext[],

git_reclist[],

git_mail[].

CLEAR: l_tcode.

l_tcode = 'ZQA32'.

******Get mal id from ztable

SELECT * FROM zqm_mail

INTO TABLE git_mail

WHERE tcode = l_tcode.

LOOP AT git_error INTO gwa_error.

CONCATENATE gwa_error-charg

gwa_error-werk

gwa_error-atwrt1

gwa_error-atwrt

gwa_error-ktextmat

gwa_error-prueflos

gwa_error-text

INTO gwa_objbin-line

SEPARATED BY con_tab.

CONCATENATE con_cret gwa_objbin-line INTO gwa_objbin-line.

APPEND gwa_objbin TO git_objbin.

CLEAR: gwa_error, gwa_objbin.

ENDLOOP.

gwa_doc_data-obj_name = 'ERROR_MSG'.

CONCATENATE 'ZQA32 Error File:' p_charg INTO gwa_doc_data-obj_descr.

CONCATENATE 'ZQA32 Error file log of cast number:' p_charg

'Date:' sy-datum 'Time:' sy-uzeit INTO gwa_objtext SEPARATED BY space.

APPEND gwa_objtext TO git_objtext.

CLEAR: gwa_objpack, l_tablines.

  • Details of the attachment file

gwa_objpack-head_start = 1.

gwa_objpack-head_num = 1.

gwa_objpack-body_start = 1.

gwa_objpack-body_num = 10.

gwa_objpack-doc_type = 'RAW'.

APPEND gwa_objpack TO git_objpack.

CLEAR gwa_objpack.

DESCRIBE TABLE git_objbin LINES l_tablines.

gwa_objpack-transf_bin = 'X'.

gwa_objpack-head_start = 1.

gwa_objpack-head_num = 1.

gwa_objpack-body_start = 1.

gwa_objpack-body_num = l_tablines. " No of lines in the file attached

gwa_objpack-doc_type = 'CSV'. " type of file sent as attachment

gwa_objpack-obj_name = 'ERROR_MSG'.

gwa_objpack-doc_size = gwa_objpack-body_num * 255.

APPEND gwa_objpack TO git_objpack.

*********************************************

Attaching multiple user mail id.

*********************

LOOP AT git_mail INTO gwa_mail.

gwa_reclist-receiver = gwa_mail-mail_id.

gwa_reclist-rec_type = 'U'.

APPEND gwa_reclist TO git_reclist.

CLEAR: gwa_mail, gwa_reclist.

ENDLOOP.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = gwa_doc_data

put_in_outbox = 'X'

commit_work = 'X'

TABLES

packing_list = git_objpack

object_header = git_objhead

contents_bin = git_objbin[]

contents_txt = git_objtext[]

receivers = git_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 SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " SEND_MAIL

Regards,

Ramesh.

4 REPLIES 4

Former Member
0 Kudos

Hi Venu,

Try this below code from the CL_BCS_DOCUMENT.

Get all the e-mail address to the l_vendor_mail of the respective vendor.

IF NOT L_VENDOR_MAIL IS INITIAL.

RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(

I_ADDRESS_STRING = L_VENDOR_MAIL ).

  • ADD RECIPIENT TO SEND REQUEST

SEND_REQUEST->ADD_RECIPIENT( I_RECIPIENT = RECIPIENT ).

  • ---------- SEND DOCUMENT ---------------------------------------

SENT_TO_ALL = SEND_REQUEST->SEND(

I_WITH_ERROR_SCREEN = 'X' ).

ENDIF.

IF SENT_TO_ALL NE 'X'.

TRY .

CATCH CX_BCS INTO BCS_EXCEPTION.

WRITE: TEXT-001, BCS_EXCEPTION->ERROR_TYPE.

WRITE: TEXT-002, BCS_EXCEPTION->ERROR_TYPE.

EXIT.

ENDTRY.

ELSE.

  • WAIT UP TO 1 SECONDS.

  • SUBMIT RSCONN01 WITH MODE = 'INT'

  • WITH OUTPUT = 'X'

  • AND RETURN.

  • COMMIT WORK.

  • MESSAGE I022(SO).

ENDIF.

Regards,

Narasimhulu P.

Former Member
0 Kudos

hi,

FORM send_mail .

DATA: l_tcode TYPE char10,

l_tablines TYPE i.

CONSTANTS: con_tab TYPE c VALUE cl_abap_char_utilities=>horizontal_tab,

con_cret TYPE c VALUE cl_abap_char_utilities=>cr_lf.

REFRESH: git_objpack[],

git_objhead[],

git_objbin[],

git_objtext[],

git_reclist[],

git_mail[].

CLEAR: l_tcode.

l_tcode = 'ZQA32'.

******Get mal id from ztable

SELECT * FROM zqm_mail

INTO TABLE git_mail

WHERE tcode = l_tcode.

LOOP AT git_error INTO gwa_error.

CONCATENATE gwa_error-charg

gwa_error-werk

gwa_error-atwrt1

gwa_error-atwrt

gwa_error-ktextmat

gwa_error-prueflos

gwa_error-text

INTO gwa_objbin-line

SEPARATED BY con_tab.

CONCATENATE con_cret gwa_objbin-line INTO gwa_objbin-line.

APPEND gwa_objbin TO git_objbin.

CLEAR: gwa_error, gwa_objbin.

ENDLOOP.

gwa_doc_data-obj_name = 'ERROR_MSG'.

CONCATENATE 'ZQA32 Error File:' p_charg INTO gwa_doc_data-obj_descr.

CONCATENATE 'ZQA32 Error file log of cast number:' p_charg

'Date:' sy-datum 'Time:' sy-uzeit INTO gwa_objtext SEPARATED BY space.

APPEND gwa_objtext TO git_objtext.

CLEAR: gwa_objpack, l_tablines.

  • Details of the attachment file

gwa_objpack-head_start = 1.

gwa_objpack-head_num = 1.

gwa_objpack-body_start = 1.

gwa_objpack-body_num = 10.

gwa_objpack-doc_type = 'RAW'.

APPEND gwa_objpack TO git_objpack.

CLEAR gwa_objpack.

DESCRIBE TABLE git_objbin LINES l_tablines.

gwa_objpack-transf_bin = 'X'.

gwa_objpack-head_start = 1.

gwa_objpack-head_num = 1.

gwa_objpack-body_start = 1.

gwa_objpack-body_num = l_tablines. " No of lines in the file attached

gwa_objpack-doc_type = 'CSV'. " type of file sent as attachment

gwa_objpack-obj_name = 'ERROR_MSG'.

gwa_objpack-doc_size = gwa_objpack-body_num * 255.

APPEND gwa_objpack TO git_objpack.

*********************************************

Attaching multiple user mail id.

*********************

LOOP AT git_mail INTO gwa_mail.

gwa_reclist-receiver = gwa_mail-mail_id.

gwa_reclist-rec_type = 'U'.

APPEND gwa_reclist TO git_reclist.

CLEAR: gwa_mail, gwa_reclist.

ENDLOOP.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = gwa_doc_data

put_in_outbox = 'X'

commit_work = 'X'

TABLES

packing_list = git_objpack

object_header = git_objhead

contents_bin = git_objbin[]

contents_txt = git_objtext[]

receivers = git_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 SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " SEND_MAIL

Regards,

Ramesh.

Former Member
0 Kudos

Thanks.Its working now.

0 Kudos

Hi Venugopal,

Do you mind giving details about how you implemented sending PO Output to multiple email addresses?

Thanks,

Murali