Коллеги, приветствую.
Проблема в том, что почта, отправляемая через класс cl_bcs - не уходит.
В SOST её видно, но в статусе 'Ещё нет записей в очереди ожидания'(Сообщение SO672). Когда делаешь ручную повторную отправку - уходит.
Внимание, вопрос: что я делаю не так и как мне исправить отправку?
Код:
Code:
  data
    : lo_document       type ref to cl_document_bcs
    , lo_bcs            type ref to cl_bcs
    , lo_recipient      type ref to if_recipient_bcs
    , lo_recipient_copy type ref to if_recipient_bcs
    , lo_sender         type ref to if_sender_bcs
    , lo_ex_bcs         type ref to cx_bcs
    , lv_subrc          type os_boolean
    .
  data
    : ls_mail           type pa0105-usrid_long
    , lv_text           type string
    , lv_message        type string
    , lv_sub            type so_obj_des
    , lv_str            type string
    , lt_mail           type ztmailtable
    .
  lt_mail[] = im_t_mail[].
  lv_str = im_title.
  lv_sub = lv_str.
*
  clear lo_document.
*
  try.
    lo_document = cl_document_bcs=>create_document(
      i_type     = 'HTM'
      i_subject  = lv_sub
      i_text     = im_t_msg
      i_language = sy-langu ).
  catch cx_document_bcs.
  endtry.
*
  try.
    lo_bcs = cl_bcs=>create_persistent( ).
  catch cx_send_req_bcs.
  endtry.
*
  try.
    lo_bcs->set_document( lo_document ).
  catch cx_send_req_bcs.
  endtry.
*
*  try.
*    lo_bcs->set_message_subject(
*      ip_subject = lv_str
*      ).
*  catch cx_send_req_bcs.
*  endtry.
*
* Add 'recipient'
  read table lt_mail into ls_mail index 1.
  if sy-subrc eq 0.
    delete lt_mail index 1.
  endif.
  try.
    lo_recipient = cl_cam_address_bcs=>create_internet_address(
                     i_address_string = ls_mail
                     ).
  catch cx_address_bcs.
  endtry.
*
  try.
    call method lo_bcs->add_recipient
      exporting
        i_recipient = lo_recipient
        i_express   = 'X'.
  catch cx_send_req_bcs.
  endtry.
*
* Add 'copy'
  loop at lt_mail into ls_mail.
    clear lo_recipient_copy.
    try.
      lo_recipient_copy = cl_cam_address_bcs=>create_internet_address(
                          ls_mail
                          ).
    catch cx_address_bcs.
    endtry.
    try.
      call method lo_bcs->add_recipient
        exporting
          i_recipient = lo_recipient_copy
          i_express   = 'X'
          i_copy      = 'X'.
    catch cx_send_req_bcs.
    endtry.
  endloop.
*
* Add 'sender'
*  try.
*    lo_sender = cl_cam_address_bcs=>create_internet_address(
*                  i_address_name   = im_sndnm
*                  i_address_string = im_sndml ).
*  catch cx_address_bcs.
*  endtry.
  try.
    lo_sender = cl_sapuser_bcs=>create( sy-uname ).
  catch cx_address_bcs.
  endtry.
*
  try.
    call method lo_bcs->set_sender
      exporting i_sender = lo_sender.
  catch cx_send_req_bcs.
  endtry.
*
  try.
    lo_bcs->set_send_immediately( 'X' ).
  catch cx_send_req_bcs.
  endtry.
*
* Send Mail
  try.
    lv_subrc = lo_bcs->send( ).
*    commit work.
  catch cx_bcs into lo_ex_bcs.
    lv_message = lo_ex_bcs->get_text( ).
  endtry.
*
  ch_subrc = sy-subrc.
  ch_msg   = lv_message.
Ещё, натыкался на такой пост на SCN: 
http://wiki.scn.sap.com/wiki/display/SI/COMMIT_WORK+-+SO672+-+Still+no+entry+in+queueНо, COMMIT после отправки я делаю.