slash написал(а):
особенно что касается DOCUMENT_DATA, с остальным вроде как всё понятно
Ну мне хватало всего двух полей:
Code:
  document_data-obj_descr = text-001.
  document_data-obj_langu = 'R'.
obj_descr - тема сообщения. Вообще, вот фрагмент, отсылающий XML файл на внешний адрес:
Code:
  CALL METHOD xml_doc->render_2_table
    IMPORTING
      size  = size
      table = contents_hex.
  document_data-obj_descr = text-001.
  document_data-obj_langu = 'R'.
  contents_line-line = text-002.
  APPEND contents_line TO contents_txt.
  CLEAR packing.
  packing-head_start = 1.
  packing-head_num = 1.
  packing-body_start = 1.
  packing-body_num = LINES( contents_txt ).
  packing-doc_type = 'RAW'.
  packing-obj_name = 'BODY'.
  packing-obj_langu = 'R'.
  APPEND packing TO packing_list.
  CLEAR packing.
  packing-transf_bin = 'X'.
  packing-head_start = 2.
  packing-head_num = 1.
  packing-body_start = 1.
  packing-body_num = LINES( contents_hex ).
  packing-doc_type = 'XML'.
  packing-doc_size = size.
  CONCATENATE idoc_control-docnum '.xml'
    INTO packing-obj_descr.
  packing-obj_langu = 'R'.
  APPEND packing TO packing_list.
  CLEAR object_header.
  APPEND object_header TO object_headers.
  object_header = packing-obj_descr.
  APPEND object_header TO object_headers.
  receiver-rec_type = 'U'.
  receiver-receiver = smtp_address.
  receiver-notif_del = 'X'.
  receiver-notif_read = 'X'.
  receiver-notif_ndel = 'X'.
  APPEND receiver TO receivers.
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data              = document_data
      put_in_outbox              = put_in_outbox
      commit_work                = 'X'
    TABLES
      packing_list               = packing_list
      object_header              = object_headers
      contents_txt               = contents_txt
      contents_hex               = contents_hex
      receivers                  = receivers
    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.
Если у вас 4.7, то можно пользоваться библиотекой классов BCS, про нее есть в хэлпе, начальный класс CL_BCS. Есть ли она в 4.6, не знаю.