我在项目上做过类似的。
首先要做的是物料主数据中 找个字段记录一下物料申请人 邮箱
以MIGO为例
首先需要 BASIS做SAP 相应邮件的配置
用Badi:MB_MIGO_BADI增强 interface:POST_DOCUMENT
发邮件FM代码如下
FUNCTION Z02FI_SEND_EMAIL_ALL.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_ADDR) TYPE ADR6-SMTP_ADDR
*" REFERENCE(I_TITLE) TYPE SO_REC_EXT
*" EXPORTING
*" REFERENCE(E_STATUS) TYPE STRING
*" REFERENCE(E_OK) TYPE FLAG
*" TABLES
*" T_BODY STRUCTURE W3HTML
*" T_CCADDR STRUCTURE ZCCADDR OPTIONAL
*"----------------------------------------------------------------------
DATA: LV_TITLE TYPE SO_OBJ_DES,
SEND_REQUEST TYPE REF TO CL_BCS,
DOCUMENT TYPE REF TO CL_DOCUMENT_BCS,
CONLENGTHS TYPE SO_OBJ_LEN,
HTML TYPE STANDARD TABLE OF W3HTML,
WA_HTML TYPE W3HTML,
SENDER_ID TYPE REF TO IF_SENDER_BCS,
RECIPIENT TYPE REF TO IF_RECIPIENT_BCS,
SENT_TO_ALL TYPE OS_BOOLEAN,
BCS_EXCEPTION TYPE REF TO CX_BCS,
BCS_MESSAGE TYPE STRING.
DATA RECIPIENTCC LIKE RECIPIENT.
DATA L_ADDR LIKE I_ADDR.
LV_TITLE = I_TITLE.
WA_HTML-LINE = '<html>'.
APPEND WA_HTML TO HTML.
WA_HTML-LINE = '<body>'.
APPEND WA_HTML TO HTML.
LOOP AT T_BODY.
WA_HTML-LINE = T_BODY-LINE.
APPEND WA_HTML TO HTML.
WA_HTML-LINE = '<BR>'.
APPEND WA_HTML TO HTML.
ENDLOOP.
WA_HTML-LINE = '<BR>'.
APPEND WA_HTML TO HTML.
WA_HTML-LINE = '</body>'.
APPEND WA_HTML TO HTML.
WA_HTML-LINE = '</html>'.
APPEND WA_HTML TO HTML.
TRY.
CLEAR SEND_REQUEST.
SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).
CLEAR DOCUMENT .
DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(
I_TYPE = 'HTM'
I_TEXT = HTML
I_LENGTH = CONLENGTHS
I_SUBJECT = LV_TITLE ).
* Add document to send request
CALL METHOD SEND_REQUEST->SET_DOCUMENT( DOCUMENT ).
* Construct sender and receiver
CLEAR: SENDER_ID , RECIPIENT .
* sender_id = cl_cam_address_bcs=>create_internet_address( 'TESTDELOITTE@PETROCHINA-HFY.COM' ).
RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( I_ADDR ).
* Set sender
CALL METHOD SEND_REQUEST->SET_SENDER
EXPORTING
I_SENDER = SENDER_ID.
* Add recipient with its respective attributes to send request
CALL METHOD SEND_REQUEST->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = RECIPIENT
I_EXPRESS = 'X'.
LOOP AT T_CCADDR WHERE CCADDR IS NOT INITIAL .
CLEAR RECIPIENTCC.
RECIPIENTCC = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS( T_CCADDR-CCADDR ).
CALL METHOD SEND_REQUEST->ADD_RECIPIENT
EXPORTING
I_RECIPIENT = RECIPIENTCC
I_COPY = 'X'
I_EXPRESS = 'X'.
ENDLOOP.
* Set E-mail sending options
CALL METHOD SEND_REQUEST->SET_STATUS_ATTRIBUTES
EXPORTING
I_REQUESTED_STATUS = 'E'
I_STATUS_MAIL = 'E'.
CALL METHOD SEND_REQUEST->SET_SEND_IMMEDIATELY( 'X' ).
* Send document
CALL METHOD SEND_REQUEST->SEND(
EXPORTING
I_WITH_ERROR_SCREEN = 'X'
RECEIVING
RESULT = SENT_TO_ALL ).
IF SENT_TO_ALL = 'X'.
* E_STATUS = 'Email is send out successful.'.
E_OK = 'X'.
ENDIF.
COMMIT WORK.
CATCH CX_BCS INTO BCS_EXCEPTION.
BCS_MESSAGE = BCS_EXCEPTION->GET_TEXT( ).
E_STATUS = BCS_MESSAGE.
EXIT.
ENDTRY.
ENDFUNCTION.
7、双击SMTP,填入smtp发送服务器地址:219.141.174.226点击Internet后的设置按钮,在地址区内输入*8、确定完毕9、利用SAP发邮件,需要登陆到sap小机,然后telnet 219.141.174.226 25 ,查看是否可以连接成功。scot10.SCOT ,点击作业按钮欢迎分享,转载请注明来源:内存溢出
评论列表(0条)