Получить идентификатор базы данных SOST отправленных писем - PullRequest
0 голосов
/ 11 июня 2018

У меня есть программа ABAP, которая отправляет электронные письма.Отправленное письмо хранится в таблице SOOD.После отправки электронного письма я хотел бы получить некоторый идентификатор электронного письма, чтобы иметь возможность проверить его статус позже (в таблице SOST).Я видел больше функций / методов для отправки электронной почты (например, cl_bcs / send, SO_NEW_DOCUMENT_SEND_API1), но ни одна из них не возвращает никакого идентификатора.Есть ли надежный способ получить его?

Ответы [ 3 ]

0 голосов
/ 12 июня 2018

Для класса CL_BCS вы можете проверить метод объекта send_request doc_wrapper_id.Это вернет конструктор суда.

enter image description here

enter image description here

0 голосов
/ 13 июня 2018

Два других ответа дали мне вместе ценные подсказки, чтобы сделать это (+1).Но оба упустили некоторую точность и фрагменты кода, поэтому я подытожил все это в своем ответе.

с использованием cl_bcs

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.

SOODK (не sood) - структура, содержащая три компонента (OBJTP, OBJYR, OBJNO), которые вместе являются ключом в таблице SOOD.

с использованием SO_NEW_DOCUMENT_SEND_API1

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
" ...

lt_objectid (SOFOLENTI1-OBJECT_ID) - это char (17), которая содержит составную SOODK структуру OBJTP+OBJYR+OBJNO.При разделении на части его можно использовать для поиска записи в таблице SOODK.(Я не нашел его в BCST_SR-SCOM_KEY, но в этом не было необходимости.)

0 голосов
/ 12 июня 2018

Функциональный модуль SO_NEW_DOCUMENT_SEND_API1 создает и экспортирует новые OBJECT_ID для каждого нового отправленного сообщения, как вы можете видеть здесь -

enter image description here

Это NEW_OBJECT_ID хранится в таблице BCST_SR в поле SCOM_KEY.Из таблицы BCST_SR вы можете получить DOC_OID, используя DOC_OID, вы можете получить информацию из таблицы SOOD.(Справочное поле в SOOD - - IF_DOC_BCS) Затем используйте номер объекта OBJNO, чтобы получить подробности из таблицы SOST.

ТакжеВы можете использовать t-код SBWP, чтобы проверить свой почтовый статус.

...