Email 获取已发送电子邮件的SOST数据库ID
我有一个发送电子邮件的ABAP程序。发送的电子邮件存储在SOOD表中。发送电子邮件后,我想获得一些电子邮件的ID,以便以后能够检查其状态(在SOST表中)。我见过更多发送电子邮件的功能/方法(例如cl_bcs/send,SO_NEW_DOCUMENT_send_API1),但它们都不返回任何ID。有可靠的方法获取它吗 功能模块Email 获取已发送电子邮件的SOST数据库ID,email,abap,identification,Email,Abap,Identification,我有一个发送电子邮件的ABAP程序。发送的电子邮件存储在SOOD表中。发送电子邮件后,我想获得一些电子邮件的ID,以便以后能够检查其状态(在SOST表中)。我见过更多发送电子邮件的功能/方法(例如cl_bcs/send,SO_NEW_DOCUMENT_send_API1),但它们都不返回任何ID。有可靠的方法获取它吗 功能模块SO\u NEW\u DOCUMENT\u SEND\u API1为每个发送的新消息创建并导出一个新的对象ID,如您在此处所见- 此新对象\u ID存储在SCOM\u K
SO\u NEW\u DOCUMENT\u SEND\u API1
为每个发送的新消息创建并导出一个新的对象ID
,如您在此处所见-
此新对象\u ID
存储在SCOM\u KEY
字段的BCST\u SR
表中。从BCST\u SR
表中,您必须获得文档OID
,使用文档OID
您可以从SOOD
表中获得详细信息。(SOOD中的参考字段是-如果文档BCS
),然后使用对象编号OBJNO
从SOST
表中获取详细信息
您还可以参考t-code
SBWP
检查邮件状态。对于类CL\u BCS,您可以检查发送请求对象的方法文档包装器id。这将返回sood结构器
另外两个答案为我提供了完成任务的宝贵线索(+1)。但两者都遗漏了一些准确性和代码片段,所以我在回答中总结了这一切 使用cl_bcs
SOODK
(非sood)是包含三个组件(OBJTP
,OBJYR
,OBJNO
)的结构,这三个组件一起构成sood
表中的键
使用SO\u新建\u文档\u发送\u API1
lt\u objectid
(SOFOLENTI1-OBJECT\u ID
)是字符(17),包含连接的SOODK
结构OBJTP+OBJYR+OBJNO
。当划分为多个部分时,它可用于查找SOODK
表中的记录。(我在BCST\U SR-SCOM\U键中找不到它,但它不是必需的。)是否可以将它与过程控制案例guid关联?
DATA gr_send_request TYPE REF TO cl_bcs.
DATA emailid LIKE soodk.
gr_send_request = cl_bcs=>create_persistent( ).
" ...
CALL METHOD gr_send_request->send(EXPORTING i_with_error_screen = 'X'
RECEIVING result = gv_sent_to_all ).
IF gv_sent_to_all = 'X'.
emailid = gr_send_request->send_request->doc_wrapper_id( ).
ENDIF.
DATA LT_OBJECTID TYPE SOFOLENTI1-OBJECT_ID.
CALL FUNCTION 'SO_NEW_DOCUMENT_SEND_API1'
EXPORTING
DOCUMENT_DATA = LT_MAILSUBJECT
DOCUMENT_TYPE = 'HTM'
IMPORTING
new_object_id = lt_objectid
" ...