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, не знаю.